本文採用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