物理STANDBY的SWITCHOVER切换会把当前的一个物理STANDBY切换为PRIMARY数据库,而PRIMARY数据库且变成物理STNADBY数据库。
这篇描述RAC环境数据库SWITCHOVER切换到一个单实例数据库。
DATA GUARD物理STANDBY的 SWITCHOVER切换:http://yangtingkun.itpub.net/post/468/412324
在进行DATA GUARD的物理STANDBY切换前需要注意:
确认主库和从库间网络连接通畅;
确认没有活动的会话连接在数据库中;
PRIMARY数据库处于打开的状态,STANDBY数据库处于MOUNT状态;
确保STANDBY数据库处于ARCHIVELOG模式;
如果设置了REDO应用的延迟,那么将这个设置去掉;
确保配置了主库和从库的初始化参数,使得切换完成后,DATA GUARD机制可以顺利的运行。
而对于RAC环境的切换,还需要注意一点,RAC环境的DATA GUARD切换只能启动一个数据库实例,其他的实例需要关闭:
SQL> CONN SYS/TEST@TESTRAC2 AS SYSDBA已连接。
SQL> SELECT INSTANCE_NAME FROM V$INSTANCE;
INSTANCE_NAME
----------------
testrac2
SQL> SHUTDOWN IMMEDIATE数据库已经关闭。已经卸载数据库。
ORACLE 例程已经关闭。
SQL> CONN SYS/TEST@TESTRAC1 AS SYSDBA已连接。
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;
SWITCHOVER_STATUS
--------------------
SESSIONS ACTIVE
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN;
数据库已更改。
SQL> SHUTDOWN IMMEDIATE
ORA-01507: 未装载数据库
ORACLE 例程已经关闭。
SQL> STARTUP MOUNT
IXDBA.NET技术社区
ORACLE 例程已经启动。
Total System Global Area 2147483648 bytes
Fixed Size 2031480 bytes
Variable Size 956301448 bytes
Database Buffers 1174405120 bytes
Redo Buffers 14745600 bytes数据库装载完毕。
下面连接到STANDBY数据库,并切换到为PRIMARY数据库:
SQL> CONN SYS/TEST@TESTRAC_STANDBY AS SYSDBA已连接。
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;
SWITCHOVER_STATUS
--------------------
TO PRIMARY
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;
数据库已更改。
SQL> ALTER DATABASE OPEN;
数据库已更改。
SQL> CONN SYS/TEST@TESTRAC1 AS SYSDBA已连接到空闲例程。
SQL> STARTUP MOUNT
ORACLE 例程已经启动。
Total System Global Area 2147483648 bytes
Fixed Size 2031480 bytes
Variable Size 956301448 bytes
Database Buffers 1174405120 bytes
Redo Buffers 14745600 bytes数据库装载完毕。
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
数据库已更改。
至此,RAC环境的SWITCHOVER切换完成。下面检查一下日志是否已经从目前的主库传播到从库就可以了。
下面简单描述一下,将主库切换为RAC环境的过程:
SQL> CONN SYS/TEST@TESTRAC_STANDBY AS SYSDBA已连接。
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;
SWITCHOVER_STATUS
--------------------
SESSIONS ACTIVE
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY;
数据库已更改。
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> CONN SYS/TEST@TESTRAC1 AS SYSDBA已连接。
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;
SWITCHOVER_STATUS
--------------------
SESSIONS ACTIVE
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;