PROBLEM:
While disabling archive log mode, got the error – ORA-38774
SQL> alter database noarchivelog;
alter database noarchivelog
*
ERROR at line 1:
ORA-38774: cannot disable media recovery – flashback database is enabled
SOLUTION:
The error is because flashback mode is enabled in the database. So before disabling archive log mode, we need to disable flashback mode in database and drop restore points if any.
1. Drop restore point if any :
SQL> Select name from v$restore_point; NAME ------ BEFORE_UPGRADE SQL> drop restore point BEFORE_UPGRADE; Restore point dropped. SQL> Select name from v$restore_point; no rows selected
2. Disable flashback mode
SQL> select name,flashback_on from v$database; NAME FLASHBACK_ON --------- ------------------ DBATEST YES SQL> alter database flashback off; Database altered. SQL> select name,flashback_on from v$database; NAME FLASHBACK_ON --------- ------------------ DBATEST NO
3. Now try to put the database in noarchivelog mode.
SQL> alter database noarchivelog; Database altered. SQL> alter database open; Database altered. SQL> archive log list Database log mode No Archive Mode Automatic archival Disabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 136 Current log sequence 138
This solution worked for me, buy why do you have to drop the current restore point before putting the database in noarchivelog mode? is there an option to store the restore point in a location that can be retrieved?
no, because once database is in noarchivelog, all restore points are invalid.