Tuesday, January 19, 2010

Fix ORA-01092, ORA-24324, ORA-01041 internal error

Problem Description
Both database startup and shutdown raise error message. Startup fails with ORA-01092 and shutdown fails with ORA-24324 and ORA-01041 as follows.

SQL> startup
ORACLE instance started.

Total System Global Area 2147483648 bytes
Fixed Size 1268508 bytes
Variable Size 1124074724 bytes
Database Buffers 1006632960 bytes
Redo Buffers 15507456 bytes
Database mounted.
ORA-01092: ORACLE instance terminated. Disconnection forced

SQL> shutdown immediate
ORA-24324: service handle not initialized
ORA-01041: internal error. hostdef extension doesn't exist

Even connection as sysdba fails.
SQL> connect / as sysdba
ORA-01041: internal error. hostdef extension doesn't exist

Cause of the Problem
1) It may happen that domain administrator account is used to startup/shutdown oracle database instance and it throws above error message. But if the local system account is used, connection as sysdba works fine.

2) Some datafiles were offline. ORACLE instance terminated. Disconnection forced reported because some of the datafiles were offline.

Solution of the Problem

1) If it happens that only domain administrator account fails to startup/shutdown oracle database instance or connection as sysdba fails then the reason would be the system time was set incorrectly.
The system time did not match the time on the domain server causing the authentication to fail. Solution is set the system time correctly and then reboot the server.

2) If the problem happened due to offline datafiles try to find if there are any offline files by checking the v$recover_file view.

SQL> startup mount;
SQL> select * from v$recover_file;

12 OFFLINE OFFLINE 2489123132 30-DEC-09
23 OFFLINE OFFLINE 2489123132 30-DEC-09

Recover the offline datafiles that were appearing from above select statement,

SQL> recover datafile 12,23;

Media recovery complete.

Bring these datafiles back online,
SQL> alter database datafile 12,23 online;

Database altered.

Ensure that no more files just check again the v$recover_file view, then you can safely open the database.

SQL> select * from v$recover_file;
no rows selected

Now open the database.
SQL> alter database open;

3) Exit sql*plus window, re login to sql*plus and try to bring up oracle one step at a time.
$ sqlplus /nolog
SQL> startup nomount
SQL> alter database mount;
SQL> alter database open;

Related Documents
http://arjudba.blogspot.com/2009/05/ora-27100-shared-memory-realm-already.html
http://arjudba.blogspot.com/2008/11/ora-01033-oracle-initialization-or.html
http://arjudba.blogspot.com/2008/09/database-startup-fails-with-ora-27302.html
http://arjudba.blogspot.com/2008/09/database-startup-fails-with-ora-00444.html
http://arjudba.blogspot.com/2008/05/database-startup-fails-with-errors-ora.html
http://arjudba.blogspot.com/2008/04/ora-01034-ora-27101-shared-memory-realm.html
http://arjudba.blogspot.com/2010/01/shutdown-fails-with-ora-24324-ora-24323.html

No comments:

Post a Comment