Dica rápida sobre um erro simples ao habilitar o FLASHBACK DATABASE no Oracle em estado MOUNT.

SQL> alter database flashback on;
alter database flashback on
*
ERROR at line 1:
ORA-38706: Cannot turn on FLASHBACK DATABASE logging.
ORA-38714: Instance recovery required.

A primeira vista o erro ORA-38714 pode assustar, até notarmos que trata-se de “Instance recovery” e não “Database recovery”.

Isso ocorre porque estamos tentando habilitar o Flashback com a instância no estado MOUNT após um shutdown abort. Até esse momento o SMON não fez o trabalho dele em recuperar a instância com shutdown “sujo”.

Segundo a documentação da Oracle, devemos realizar um shutdown limpo para habilitar o Flashback em um banco de dados em estado MOUNT, a menos que ele seja um Physical Standby:

If the instance is mounted, then the database must be shut down cleanly unless it is a physical standby database.

Assumindo que precisamos realizar a operação em MOUNT por qualquer motivo, a solução é abrir o banco de dados normalmente, executar um shutdown limpo e iniciar em MOUNT novamente. Caso contrário, habilitar o Flashback Database pode ser realizado no estado OPEN.

SQL> alter database open;
Database altered.

SQL> shutdown immediate;
ORACLE instance shut down.

SQL> startup mount;
Database mounted.

Agora podemos habilitar o Flashback normalmente

SQL> alter database flashback on;
Database altered.

SQL> alter database open;
Database altered.

Referências:

Database Backup and Recovery User’s Guide > Using Flashback Database and Restore Points > Enabling Flashback Database.

Leave a Reply

Discover more from Blog do Dibiei

Subscribe now to keep reading and get access to the full archive.

Continue reading