()

Solution for ORA-00600: Internal Error Code, Arguments: [4193] [2206} in Oracle

In this post we will see How to solve ORA-00600: Internal Error Code, Arguments: [4193] [2206], You can encounter this error in Multitenant Environment (CDB) if your Oracle Database machine was suddenly stopped without proper shutdown command due to some unavoidable problem like Power Failure, Power cable issue, etc.

You can receive ORA-00600 for CDB$ROOT or PDB. In the first section, we showed steps to fix this error in the CDB$ROOT container, and in the later section steps to fix this error in the PDB container.

Issue in CDB$ROOT container


When we tried to start the Oracle database we received ORA-00600 during DB startup.

[oracle@test-machine01 ~]$
[oracle@test-machine01 ~]$
[oracle@test-machine01 ~]$ sqlplus sys as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Fri Sep 30 15:20:28 2022
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

Enter password:

Connected to an idle instance.

SQL>
SQL> startup mount
ORACLE instance started.

Total System Global Area  838858864 bytes
Fixed Size                  9140336 bytes
Variable Size             792723456 bytes
Database Buffers           29360128 bytes
Redo Buffers                7634944 bytes
Database mounted.
SQL>
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-00603: ORACLE server session terminated by fatal error
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-00600: internal error code, arguments: [4194], [20], [9], [], [], [], [],
[], [], [], [], []
Process ID: 12529
Session ID: 237 Serial number: 62242
SQL>


Step 1. Verify Local Undo Used: Startup database in mount state. and verify Local Undo is used by querying view database_properties and validate the current Undo tablespace name.

[oracle@test-machine01 ~]$ 
[oracle@test-machine01 ~]$ sqlplus sys as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Fri Sep 30 15:27:45 2022
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

Enter password:
Connected to an idle instance.

SQL> 
SQL> startup mount
ORACLE instance started.

Total System Global Area  838858864 bytes
Fixed Size                  9140336 bytes
Variable Size             792723456 bytes
Database Buffers           29360128 bytes
Redo Buffers                7634944 bytes
Database mounted.
SQL>
SQL>
SQL> set lines 300
SQL> show parameter spfile;

NAME                                 TYPE                             VALUE
------------------------------------ -------------------------------- ------------------------------
spfile                               string                           /u01/app/oracle/product/19.3.0/db_1/dbs/spfilecdb1.ora
SQL>
SQL>

SQL> 
SQL> set lines 300
SQL> col PROPERTY_NAME for a50
SQL> col PROPERTY_VALUE for a50
SQL> 
SQL>
SQL>  SELECT property_name, property_value FROM database_properties WHERE property_name = 'LOCAL_UNDO_ENABLED';

PROPERTY_NAME                                      PROPERTY_VALUE
-------------------------------------------------- --------------------------------------------------
LOCAL_UNDO_ENABLED                                 TRUE

SQL>
SQL>
SQL> show parameter undo;

NAME                                 TYPE                             VALUE
------------------------------------ -------------------------------- ------------------------------
temp_undo_enabled                    boolean                          FALSE
undo_management                      string                           AUTO
undo_retention                       integer                          900
undo_tablespace                      string                           UNDOTBS1
SQL>
SQL>


Step 2. Change undo_management to manual: In order to open the database without ORA-600 change the parameter undo_management to manual at CDB level and restart the database with the force mount option. Verify parameter undo_management set to manual, and then open the database.

SQL>
SQL> Alter system set undo_management=manual scope=spfile;

System altered.

SQL> Show parameter undo_management

NAME                                 TYPE                             VALUE
------------------------------------ -------------------------------- ------------------------------
undo_management                      string                           AUTO
SQL>
SQL> startup force mount
ORACLE instance started.

Total System Global Area  838858864 bytes
Fixed Size                  9140336 bytes
Variable Size             792723456 bytes
Database Buffers           29360128 bytes
Redo Buffers                7634944 bytes
Database mounted.
SQL>
SQL>  Show parameter undo_management

