Skip to main content

ORA-01143: cannot disable media recovery - file 1 needs media recovery



I got a request from the client - To flashback the database to the existing restore point & disable flashback and archive log mode for database UATB.

Here I came a cross error - ORA-01143.

I followed the below steps.

1. SQL> select name from v$database;

NAME
------------
UATB

2. SQL> SELECT NAME FROM V$RESTORE_POINT WHERE GUARANTEE_FLASHBACK_DATABASE='YES' ORDER BY TIME;

NAME
---------
UATB_COPY

Here I'm going to restore the database to the above restore point.

NOTE: The flashback database restore has to be done in MOUNT stage of the database.

SQL> select name from v$database;

NAME
---------
UATB

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

SQL> startup mount

ORACLE instance started.

Total System Global Area  612368384 bytes
Fixed Size                  1250428 bytes
Variable Size             167775108 bytes
Database Buffers          436207616 bytes
Redo Buffers                7135232 bytes
Database mounted.

SQL> FLASHBACK DATABASE TO RESTORE POINT UATB_COPY;

Flashback complete.

SQL> alter database flashback off;

Database altered.

SQL> alter database noarchivelog;
alter database noarchivelog
*
ERROR at line 1:
ORA-38781: cannot disable media recovery - have guaranteed restore points

NOTE: We have guaranteed flashback restore point. Hence we have received the above error. Lets drop the existing restore point and try the same.


SQL> drop restore point UATB_COPY;

Restore point dropped.

SQL> ALTER DATABASE NOARCHIVELOG;
ALTER DATABASE NOARCHIVELOG
*
ERROR at line 1:
ORA-01143: cannot disable media recovery - file 1 needs media recovery
ORA-01110: data file 1: 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\RISHI\SYSTEM01.DBF'

SQL> ALTER DATABASE OPEN RESETLOGS;

Database altered.

After database restored from flashback restore point. It has to be opened with resetlogs clause otherwise it will through an error.

NOTE: Here I have open the database and bounced the database again to disable the archive log mode.

SQL> select name from v$database;

NAME
---------
UATB

SQL> SHUT IMMEDIATE

Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> STARTUP MOUNT
ORACLE instance started.

Total System Global Area  612368384 bytes
Fixed Size                  1250428 bytes
Variable Size             167775108 bytes
Database Buffers          436207616 bytes
Redo Buffers                7135232 bytes
Database mounted.

SQL> ALTER DATABASE NOARCHIVELOG;

Database altered.

SQL> ALTER DATABASE OPEN;

Database altered.

Here we are done :)

Thank You !



       



Comments

  1. Solution worked perfectly, but do you have to bounce the database after the 'resetlogs'? Why?

    ReplyDelete
  2. To change the database into No archive log mode..

    ReplyDelete

Post a Comment

Popular posts from this blog

Registering The Database to RMAN catalog database:

Registering The Database to RMAN catalog database: Need to start RMAN as follows: RMAN target=sys/password@database_to_backup rcvcat=sys/password@recovery_catalog_database Another variation on the command, if the recovery catalog and the database were on the same server, might be as shown: oraenv ORACLE_SID = [KKUY] ? KKUY RMAN rcvcat=sys/password@recovery_catalog_database RMAN> connect target Recovery Manager: Release 8.0.5.1.0 - Production RMAN-06005: connected to target database: KKUY RMAN-06008: connected to recovery catalog database Use the below command to register the database. RMAN>register database; Want to verify if a database is registered in the recovery catalog. To do this, connect to RMAN and issue the command LIST INCARNATION OF DATABASE. RMAN> list incarnation of database; RMAN-03022: compiling command: list RMAN-06240: List of Database Incarnations RMAN-06241: DB Key Inc Key DB Name DB ID      CUR Reset SCN   Reset Time RMAN

ORA-39014: One or more workers have prematurely exited.ORA-00018: maximum number of sessions exceeded

ERROR: I was Performing a full database import and during the import I faced the below error. ORA-39014: One or more workers have prematurely exited. ORA-39029: worker 6 with process name "DW07" prematurely terminated ORA-31672: Worker process DW07 died unexpectedly. Job "SYSTEM"."SYS_IMPORT_FULL_04" stopped due to fatal error at 00:59:40 ORA-39014: One or more workers have prematurely exited. SOLUTION:  Run the import with fewer parallel processes, like PARALLEL=2 instead of 8. I was able to run the import successfully. NOTE 1: This errors occurs when there are less session allocation in the database. check the session,process parameters and increase them accordingly. To avoid such errors again. NOTE 2 : Note: Increasing processes parameter increases the amount of shared memory that needs to be reserved & the OS must be configured to support the larger amount of shared memory. So here we first need to increase the Memory & SG