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.