本文采用Oracle 11g Dataguard broker switchover测试
1. 采用dataguard broker 测试switchover
1) 主库情况
SQL> select open_mode,database_role,db_unique_name from v$database;
OPEN_MODE DATABASE_ROLE DB_UNIQUE_NAME
-------------------- ---------------- ------------------------------
READ WRITE PRIMARY orcl
SQL>
SQL> conn abc/abc
已连接。
SQL> select * from abc;
ID NAME
---------- ----------
3 ddd
4 eee
2 ccc
0 aaa
1 bbb
SQL>
2)备库情况
SQL> select open_mode,database_role,db_unique_name from v$database;
OPEN_MODE DATABASE_ROLE DB_UNIQUE_NAME
-------------------- ---------------- ------------------------------
MOUNTED PHYSICAL STANDBY slave
SQL>
2. 主备库切换测试
$ dgmgrl sys/oracle
DGMGRL for Linux: Version 11.2.0.3.0 - 64bit Production
Copyright (c) 2000, 2009, Oracle. All rights reserved.
欢迎使用 DGMGRL, 要获取有关信息请键入 "help"。
已连接。
DGMGRL> show configuration;
配置 - dgorcldb
保护模式: MaxPerformance
数据库:
orcl - 主数据库
slave - 物理备用数据库
快速启动故障转移: DISABLED
配置状态:
SUCCESS
# 主备库切
DGMGRL> switchover to slave;
立即执行切换, 请稍候...
新的主数据库 "slave" 正在打开...
操作要求关闭实例 "MASTER" (在数据库 "master" 上)
正在关闭实例 "MASTER"...
ORACLE 例程已经关闭。
操作要求启动实例 "MASTER" (在数据库 "master" 上)
正在启动实例 "MASTER"...
ORACLE 例程已经启动。
数据库装载完毕。
切换成功, 新的主数据库为 "slave"
DGMGRL> show configuration
配置 - dgorcldb
保护模式: MaxPerformance
数据库:
slave - 主数据库
orcl - 物理备用数据库
快速启动故障转移: DISABLED
配置状态:
SUCCESS
DGMGRL>
3. 主备测试
# 主库上,主备已经切换了备库上了。
SQL> conn / as sysdba;
已连接。
SQL> select open_mode,database_role,db_unique_name from v$database;
OPEN_MODE DATABASE_ROLE DB_UNIQUE_NAME
-------------------- ---------------- ------------------------------
MOUNTED PHYSICAL STANDBY orcl
SQL>
备库上,备库上已经切换成了主库了。
SQL> conn / as sysdba;
已连接。
SQL> select open_mode,database_role,db_unique_name from v$database;
OPEN_MODE DATABASE_ROLE DB_UNIQUE_NAME
-------------------- ---------------- ------------------------------
READ WRITE PRIMARY slave
SQL>
SQL> conn abc/abc
已连接。
SQL> select * from abc;
ID NAME
---------- ----------
3 ddd
4 eee
2 ccc
0 aaa
1 bbb
# 要切换后的主库上新插入一条记录。
SQL> insert into abc values ( 5 , 'new' );
已创建 1 行。
SQL> commit;
提交完成。
SQL> select * from abc;
ID NAME
---------- ----------
3 ddd
4 eee
5 new
2 ccc
0 aaa
1 bbb
已选择6行。
SQL>
4. 备库再切到主库(切回)
# 备库再切到主库
DGMGRL> switchover to orcl;
立即执行切换, 请稍候...
新的主数据库 "master" 正在打开...
查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/database/Oracle/
操作要求关闭实例 "SLAVE" (在数据库 "slave" 上)
正在关闭实例 "SLAVE"...
ORACLE 例程已经关闭。
操作要求启动实例 "SLAVE" (在数据库 "slave" 上)
正在启动实例 "SLAVE"...
ORACLE 例程已经启动。
数据库装载完毕。
切换成功, 新的主数据库为 "master"
DGMGRL> show configuration
配置 - dgorcldb
保护模式: MaxPerformance
数据库:
orcl - 主数据库
slave - 物理备用数据库
快速启动故障转移: DISABLED
配置状态:
SUCCESS
# 主库上SQL查看,主备已经切换了
SQL> conn / as sysdba;
已连接。
SQL> select open_mode,database_role,db_unique_name from v$database;
OPEN_MODE DATABASE_ROLE DB_UNIQUE_NAME
-------------------- ---------------- ------------------------------
READ WRITE PRIMARY orcl
SQL>
SQL> conn abc/abc
已连接。
SQL> select * from abc;
ID NAME
---------- ----------
3 ddd
4 eee
5 new
2 ccc
0 aaa
1 bbb
已选择6行。
SQL>
在主库上插入的记录也有了,实现了数据无损切换。
备库上SQL查看,备库上已经切回来了。
SQL> conn / as sysdba;
已连接。
SQL> conn / as sysdba;
已连接。
SQL> select open_mode,database_role,db_unique_name from v$database;
OPEN_MODE DATABASE_ROLE DB_UNIQUE_NAME
-------------------- ---------------- ------------------------------
MOUNTED PHYSICAL STANDBY slave
SQL>
本文出自 “koumm的linux技术博客” 博客,请务必保留此出处http://koumm.blog.51cto.com/703525/1275717