I got ” ORA-01092: ORACLE instance terminated. Disconnection forced ” error in Oracle database.
ORA-01092: ORACLE instance terminated. Disconnection forced
Details of error are as follows.
ORA-01092: ORACLE instance terminated. Disconnection forced Cause: The instance connected to was terminated abnormally, probably due to a SHUTDOWN ABORT. The current process was forced to disconnect from the instance. Action: Examine the alert log for more details. Contact the database administrator to determine when the instance is restarted. Attempt to reconnect after the instance is running again.
Database instance crashed with the following error in alert.log:
Wed Nov 02 06:23:51 2020 Non critical error ORA-00001 caught while writing to trace file "<PATH>/<SID>_arc1_2076702.trc" Error message: IBM AIX RISC System/6000 Error: 5: I/O error Additional information: 1 Writing to the above trace file iWed Nov 02 06:29:56 2020 USER (ospid: 643220): terminating the instance due to error 1092 Wed Nov 02 06:29:56 2020 ORA-1092 : opitsk aborting process Instance terminated by USER, pid = 643220
ORACLE instance terminated. Disconnection forced
This ORA-01092 errors are related with the instance connected to was terminated abnormally, probably due to a SHUTDOWN ABORT.
The current process was forced to disconnect from the instance.
Examine the alert log for more details. Contact the database administrator to determine when the instance is restarted. Attempt to reconnect after the instance is running again.
Looking at entries in alert.log prior to crash, following is seen:
a. DBWR process experiencing I/O error:
Error message: IBM AIX RISC System/6000 Error: 5: I/O error
Additional information: 1
Writing to the above trace file is disabled for now on…
b. Entries in alert.log is incomplete:
2. MMON process trace file shows:
Unix process pid: 1949800, image: oracle@xxx (MMON) Taking over instance termination because the instance terminator (ospid: 2875438) is dead ===> 2875438 is the OS PID of DBW0 process which encountered the I/O error and is dead.
3. The instance was then terminated by USER process with the OS PID 643220.
Trace file for this process shows:
Taking over instance termination because the instance terminator (ospid: 2191470) is dead kjzduptcctx: Notifying DIAG for crash event ----- Abridged Call Stack Trace ----- ksedsts()+644<-kjzdssdmp()+444<-kjzduptcctx()+272<-kjzdicrshnfy()+96<-ksuitm()+1284<-ksuitr()+92<-ksu_dispatch_tac()+372<-kdifxs1()+468<-kdifxs()+28<-qerixtFetch()+940 <-qerilFetch()+276<-opifch2()+7136<-opifch()+60<-opiodr()+3608<-rpidrus()+536<-skgmstack()+208 <-rpidru()+144<-rpiswu2()+1124<-rpidrv()+2892<-rpifch()+80 ----- End of Abridged Call Stack Trace ----- USER (ospid: 643220): terminating the instance due to error 1092 5. OS logs (/var/log on AIX) reports I/O errors : Description USER DATA I/O ERROR Probable Causes ADAPTER HARDWARE OR MICROCODE DISK DRIVE HARDWARE OR MICROCODE SOFTWARE DEVICE DRIVER STORAGE CABLE LOOSE, DEFECTIVE, OR UNTERMINATED
It could be that either the datafiles are offline/corrupted:
Check the OFFLINE files:
select file#, status, name from v$datafile where status not in ('SYSTEM', 'ONLINE');
OR
There is a problem in the password file (orapw) found in $ORACLE_HOME/dbs which was created after the database creation. Therefore resulted in a sync issue and ultimately causing an additional error message:
ORA-01990: error opening password file $ORACLE_HOME/dbs/orapw.
OR
DBW0 crashed due to I/O errors. This in turn caused the instance to be terminated as termination of background process will cause the instance to crash .
To solve this error, Check if you have a good backup from which you can restore any problematic data file.
1) First restore the problematic datafiles
2) Mount the database and ONLINE those datafiles
SQL> startup mount; SQL> alter database datafile file1#, .. , filen# online;
3) Recover the database
SQL> recover database;
4) Open database
SQL > alter database open ;
I/O errors
Contact your System/Unix administrator and rectify the hardware problem causing I/O error.
Or second case’s solution is as follows.
Connect to each database and ensure the Snapshot controlfile name and location are unique and not duplicate of each other
OS> rman target /
RMAN> show SNAPSHOT CONTROLFILE NAME;
Do you want to learn Oracle Database for Beginners, then read the following articles.
Oracle Tutorial | Oracle Database Tutorials for Beginners ( Junior Oracle DBA )