Oracle 11g DataGuard主备切换
1.检查主备的环境dg1节点:
SQL> archive log list;Database log mode Archive ModeAutomatic archival EnabledArchive destination /u01/oradata/tong/archiveOldest online log sequence 59Next log sequence to archive 61Current log sequence 61SQL>
dg2节点:SQL> archive log list;Database log mode Archive ModeAutomatic archival EnabledArchive destination /u01/oradata/tong/archiveOldest online log sequence 60Next log sequence to archive 0Current log sequence 61SQL>
2.查看主备的角色dg1节点(primary角色):
SQL> select switchover_status,database_role from v$database;SWITCHOVER_STATUS DATABASE_ROLE-------------------- ----------------TO STANDBY PRIMARYSQL>
dg2节点(standby角色):SQL> select switchover_status,database_role from v$database;SWITCHOVER_STATUS DATABASE_ROLE-------------------- ----------------NOT ALLOWED PHYSICAL STANDBYSQL>
3.在主库上执行切换命令(primary节点)SQL> alter database commit to switchover to physical standby; --将primary角色转换为standby角色Database altered.SQL> shutdown immediate --关闭数据库,启动到mount状态ORA-01507: database not mounted
ORACLE instance shut down.SQL> startup mount
Total System Global Area 830930944 bytesFixed Size 2217912 bytesVariable Size 545261640 bytesDatabase Buffers 281018368 bytesRedo Buffers 2433024 bytesDatabase mounted.SQL> select switchover_status,database_role from v$database; --查看目前primary角色的状态SWITCHOVER_STATUS DATABASE_ROLE-------------------- ----------------TO PRIMARY PHYSICAL STANDBYSQL>
4.在备库上执行(standby节点)SQL> select switchover_status,database_role from v$database; --查看standby备库角色的状态SWITCHOVER_STATUS DATABASE_ROLE-------------------- ----------------TO PRIMARY PHYSICAL STANDBYSQL> alter database commit to switchover to primary; --将备库的角色修改为primaryDatabase altered.SQL> select switchover_status,database_role from v$database;SWITCHOVER_STATUS DATABASE_ROLE-------------------- ----------------NOT ALLOWED PRIMARYSQL> alter database open; --打开数据库Database altered.SQL>
5.在备库上执行(standby节点)
SQL> select switchover_status,database_role from v$database;SWITCHOVER_STATUS DATABASE_ROLE-------------------- ----------------RECOVERY NEEDED PHYSICAL STANDBYSQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION; --修改以前主库为日志应用Database altered. SQL>
6.测试主备节点是否切换成功dg2节点(primary角色):
SQL> select * from tt; A---------- 1 3 4 5 6 76 rows selected.SQL> insert into tt values(8);1 row created.SQL> commit;Commit complete.SQL> select * from tt where a=8; A---------- 8SQL> alter system switch logfile;System altered.SQL> /System altered.SQL> archive log list;Database log mode Archive ModeAutomatic archival EnabledArchive destination /u01/oradata/tong/archiveOldest online log sequence 78Next log sequence to archive 80Current log sequence 80SQL>
dg1节点(standby角色):SQL> archive log list;Database log mode Archive ModeAutomatic archival EnabledArchive destination /u01/oradata/tong/archiveOldest online log sequence 79Next log sequence to archive 0Current log sequence 80SQL> alter database recover managed standby database cancel; Database altered.SQL> alter database open read only;Database altered.SQL> select * from tt; A---------- 1 3 4 5 6 7 87 rows selected.SQL>
Oracle DataGuard 升级 [11.2.0.1 -> 11.2.0.4] http://www.linuxidc.com/Linux/2017-02/140557.htm
来源: http://www.linuxidc.com/Linux/2017-04/142937.htm