Wednesday, December 3, 2014

ORA-00600: internal error code, arguments: [4194], [11], [8], [], [],


U slučaju da ne možete startovati Oracle bazu podataka, tj. komandom startup baza se samo za trenutak "podigne" i nakon toga se ponovo "obori", pregledajte bazni alert.log fajl. Ako u njemu nađete grešku oblika:

ORA-00600: internal error code, arguments: [4194], [11], [8], [], [],

Uz dodatne informacije kao što su:

Wed Dec 03 09:29:15 2014
Completed: ALTER DATABASE OPEN
Wed Dec 03 09:29:16 2014
Doing block recovery for file 5 block 1079
Block recovery from logseq 2548, block 70 to scn 70388340
Wed Dec 03 09:29:16 2014
Recovery of Online Redo Log: Thread 1 Group 1 Seq 2548 Reading mem 0
  Mem# 0: E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORACLE_SID\REDO01.LOG
Block recovery completed at rba 2548.80.16, scn 0.70388342


Znači da vam je UNDO tablespace u nekonzistentnom stanju jer je jedan REDO LOG fajl (u ovom slučaju REDO01.LOG) oštećen - informacije u tom LOG fajlu se ne slažu sa informacijama u UNDO tablespace-u. Problem je što u ovom slučaju baza ulazi u loop pokušavajući da odradi recovery UNDO tablespace-a iz kojeg ne može da "izađe".

Nastali problem se može riješiti na dva metoda:

1. Ukoliko baza radi u ARCHIVELOG mode-u i ukoliko postoji validan backup baze dovoljno je uraditi RESTORE&RECOVERY proceduru do trenutka prije nego što je došlo do problema na bazi.

2. Drugi metod se primjenjuje ukoliko ne postoji validan backup baze ili baza ne radi u ARCHIVELOG mode-u. To je procedura kojim se trenutni UNDO tablespace proglašava za nepotrebnim i kreira se novi UNDO tablespace (naravno uz gubitak podataka koji se u trenutku nastanka problema nisu upisali iz RAM memorije u REDO LOG fajl).

Ja ći opisati ovaj drugi metod rešavanja nastalog problema.

Procedura je sledeća:

1. Startovati bazu u MOUNT modu:
startup mount

2. Provjeriti stanje REDO LOG-ova:
SQL> set lin 1000
SQL> select * from v$logfile;

    GROUP# STATUS  TYPE    MEMBER

                                                             IS_
---------- ------- ------- -----------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
------------------------------------------------------------ ---
     3 STALE   ONLINE  E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORACLE_SID\REDO03.LOG

                                                             NO
     2 STALE   ONLINE  E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORACLE_SID\REDO02.LOG

                                                             NO
     1         ONLINE  E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORACLE_SID\REDO01.LOG

3. Provjeriti UNDO parametre:
SQL> show parameter undo

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
undo_management                      string      AUTO
undo_retention                       integer     900
undo_tablespace                      string      UNDOTBS


-- Default-ni UNDO tablespace je: UNDOTBS

4. Promijeniti UNDO_MANAGMENT parametar baze na MANUAL:
alter system set undo_management='MANUAL' scope=spfile;

5. Resetovati bazu:
shutdown immediate

startup

6. Kreirati novi UNDO tablespace:
create undo tablespace UNDOTBS2 datafile
'E:\oracle\product\10.2.0\oradata\ORACLE_SID\undotbs02.dbf' size 1G autoextend on;
7. Podesiti da novi UNDO tablespace bude default-ni bazni UNDO tablespace:
alter system set undo_tablespace='UNDOTBS2' scope=spfile;

 8. Promijeniti UNDO_MANAGMENT parametar baze na AUTO:
alter system set undo_management='AUTO' scope=spfile;

9. Resetovati bazu:
shutdown immediate

startup

10. Provjeriti UNDO parametre:
SQL> show parameter undo

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
undo_management                      string      AUTO
undo_retention                       integer     900
undo_tablespace                      string      UNDOTBS2



Problem riješen.



No comments:

Post a Comment