Tuesday, September 2, 2025

ORA-19838: Cannot use this control file to open database

This error would come if you are trying to open a database with reset logs after you performed database duplication using DUPLICATE command, but duplicate command failed, and you completed rest of the steps manually. If duplicate command fails in the middle because of some issue, you can solve that issue and resume duplicate command. However, if you plan not to resume duplicate command and perform rest of the steps manually, you would need to recreate controlfile before you can open the database using RESETLOGS. 

To solve ORA-19838, backup control file to trace. 

SQL> alter database backup controlfile to trace as ‘/u01/app/oracle/control.txt’  

Modify the trace file and change NORESETLOGS to RESETLOGS at the beginning of the script 

CREATE CONTROLFILE REUSE DATABASE "TESTDB" RESETLOGS FORCE LOGGING ARCHIVELOG 

    MAXLOGFILES 192 

    MAXLOGMEMBERS 3 

    MAXDATAFILES 1024 

    MAXINSTANCES 32 

    MAXLOGHISTORY 9348 

LOGFILE 

GROUP 1 '+ORAREDO/testdb/onlinelog/group_1.11091.946071503'  SIZE 200M BLOCKSIZE 512, 

GROUP 2 '+ORAREDO/testdb/onlinelog/group_2.20109.946071505'  SIZE 200M BLOCKSIZE 512, 

GROUP 3 '+ORAREDO/testdb/onlinelog/group_3.11085.946071505'  SIZE 200M BLOCKSIZE 512, 

GROUP 4 '+ORAREDO/testdb/onlinelog/group_4.11081.946071505'  SIZE 200M BLOCKSIZE 512, 

GROUP 5 '+ORAREDO/testdb/onlinelog/group_5.11093.946071505'  SIZE 200M BLOCKSIZE 512, 

GROUP 6 '+ORAREDO/testdb/onlinelog/group_6.11104.946071505'  SIZE 200M BLOCKSIZE 512, 

GROUP 7 '+ORAREDO/testdb/onlinelog/group_7.11092.946071505'  SIZE 200M BLOCKSIZE 512, 

GROUP 8 '+ORAREDO/testdb/onlinelog/group_8.20115.946071507'  SIZE 200M BLOCKSIZE 512, 

GROUP 9 '+ORAREDO/testdb/onlinelog/group_9.20145.946071507'  SIZE 200M BLOCKSIZE 512, 

…. 

…. 

…. 

DATAFILE 

'+ORADATA/testdb/system01.dbf', 

'+ORADATA/testdb/sysaux01.dbf', 

'+ORADATA/testdb/undotbs01.dbf', 

'+ORADATA/testdb/testdata01.dbf', 

'+ORADATA/testdb/testdata02.dbf', 

'+ORADATA/testdb/testindx01.dbf', 

'+ORADATA/testdb/testindx02.dbf', 

'+ORADATA/testdb/trydata01.dbf', 

 

 

 

CHARACTER SET UTF8;  


Shutdown database, startup in NOMOUNT state, and execute the script to recreate the controlfile. 

SQL> SHUTDOWN IMMEDIATE 

 

SQL> STARTUP NOMOUNT 

 

SQL> @/u01/app/oracle/control.txt 

 

Control file created. 


Once controlfile gets created, now you can open database with resetlogs. 

SQL > alter database open resetlogs; 

 

Database altered. 



No comments:

Post a Comment

Popular Posts - All Times