RAC环境的物理STANDBY的 SWITCHOVER切换
上一篇 / 下一篇 2008-01-19 01:49:17 / 个人分类:ORACLE
物理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 SYSDBAITPUB个人空间QD;i6MB&o7kZq
已连接。ITPUB个人空间"L;P w-Z3K2I
SQL> SELECT INSTANCE_NAME FROM V$INSTANCE;
INSTANCE_NAMEITPUB个人空间J*K
s3nN-lv
----------------
#lXJ4g:w
v0testrac2
SQL> SHUTDOWN IMMEDIATEITPUB个人空间"Y&i^kOH1br
数据库已经关闭。
oix/~y{4O
Pe0已经卸载数据库。
v+BZi&@*ix0ORACLE例程已经关闭。
?2TLy9a0SQL> CONN SYS/TEST@TESTRAC1 AS SYSDBAITPUB个人空间
PDE&V@lc
已连接。
i
DG9^x7l+?%`3m4B7p0SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;
SWITCHOVER_STATUS
p4h)ue6G:k#\#l#\!N0--------------------ITPUB个人空间3^,D2v
rcW"EL\[&U
SESSIONS ACTIVE
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN;
数据库已更改。
SQL> SHUTDOWN IMMEDIATE
u3ibN
eg0ORA-01507:未装载数据库
ITPUB个人空间StE0w%b7w(o
ORACLE例程已经关闭。ITPUB个人空间7_%T a0~sgr!~tUa
SQL> STARTUP MOUNT
ed
ZE0a3v.v3L0ORACLE例程已经启动。
Total System Global Area 2147483648 bytesITPUB个人空间GqVx3?y~YS:`8D
Fixed Size 2031480 bytesITPUB个人空间egZR%EH#E,h
Variable Size 956301448 bytesITPUB个人空间FFi
}}5Q
Database Buffers 1174405120 bytes
+@k]6S/m%n0Redo Buffers 14745600 bytes
gM(LmHY&aJ*s0数据库装载完毕。
下面连接到STANDBY数据库,并切换到为PRIMARY数据库:
SQL> CONN SYS/TEST@TESTRAC_STANDBY AS SYSDBAITPUB个人空间|4`6e
a9}#x(Q
已连接。ITPUB个人空间0^"C
Fp"T
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;
SWITCHOVER_STATUS
o Xlc?U8x0--------------------ITPUB个人空间;]F T#Yt_@'ro|)v
TO PRIMARY
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;
数据库已更改。
SQL> ALTER DATABASE OPEN;
数据库已更改。
SQL> CONN SYS/TEST@TESTRAC1 AS SYSDBA
B5[(?FK1_R^+|B0已连接到空闲例程。
G/G
gi2G&]6A,_0SQL> STARTUP MOUNTITPUB个人空间rDi
co~
xV%wq
ORACLE例程已经启动。
Total System Global Area 2147483648 bytes
t#Hs&S3KO0Fixed Size 2031480 bytesITPUB个人空间(H2Y6L+Q2W$q,z'T7M
Variable Size 956301448 bytes
4B4R
P(y m0Database Buffers 1174405120 bytesITPUB个人空间
PK3X4VQ6A"J$j,t
Redo Buffers 14745600 bytesITPUB个人空间v3{i1s9~Q|
数据库装载完毕。
lt8C+Q!_0SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
数据库已更改。
至此,RAC环境的SWITCHOVER切换完成。下面检查一下日志是否已经从目前的主库传播到从库就可以了。
下面简单描述一下,将主库切换为RAC环境的过程:
SQL> CONN SYS/TEST@TESTRAC_STANDBY AS SYSDBAITPUB个人空间Z v[ L&KNY
已连接。ITPUB个人空间Y+_:a\9W2t{{L
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;
SWITCHOVER_STATUS
G,tvKh0--------------------
2@O)`VTn[0SESSIONS ACTIVE
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY;
数据库已更改。
SQL> SHUTDOWN IMMEDIATE
:f,OHB0vR3s0ORA-01507:未装载数据库
ITPUB个人空间6MD6w0B4B9ov!`
ORACLE例程已经关闭。ITPUB个人空间%I1Ju!h(Xv(o/i
SQL> STARTUP MOUNTITPUB个人空间!mMv5F%F
ORACLE例程已经启动。
Total System Global Area 2147483648 bytesITPUB个人空间+CT*[^ ^tz+C.b,nB
Fixed Size 2031480 bytesITPUB个人空间.GL(S"V+Kt'LO
u
Variable Size 520093832 bytesITPUB个人空间o0s l
K(m b I
Database Buffers 1610612736 bytesITPUB个人空间-}Qr'V \
Redo Buffers 14745600 bytes
5rX0t"N3p,`5}e0数据库装载完毕。
"oLS/I P4l"Y0SQL> CONN SYS/TEST@TESTRAC1 AS SYSDBAITPUB个人空间 A0C]&di
已连接。ITPUB个人空间
MIH2K8Cl)t*sz
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;
SWITCHOVER_STATUS
m mp|U0--------------------
w[
L
`(|/M5\v0SESSIONS ACTIVE
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;
数据库已更改。
SQL> ALTER DATABASE OPEN;
数据库已更改。
SQL> CONN SYS/TEST@TESTRAC2 AS SYSDBA
cvzr"?$Z!L0已连接到空闲例程。ITPUB个人空间s0W9q6~@c5zr
SQL> STARTUP
X@:YK4AM.X#@PIW0ORACLE例程已经启动。
Total System Global Area 2147483648 bytes
"Dd O
O6M]-v0[0Fixed Size 2031480 bytes
y['h%k4B.U!c0Variable Size 520093832 bytes
/mrzU!A?7Hh0Database Buffers 1610612736 bytesITPUB个人空间fuQEJ+z
Redo Buffers 14745600 bytesITPUB个人空间)d)gx:[Hd1AC#V)z
数据库装载完毕。
7h%?"j)KH|1Z
|*J0数据库已经打开。ITPUB个人空间)?E
Lv
I$j!]*Y-^
SQL> CONN SYS/TEST@TESTRAC_STANDBY AS SYSDBA
6\7D"n]uN(p3fO0已连接。
%f&|4E*U#Q
b1H!yM/K0SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
数据库已更改。
这个操作只是上面的一个反向操作,就不详细描述了。
RAC环境的切换似乎和普通环境的切换相差不大,但是这次切换花费了将近3天的时间。
只要原因是碰到了下面的几个bug:
SWITCHOVER RAC数据库出现ORA-1093:http://yangtingkun.itpub.net/post/468/417767
SWITCHOVER RAC数据库出现ORA-600(kcctrdf_2)错误:http://yangtingkun.itpub.net/post/468/418311
ORA-19864错误:http://yangtingkun.itpub.net/post/468/418784
三个bug中的后两个,在metalink上都找不到解决方法,只能通过自己的摸索来解决。看来越复杂的机制相应的问题就越多,而且相关的参考信息也越少。
导入论坛 引用链接 收藏 分享给好友 推荐到圈子 管理 举报
TAG: