一、主备切换( switch over )
Primary数据库操作
1 )确认主机打开方式
SQL> select DATABASE_ROLE,PROTECTION_MODE,open_mode fromvdatabase;2)切换到备机模式SQL>ALTERDATABASECOMMITTOSWITCHOVERTOPHYSICALSTANDBY;Standby数据库操作1)取消备机日志应用SQL>alterdatabaserecovermanagedstandbydatabasecancel;2)切换到主机模式SQL>ALTERDATABASECOMMITTOSWITCHOVERTOPRIMARY;3)重启备库SQL>SHUTDOWNIMMEDIATE;SQL>STARTUP;Primary数据库操作1)重启主库SQL>SHUTDOWNIMMEDIATE;SQL>STARTUPMOUNT;2)调整为“READONLY”状态SQL>alterdatabaseopen;3)应用日志SQL>alterdatabaserecovermanagedstandbydatabaseusingcurrentlogfiledisconnect;4)确认openmode为“READONLYWITHAPPLY”SQL>selectopenmodefromvdatabase;
2 )切换到备机模式
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY;
Standby数据库操作
1 )取消备机日志应用
SQL> alter database recover managed standby database cancel;
2 )切换到主机模式
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;
3 )重启备库
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP;
Primary数据库操作
1 )重启主库
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
2 )调整为“ READONLY ”状态
SQL> alter database open;
3 )应用日志
SQL> alter database recover managed standby database usingcurrent logfile disconnect;
4 )确认 open_mode 为“ READ ONLY WITH APPLY ”
SQL> select open_mode from vdatabase;2)切换到备机模式SQL>ALTERDATABASECOMMITTOSWITCHOVERTOPHYSICALSTANDBY;Standby数据库操作1)取消备机日志应用SQL>alterdatabaserecovermanagedstandbydatabasecancel;2)切换到主机模式SQL>ALTERDATABASECOMMITTOSWITCHOVERTOPRIMARY;3)重启备库SQL>SHUTDOWNIMMEDIATE;SQL>STARTUP;Primary数据库操作1)重启主库SQL>SHUTDOWNIMMEDIATE;SQL>STARTUPMOUNT;2)调整为“READONLY”状态SQL>alterdatabaseopen;3)应用日志SQL>alterdatabaserecovermanagedstandbydatabaseusingcurrentlogfiledisconnect;4)确认openmode为“READONLYWITHAPPLY”SQL>selectopenmodefromvdatabase;
5 )测试
在原备机上插入数据,测试原主机是否收到。
二、主库宕机( failover )
primary数据库操作
$ ps –ef | grep pmon
$ kill -9 {pid_pmon}
Standby数据库操作
- 取消 standby 日志应用
standby SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASECANCEL;
standby SQL> alter database recover managed standby databasefinish;
如果没有应用standby redolog,此处使用下面的命令:
standby SQL> alter database recover managed standby databasefinish skip standby logfile;
2 )重启 db 到 mount 状态
standby SQL> shutdown immediate;
standby SQL> startup mount;
3 )切换到主机模式
standby SQL> alter database commit to switchover to primary;
standby SQL> alter database open;
5 )test 测试
测试原备机是否可以连接使用,并统计丢失数据。