NAME                                 TYPE                             VALUE
------------------------------------ -------------------------------- ------------------------------
undo_management                      string                           MANUAL
SQL>
SQL>
SQL> Alter database open ;

Database altered.

SQL>


Step 3. Create new undo tablespace: Create a new Undo tablespace with a different name and set this undo as Primary Undo in the init file with scope=spfile option and drop the existing Undo tablespace and restart the database.

SQL>
SQL>  create undo tablespace UNDOTBS2 datafile '/u01/oradata/CDB1/undotbs02.dbf' size 100m autoextend on maxsize unlimited;

Tablespace created.

SQL> ALTER SYSTEM set  UNDO_TABLESPACE='UNDOTBS2' scope=both;
ALTER SYSTEM set  UNDO_TABLESPACE='UNDOTBS2' scope=both
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-30014: operation only supported in Automatic Undo Management mode
SQL> 
SQL> ALTER SYSTEM set  UNDO_TABLESPACE='UNDOTBS2' scope=spfile;

System altered.

SQL>

SQL> DROP tablespace UNDOTBS1 including contents and datafiles;

Tablespace dropped.

SQL>
SQL> Show parameter undo_management

NAME                                 TYPE                             VALUE
------------------------------------ -------------------------------- ------------------------------
undo_management                      string                           MANUAL
SQL>
SQL> alter system set undo_management=Auto scope=spfile;

System altered.

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


Step 4. Change Undo Tablespace in init parameter file: DB startup command failed as DB still looking for old dropped undo tablespace. Create an init file from spfile and update the new undo tablespace name.

SQL>
SQL> startup
ORACLE instance started.

Total System Global Area  838858864 bytes
Fixed Size                  9140336 bytes
Variable Size             780140544 bytes
Database Buffers           41943040 bytes
Redo Buffers                7634944 bytes
Database mounted.
ORA-00603: ORACLE server session terminated by fatal error
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-30012: undo tablespace 'UNDOTBS1' does not exist or of wrong type
Process ID: 44209
Session ID: 237 Serial number: 26535


SQL> create pfile from spfile;
ERROR:
ORA-03114: not connected to ORACLE


