27.12.2020 0 min to read

“ALTER DATABASE FLASHBACK ON” и ORA-38706: Невозможно включить протоколирование FLASHBACK DATABASE. ORA-38709: Область восстановления не включена.

Category : Статьи

Точки восстановления и ретроспективные запросы для включения требуют предварительно настроенного места хранения.

Решение

Включать нужно выключив и смонтировав базу. Все работы в SQL*Plus.

SQL> SHUTDOWN IMMEDIATE;  -- выключить экземпляр, нельзя использовать опцию ABORT
База данных закрыта.
База данных размонтирована.
Экземпляр ORACLE завершен.

SQL> STARTUP MOUNT;  -- запуск и монтирование
Экземпляр ORACLE запущен.
Total System Global Area 7499413248 bytes
Fixed Size     9152256 bytes
Variable Size 2936012800 bytes
Database Buffers 4546625536 bytes
Redo Buffers     7622656 bytes
База данных смонтирована.

SQL> ALTER DATABASE FLASHBACK ON;  -- включить
ALTER DATABASE FLASHBACK ON
*
ошибка в строке 1:
ORA-38706: Невозможно включить протоколирование FLASHBACK DATABASE. ORA-38709: Область восстановления
не включена.

Увы, так сходу нельзя включить – место хранения не определено по-умолчанию. Создадим каталог /opt/oracle/oradata/ARCH/db_recovery_file, выделим 15Гб, запишем это в spfile, выключим и запустим.

SQL> alter system set db_recovery_file_dest='/opt/oracle/oradata/ARCH/db_recovery_file' scope=spfile;
Система изменена.

SQL> alter system set db_recovery_file_dest_size=20g scope=spfile;
Система изменена.

SQL> shutdown immediate;
ORA-01109: база данных не открыта
База данных размонтирована.
Экземпляр ORACLE завершен.

SQL> STARTUP MOUNT;
Экземпляр ORACLE запущен.

Total System Global Area 7499413248 bytes
Fixed Size     9152256 bytes
Variable Size  2936012800 bytes
Database Buffers  4546625536 bytes
Redo Buffers     7622656 bytes
База данных смонтирована.

SQL> ALTER DATABASE OPEN;
База данных изменена.

SQL> alter pluggable database all open;
Подключаемая база данных изменена.

Проверяем!

SQL> set linesize 200
set longchunksize 200000
set long 200000
set pages 0
set pagesize 200

SQL> SELECT name, open_mode, flashback_on FROM v$database;

Все ок!