2. Бекап СУБД#
2.1. Типы бекапов в СУБД.#
СУБД поддерживает несколько типов бекапов:
| Тип бекапа | Онлайн | Оффлайн |
|---|---|---|
| Логический | + | - |
| Физический | + | + |
Логический бекап - в бекап помещаются скрипты воссоздания таблиц, индексов и данных.
Физический бекап - в бекап помещаются копии файлов данных, контрольных и журнальных файлов.
Онлайн бекап - бекап выполняется при работающей СУБД.
Оффлайн бекап - бекап выполняется при неработающей СУБД.
Физический онлайн бекап требует работы СУБД в режиме Archivelog mode.
2.2. Типы архивирования журналов в СУБД.#
СУБД поддерживает два типа архивирования журналов.
Archivelog mode - архивируются копии журналов, что позволяет сделать онлайн бекап и
восстановление СУБД на текущий момент времени.
Noarchivelog mode - не архивируются копии журналов,
восстановление СУБД на текущий момент времени невозможно.
Для проверки текущего режима Archivelog mode выполните запрос:
select decode(archive_mode,0,'archivelog mode is disable',1,'archivelog mode is enable') from V$ARCHIVE;
2.3. Включение режима archivelog mode.#
Включение режима archvielog mode доступно только администратору СУБД, база должна быть запущена в фазе Control Phase.
Для включение режима archivelog mode выполните команды, приведенные ниже.
Проверьте текущий режим archivelog mode и текущую фазу запуска:
iSQL(sysdba)> select decode(archive_mode,0,'archivelog mode is disable',1,'archivelog mode is enable') from V$ARCHIVE;
DECODE(ARCHIVE_MODE,0,'ARCHIVELOGMODEISDIS
----------------------------------------------
archivelog mode is disable
1 row selected.
iSQL(sysdba)>
iSQL(sysdba)> select startup_phase from v$instance;
STARTUP_PHASE
-----------------
SERVICE
1 row selected.
iSQL(sysdba)> alter database archivelog;
[ERR-1103E : ALTER DATABASE ARCHIVELOG or NOARCHIVELOG is only allowed during the control phase.]
iSQL(sysdba)>
Остановите базу в нормальном режиме:
iSQL(sysdba)> shutdown immediate;
Ok..Shutdown Proceeding....
TRANSITION TO PHASE : Shutdown Altibase
[RP] Finalization : PASS
shutdown immediate success.
iSQL(sysdba)>
Запустите базу в фазе control phase:
iSQL(sysdba)> startup control;
Connecting to the DB server..... Connected.
TRANSITION TO PHASE : PROCESS
TRANSITION TO PHASE : CONTROL
Command executed successfully.
iSQL(sysdba)>
Переключите баз в режим archivelog mode:
Выполните следующие фазы запуска базы:
iSQL(sysdba)> startup service;
The database server is already up and running.
TRANSITION TO PHASE : META
[SM] Recovery Phase - 1 : Preparing Database
: Dynamic Memory Version => Parallel Loading
[SM] Recovery Phase - 2 : Loading Database
[SM] Recovery Phase - 3 : Skipping Recovery & Starting Threads...
Refining Disk Table
[SM] Refine Memory Table : .................................................................................................................................... [SUCCESS]
[SM] Rebuilding Indices [Total Count:135] ....................................................................................................................................... [SUCCESS]
TRANSITION TO PHASE : SERVICE
[CM] Listener started : TCP on port 20300 [IPV4]
[CM] Listener started : UNIX
[CM] Listener started : IPC
[RP] Initialization : [PASS]
--- STARTUP Process SUCCESS ---
Command executed successfully.
Проверьте текущий режим archivelog mode и текущую фазу запуска:
iSQL(sysdba)> select startup_phase from v$instance;
STARTUP_PHASE
-----------------
SERVICE
1 row selected.
iSQL(sysdba)> select decode(archive_mode,0,'archivelog mode is disable',1,'archivelog mode is enable') from V$ARCHIVE;
DECODE(ARCHIVE_MODE,0,'ARCHIVELOGMODEISDIS
----------------------------------------------
archivelog mode is enable
1 row selected.
2.4. Выполнение физического оффлайн бекапа.#
Определите список директорий, файлы в которых необходимо поместить в бекап. Для этого сделайте следующий запрос в базе:
iSQL(sysdba)> set vertical on;
iSQL(sysdba)> select * from V$PROPERTY where name in ('MEM_DB_DIR','DEFAULT_DISK_DB_DIR','LOGANCHOR_DIR','LOG_DIR');
NAME : MEM_DB_DIR
STOREDCOUNT : 1
ATTR : 1459683586
MIN :
MAX :
VALUE1 : /home/altibase/altibase_home/dbs
VALUE2 :
VALUE3 :
VALUE4 :
VALUE5 :
VALUE6 :
VALUE7 :
VALUE8 :
NAME : DEFAULT_DISK_DB_DIR
STOREDCOUNT : 1
ATTR : 1459617794
MIN :
MAX :
VALUE1 : /home/altibase/altibase_home/dbs
VALUE2 :
VALUE3 :
VALUE4 :
VALUE5 :
VALUE6 :
VALUE7 :
VALUE8 :
NAME : LOG_DIR
STOREDCOUNT : 1
ATTR : 1459683586
MIN :
MAX :
VALUE1 : /home/altibase/altibase_home/logs
VALUE2 :
VALUE3 :
VALUE4 :
VALUE5 :
VALUE6 :
VALUE7 :
VALUE8 :
NAME : LOGANCHOR_DIR
STOREDCOUNT : 3
ATTR : 1459684098
MIN :
MAX :
VALUE1 : /home/altibase/altibase_home/logs
VALUE2 : /home/altibase/altibase_home/logs
VALUE3 : /home/altibase/altibase_home/logs
VALUE4 :
VALUE5 :
VALUE6 :
VALUE7 :
VALUE8 :
4 rows selected.
Все файлы директорий параметров VALUE* необходимо поместить в бекап (это список для бекапа).
Остановите базу в нормальном режиме:
iSQL(sysdba)> shutdown immediate;
Ok..Shutdown Proceeding....
TRANSITION TO PHASE : Shutdown Altibase
[RP] Finalization : PASS
shutdown immediate success.
iSQL(sysdba)>
Используя команды ОС для копирования файлов скопируйте все файлы из списка для бекапа в папку бекапа.
Далее запустите базу в обычном режиме:
2.5. Выполнение физического онлайн бекапа.#
Для выполнения полного физического онлайн бекапа базы выполните команды, приведенные ниже как пример.
Проверьте наличие каталога для бекапа (/home/altibase/backup_dir):
Сделайте бекап базы:
Заархивируйте текущий журнальный файл:
Проверьте наличие файлов в каталоге бекапа: