Oracle 10g RAC环境数据库执行ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL DATABASE操作,试图将当前的物理STANDBY数据库切换为PRIMARY数据库时,出现下面的错误:SQL> CONN SYS/TEST@TESTRAC_STANDBY AS SYSDBA已连接。
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;SWITCHOVER_STATUS
--------------------
TO PRIMARYSQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;
ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY
*第 1行出现错误:
ORA-00600:内部错误代码,参数: [kcctrdf_2], [/export/home/oracle/oradata/testrac/group_1.259.6185911
[], [], []从报错的trace文件中,可以看到下面的内容:105E36DF0 5741524E 494E4721 20434C45 4152494E [WARNING! CLEARIN]
105E36E00 47205245 444F204C 4F472057 48494348 [G REDO LOG WHICH]
105E36E10 20484153 204E4F54 20424545 4E204152 [ HAS NOT BEEN AR]
105E36E20 43484956 45442E20 4241434B 55505320 [CHIVED. BACKUPS ]
105E36E30 54414B45 4E0A2020 20204245 464F5245 [TAKEN. BEFORE]
105E36E40 20257320 28434841 4E474520 25732920 [ %s (CHANGE %s) ]
105E36E50 43414E4E 4F542042 45205553 45442046 [CANNOT BE USED F]
105E36E60 4F522052 45434F56 4552592E 0A000000 [OR RECOVERY.....]
105E36E70 5741524E 494E4721 20434C45 4152494E [WARNING! CLEARIN]
105E36E80 47205245 444F204C 4F47204E 45454445 [G REDO LOG NEEDE]
105E36E90 4420464F 52205245 434F5645 5259204F [D FOR RECOVERY O]
105E36EA0 46205448 45204F46 464C494E 45204441 [F THE OFFLINE DA]结合在metalink上查询的信息,基本上可以断定问题是由于RECOVERY AREA造成的。关于metalink上面的bug描述,可以参考Bug No. 2848315。Metalink虽然指出了问题和RECOVERY AREA有关,但是并没有给出相应的解决方法,而且Oracle目前的版本还没有fixed这个bug,目前也没有任何补丁可以解决这个bug。既然错误是由于FLASHBACK RECOVERY AREA引起的,那么尝试将其DISABLE。在此之前,需要将主库和从库的状态恢复:SQL> CONN SYS/TEST@TESTRAC2 AS SYSDBA已连接。
SQL> SHUTDOWN IMMEDIATE
ORA-01507:未装载数据库
ORACLE例程已经关闭。
SQL> STARTUP MOUNT
ORACLE例程已经启动。Total System Global Area 2147483648 bytes
Fixed Size 2031480 bytes
Variable Size 520093832 bytes
Database Buffers 1610612736 bytes
Redo Buffers 14745600 bytes数据库装载完毕。
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;数据库已更改。SQL> ALTER DATABASE OPEN;数据库已更改。SQL> SELECT DATABASE_ROLE FROM V$DATABASE;DATABASE_ROLE
----------------
PRIMARY下面将从库恢复:SQL> CONN SYS/TEST@TESTRAC_STANDBY AS SYSDBA已连接。
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;SWITCHOVER_STATUS
--------------------
RECOVERY NEEDEDSQL> SHUTDOWN IMMEDIATE
ORA-01109:数据库未打开已经卸载数据库。
ORACLE例程已经关闭。
SQL> STARTUP MOUNT
ORACLE例程已经启动。Total System Global Area 2147483648 bytes
Fixed Size 2031480 bytes
Variable Size 520093832 bytes
Database Buffers 1610612736 bytes
Redo Buffers 14745600 bytes数据库装载完毕。
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;数据库已更改。SQL> SELECT DATABASE_ROLE, SWITCHOVER_STATUS FROM V$DATABASE;DATABASE_ROLE SWITCHOVER_STATUS
---------------- --------------------
PHYSICAL STANDBY SESSIONS ACTIVE至此DATA GUARD环境恢复。下面DISABLE主库的RECOVERY AREA:SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST = "";系统已更改。SQL> SHOW PARAMETER DB_RECOVERYNAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string
db_recovery_file_dest_size big integer 5G再次尝试SWITCHOVER切换错误依旧。仔细查看从库上的错误信息,ORA-600错误的第一个参数是一个日志文件名,而这个文件正是RECOVERY AREA的日志:SQL> SELECT GROUP#, TYPE, IS_RECOVERY_DEST_FILE FROM V$LOGFILE
2 WHERE MEMBER LIKE "%259%";GROUP# TYPE IS_
---------- ------- ---
1 ONLINE YES
Oracle 10g 安装过程中需要执行的两个脚本Oracle优化所要注意的事项相关资讯 Oracle教程
- Oracle中纯数字的varchar2类型和 (07/29/2015 07:20:43)
- Oracle教程:Oracle中查看DBLink密 (07/29/2015 07:16:55)
- [Oracle] SQL*Loader 详细使用教程 (08/11/2013 21:30:36)
| - Oracle教程:Oracle中kill死锁进程 (07/29/2015 07:18:28)
- Oracle教程:ORA-25153 临时表空间 (07/29/2015 07:13:37)
- Oracle教程之管理安全和资源 (04/08/2013 11:39:32)
|
本文评论 查看全部评论 (0)