SQL>
SQL> exit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
^[[A[oracle@test-machine01 ~]$
[oracle@test-machine01 ~]$ sqlplus sys as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Sat Oct 1 00:03:47 2022
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

Enter password:
Connected to an idle instance.

SQL> create pfile from spfile;

File created.

SQL> !
[oracle@test-machine01 ~]$
[oracle@test-machine01 ~]$ cd $ORACLE_HOME
[oracle@test-machine01 db_1]$
[oracle@test-machine01 db_1]$
[oracle@test-machine01 db_1]$ cd dbs
[oracle@test-machine01 dbs]$

oracle@test-machine01 dbs]$
[oracle@test-machine01 dbs]$ ls -ltr *cdb1*
-rw-r-----. 1 oracle oinstall     2048 Nov  3  2020 orapwcdb1
-rw-r-----. 1 oracle oinstall 18726912 Aug 29 00:14 snapcf_cdb1.f
-rw-r-----. 1 oracle oinstall     3584 Oct  1 00:00 spfilecdb1.ora
-rw-rw----. 1 oracle oinstall     1544 Oct  1 00:01 hc_cdb1.dat
-rw-r--r--. 1 oracle oinstall     1228 Oct  1 00:03 initcdb1.ora
[oracle@test-machine01 dbs]$
[oracle@test-machine01 dbs]$ mv spfilecdb1.ora spfilecdb1.old
[oracle@test-machine01 dbs]$
[oracle@test-machine01 dbs]$ vi initcdb1.ora
[oracle@test-machine01 dbs]$
[oracle@test-machine01 dbs]$ cat initcdb1.ora |grep undo
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS2'
[oracle@test-machine01 dbs]$
[oracle@test-machine01 dbs]$ ps
   PID TTY          TIME CMD
 11223 pts/0    00:00:00 bash
 44328 pts/0    00:00:00 sqlplus
 44336 pts/0    00:00:00 bash
 44479 pts/0    00:00:00 ps
[oracle@test-machine01 dbs]$ exit
exit

SQL>
SQL>
SQL> startup mount
ORACLE instance started.

Total System Global Area  838858864 bytes
Fixed Size                  9140336 bytes
Variable Size             780140544 bytes
Database Buffers           41943040 bytes
Redo Buffers                7634944 bytes
Database mounted.
SQL>
SQL> set lines 300
SQL>
SQL> show parameter undo

NAME                                 TYPE                             VALUE
------------------------------------ -------------------------------- ------------------------------
temp_undo_enabled                    boolean                          FALSE
undo_management                      string                           AUTO
undo_retention                       integer                          900
undo_tablespace                      string                           UNDOTBS2
SQL>
SQL>
SQL> 
SQL> alter database open;

Database altered.

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB1                           MOUNTED
SQL>


Step 5. Open pluggable database: Now try to open PDB since we have TDE (Transparent Data Encryption) configuration enabled. So we need to open the wallet before PDB can be opened. Follow the below steps to open your wallet. Click here to read more about TDE.

SQL>
SQL> alter pluggable database PDB1 open;
alter pluggable database PDB1 open
*
ERROR at line 1:
ORA-28365: wallet is not open
SQL>
SQL> set pages 300
SQL> set lines 300
SQL> col WRL_PARAMETER for a50
SQL> select * from v$ENCRYPTION_WALLET;

WRL_TYPE             WRL_PARAMETER                                      STATUS                         WALLET_TYPE          WALLET_OR KEYSTORE FULLY_BAC     CON_ID
-------------------- -------------------------------------------------- ------------------------------ -------------------- --------- -------- --------- ----------
FILE                 /u01/app/oracle/admin/cdb1/encryption_wallet//tde/ OPEN                           PASSWORD             SINGLE    NONE     NO                 1
FILE                                                                    OPEN                           PASSWORD             SINGLE    UNITED   NO                 2
FILE                                                                    CLOSED                         UNKNOWN              SINGLE    UNITED   UNDEFINED          3
SQL> 
SQL> alter session set container=PDB1;

Session altered.

SQL>
SQL> administer key management set keystore open identified by WelcomE#_1234 ;

keystore altered.

SQL>  select * from v$ENCRYPTION_WALLET;

WRL_TYPE             WRL_PARAMETER                                      STATUS                         WALLET_TYPE          WALLET_OR KEYSTORE FULLY_BAC     CON_ID
-------------------- -------------------------------------------------- ------------------------------ -------------------- --------- -------- --------- ----------
FILE                                                                    OPEN                           PASSWORD             SINGLE    UNITED   NO                 3

SQL> alter database open ;

Database altered.

SQL>
SQL> 
SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         3 PDB1                           READ WRITE NO
SQL>
SQL> alter session set container=CDB$ROOT;

Session altered.

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB1                           READ WRITE NO
SQL>
SQL>


Issue in PDB container


Step 1. Change undo_management to manual: Set parameter undo_management to manual using scope=spfile option and restart the database with the force mount option. Verify parameter undo_management set to manual, and then open the database.

[oracle@test-machine01 ~]$
[oracle@test-machine01 ~]$ sqlplus sys as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Fri Sep 30 15:37:53 2022
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

Enter password:
Connected to an idle instance.

SQL>
SQL> startup nomount
ORACLE instance started.

Total System Global Area  838858864 bytes
Fixed Size                  9140336 bytes
Variable Size             780140544 bytes
Database Buffers           41943040 bytes
Redo Buffers                7634944 bytes
SQL>
SQL>  Alter system set undo_management=manual scope=spfile;

System altered.

SQL> Startup force mount ;
ORACLE instance started.

Total System Global Area  838858864 bytes
Fixed Size                  9140336 bytes
Variable Size             780140544 bytes
Database Buffers           41943040 bytes
Redo Buffers                7634944 bytes
Database mounted.
SQL>
SQL> set lines 300
SQL>  Show parameter undo_management

NAME                                 TYPE                             VALUE
------------------------------------ -------------------------------- ------------------------------
undo_management                      string                           MANUAL
SQL>
SQL>  Alter database open ;

Database altered.

SQL>
SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB1                           MOUNTED
SQL>
SQL> 


Step 2. Open PDB in restricted mode: Open PDB in restricted mode. Verify Local Undo is enabled and undo_management is set to manual.

QL>
SQL>
SQL>  alter session set container=PDB1;

Session altered.

SQL>
SQL>  alter pluggable database PDB1 open restricted;

Pluggable database altered.

SQL>
SQL>  SELECT property_name, property_value FROM database_properties WHERE property_name = 'LOCAL_UNDO_ENABLED';

PROPERTY_NAME                                      PROPERTY_VALUE
-------------------------------------------------- --------------------------------------------------
LOCAL_UNDO_ENABLED                                 TRUE

SQL>
SQL> show parameter undo;

NAME                                 TYPE                             VALUE
------------------------------------ -------------------------------- ------------------------------
temp_undo_enabled                    boolean                          FALSE
undo_management                      string                           MANUAL
undo_retention                       integer                          900
undo_tablespace                      string
SQL>
SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         3 PDB1                           READ WRITE YES
SQL>


Step 3. Open PDB Wallet: we have TDE (Transparent Data Encryption) configuration enabled. So we need to open the wallet before tablespace can be added. Follow the below steps to open your wallet. Click here to read more about TDE.

SQL> 
SQL> create undo tablespace UNDOTBS2 datafile '/u01/oradata/PDB1undotbs02.dbf' size 100m autoextend on maxsize unlimited;
create undo tablespace UNDOTBS2 datafile '/u01/oradata/PDB1undotbs02.dbf' size 100m autoextend on maxsize unlimited
*
ERROR at line 1:
ORA-28365: wallet is not open


SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         3 PDB1                           READ WRITE YES
SQL>
SQL> set pages 300
SQL> set lines 300
SQL> col WRL_PARAMETER for a50
SQL> select * from v$ENCRYPTION_WALLET;

WRL_TYPE             WRL_PARAMETER                                      STATUS                         WALLET_TYPE          WALLET_OR KEYSTORE FULLY_BAC     CON_ID
-------------------- -------------------------------------------------- ------------------------------ -------------------- --------- -------- --------- ----------
FILE                                                                    CLOSED                         UNKNOWN              SINGLE    UNITED   UNDEFINED          3

SQL> administer key management set keystore open identified by WelcomE#_1234 container=all;
administer key management set keystore open identified by WelcomE#_1234 container=all
*
ERROR at line 1:
ORA-65040: operation not allowed from within a pluggable database


SQL> alter session set container=CDB$ROOT;

Session altered.

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB1                           READ WRITE YES
SQL>
SQL> show con_name

CON_NAME
------------------------------
CDB$ROOT
SQL>
SQL>  administer key management set keystore open identified by WelcomE#_1234 container=all;

keystore altered.

SQL>  select * from v$ENCRYPTION_WALLET;

WRL_TYPE             WRL_PARAMETER                                      STATUS                         WALLET_TYPE          WALLET_OR KEYSTORE FULLY_BAC     CON_ID
-------------------- -------------------------------------------------- ------------------------------ -------------------- --------- -------- --------- ----------
FILE                 /u01/app/oracle/admin/cdb1/encryption_wallet//tde/ OPEN                           PASSWORD             SINGLE    NONE     NO                 1
FILE                                                                    OPEN                           PASSWORD             SINGLE    UNITED   NO                 2
FILE                                                                    OPEN                           PASSWORD             SINGLE    UNITED   NO                 3

SQL>


Step 4. Create new undo tablespace: Create a new Undo tablespace with a different name and set this undo as Primary Undo in the init file with scope=spfile option and drop the existing undo tablespace. Close the PDB and restart the database.

SQL>
SQL> alter session set container=PDB1;

Session altered.

SQL>  create undo tablespace UNDOTBS2 datafile '/u01/oradata/PDB1undotbs02.dbf' size 100m autoextend on maxsize unlimited;

Tablespace created.

SQL> alter system set undo_tablespace='UNDOTBS2' scope=both;
alter system set undo_tablespace='UNDOTBS2' scope=both
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-30014: operation only supported in Automatic Undo Management mode


SQL> 
SQL> ALTER SYSTEM set  UNDO_TABLESPACE='UNDOTBS2' scope=spfile;

System altered.

SQL>
SQL>  DROP tablespace UNDOTBS1 including contents and datafiles;

Tablespace dropped.

SQL>
SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         3 PDB1                           READ WRITE YES
SQL>
SQL>
SQL> show parameter undo

NAME                                 TYPE                             VALUE
------------------------------------ -------------------------------- ------------------------------
temp_undo_enabled                    boolean                          FALSE
undo_management                      string                           MANUAL
undo_retention                       integer                          900
undo_tablespace                      string
SQL>
SQL> alter pluggable database PDB1 close;

Pluggable database altered.

SQL>
SQL> alter session set container=cdb$root;

Session altered.

SQL> show con_name

CON_NAME
------------------------------
CDB$ROOT
SQL>
SQL> alter system set undo_management=Auto scope=spfile;

System altered.

SQL> Shutdown immediate ;
Database closed.
Database dismounted.

ORACLE instance shut down.
SQL> SQL>
SQL>


Step 5. Open the database: Now open the database and try to open PDB. Since we have TDE we need to open the wallet.

[oracle@test-machine01 ~]$
[oracle@test-machine01 ~]$ sqlplus sys as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Fri Oct 7 15:29:54 2022
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

Enter password:
Connected to an idle instance.

SQL> startup
ORACLE instance started.

Total System Global Area  838858864 bytes
Fixed Size                  9140336 bytes
Variable Size             780140544 bytes
Database Buffers           41943040 bytes
Redo Buffers                7634944 bytes
Database mounted.

Database opened.
SQL> SQL>
SQL>
SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB1                           MOUNTED
SQL>
SQL> alter pluggable database PDB1 open;
alter pluggable database PDB1 open
*
ERROR at line 1:
ORA-28365: wallet is not open


SQL> administer key management set keystore open identified by WelcomE#_1234 container=all;

keystore altered.

SQL>  alter pluggable database PDB1 open;
 alter pluggable database PDB1 open
*
ERROR at line 1:
ORA-28365: wallet is not open


SQL> alter session set container=PDB1;

Session altered.

SQL> administer key management set keystore open identified by WelcomE#_1234;

keystore altered.

SQL> alter database open;

Database altered.

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         3 PDB1                           READ WRITE NO
SQL>
SQL>


Reference : MOS ORA-00600: Internal Error Code, Arguments: [4193], [2206], [51266], [], [], [] on PDB Open (Doc ID 2849388.1)


This document is only for learning purposes and always validate in the LAB environment first before applying it in the LIVE environment.


Hope so you like this article!
Please share your valuable feedback/comments/subscribe and follow us below and don’t forget to click on the bell icon to get the most recent update. Click here to know more about our pursuit.


Related Articles


Loading

How useful was this post?

Click on a star to rate it!

Average rating / 5. Vote count:

No votes so far! Be the first to rate this post.

As you found this post useful...

Follow us on social media!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?

Jamsher Khan

Hello and welcome to DBsGuru,I’m Jamsher Khan working as Senior Oracle DBA based in KSA-Jeddah, I have working experience in Oracle DBA, SQL Server, MySql, PostgreSQL, Linux, Golden Gate, ODA.Thanks for the visits!Share Learn Grow!