17 февраля 2011 г.

oracle: включение/выключение режима flashback


В Oracle Database 10g появилась технология flashback, и в частности новая возможность – flashback database. При активации этой опции, ведутся дополнительные журналы операций над базой данных. Эти журналы называются flashback logs, и они создаются во время ведения обычных архивных журналов.
Как узнать включена опция flashback или нет?

SQL> SELECT FLASHBACK_ON FROM V$DATABASE;
FLASHBACK_ON
------------------
YES


Если вернется значение YES, то база данных находится в режиме flashback, если NO, то база данных в обычном режиме.

Перевод базы данных в режим flashback



Для включения режима flashback, база данных должна быть запущена в режиме ARCHIVELOG. Во время работы в режиме flashback, база данных создает журналы, хранящиеся во FRA (Flash Recovery Area). Т.е. FRA должна быть настроена, прежде чем включать режим flashback. Для включения потребуется выполнить ряд шагов.

Убедитесь, что FRA настроена для базы данных и определена. Чтобы узнать определена ли FRA, выполните следующее sql предложение, через SQL*Plus, под пользователем, с привилегией sysdba. Например, под пользователем SYS:

SQL> show parameter db_recovery_file_dest

Если значение параметра db_recovery_file_dest возвращено, то FRA определена именно туда. Пример вывода:

NAME                        TYPE        VALUE
--------------------------- ----------- ------------------------------
db_recovery_file_dest       STRING      \u01\flash_recovery_area\
db_recovery_file_dest_size  big INTEGER 2G

Как видно, значение параметра db_recovery_file_dest равно \u01\flash_recovery_area, и второй параметр db_recovery_file_dest_size, указывает какой размер FRA определен. В нашем примере он равен 2 Gb.

Убедитесь, что база данных находится в архивном режиме:

SQL> SELECT LOG_MODE FROM V$DATABASE;
LOG_MODE
------------
ARCHIVELOG

Если, база данных не в архивном режиме, то переводим базу данных в режим ARCHIVELOG.

Настройка flashback.

Прежде, чем приступить к настройке, требуется узнать, в каком режиме запущена база данных. Выполняем:

SQL> SELECT OPEN_MODE FROM V$DATABASE;
OPEN_MODE
----------
MOUNTED

Если база данных в каком либо другом режиме, то требуется ее погасить и запустить в режиме MOUNT:

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> startup mount
ORACLE instance started.
Total System Global Area 289406976 bytes
Fixed Size 1248576 bytes
Variable Size 83886784 bytes
Database Buffers 197132288 bytes
Redo Buffers 7139328 bytes
Database mounted.

Последняя строка подтверждает, что база данных смонтирована, и открыта в нужном нам режиме. Далее, разрешаем flashback, выполнив следующее SQL предложение:

SQL> ALTER DATABASE FLASHBACK ON;
Database altered.

Открываем базу данных, выполнив:

SQL> alter database open;
Database altered.

Все, база данных находится в режиме flashback.
Отключение режима flashback

Предположим, что по некоторой причине нам требуется отключить режим flashback. Для этого потребуется выполнить SQL команду:

SQL> alter database flashback off;
Database altered.

Теперь режим flashback отключен. Чтобы в этом убедится, можно выполнить:

SQL> SELECT FLASHBACK_ON FROM V$DATABASE;
FLASHBACK_ON
------------------
NO

Теперь, база данных не создает дополнительных журнальных файлов требуемых для восстановления с использованием технологии flashback.

Комментариев нет:

Отправить комментарий