RAC和Dataguard環境下主備庫切換演練模板
如下文章是根據“做之前要想好,做的時候不要再想”的原則基礎上總結出來RAC+DataGuard切換模板。因為根據個人經驗,在切換過程中如果遇到什麼異常,有時緊張得腦子都不轉的感覺。因此有必要提前寫好自己熟悉一點實施方案。
具體環境如下:
資料庫版:Oracle 10g,資料庫名rac
節點1例項名: rac1 IP: 192.168.1.2
節點2例項名: rac2 IP: 192.168.1.3
災備中心備庫例項名:rac IP:192.168.1.6
[@more@]生產庫( 主庫)切換為備用庫
序號 | 操作步驟 | IP | 使用者名稱 | 服務或程式 |
1 | DATA GUARD環境是否正常 | 192.168.1.2 192.168.1.6 | oracle | 1. 在執行SWITCHOVER操作前,首先確認DATA GUARD環境工作是否正常。 1.1 常規檢查包括: a) 檢查主庫上V$ARCHIVE_DEST檢視 SELECT * FROM V$ARCHIVE_DEST; b) 檢查備庫上V$MANAGED_STANDBY檢視 SELECT * FROM V$MANAGED_STANDBY; c) 檢查主庫和備庫上的V$ARCHIVED_LOG檢視 SELECT * FROM V$ARCHIVED_LOG; d) 檢查主庫和備庫對應的alert告警日誌中是否存在錯誤。 2. 如果DATA GUARD環境正常,就需要進行SWITCHOVER切換前的常規檢查: 2.1確認主庫和備庫間網路連線通暢;(可以透過ping、ftp等系統工具檢查) 2.2確認沒有活動的會話連線在資料庫中;(登入資料庫查詢V$SESSION檢視,檢查是否存在USERNAME IS NULL的會話) SELECT COUNT(*) FROM V$SESSION WHERE USERNAME IS NOT NULL; 3. PRIMARY資料庫處於開啟的狀態,STANDBY資料庫處於MOUNT狀態;(檢查V$DATABASE檢視的OPEN_MODE) SELECT SWITCHOVER_STATUS FROM V$DATABASE; 4. 確保STANDBY資料庫處於ARCHIVELOG模式;(檢查V$DATABASE檢視的LOG_MODE) SELECT LOG_MODE FROM V$DATABASE; |
2 | 關閉節點資料庫節點例項2 | 192.168.1.3 | oracle | > srvctl stop instance -d rac -i rac2 |
3 | 登Primary資料庫節點1 切換預備操作 | 192.168.1.2 | oracle | 查詢會話切換狀態: SQL> select count(*) from v$session; SQL> select username, program from v$session where username is not null; SQL> select switchover_status from v$database; SWITCHOVER_STATUS ------------------ TO STANDBY |
4 | 登Primary資料庫節點1 進行切換 | 192.168.1.2 | oracle | 執行主庫的SWITCHOVER切換操作,然後關閉資料庫,啟動到NOMOUNT狀態。 SQL> alter database commit to switchover to physical standby with session shutdown; SQL> shutdown immediate SQL> startup nomount |
|
|
| oracle | SQL> alter database mount; SQL> select switchover_status from v$database; SWITCHOVER_STATUS ------------------ TO PRIMARY |
5 | 登入STANDBY資料庫 | 192.168.1.6 | oracle | QL> select open_mode, database_role, switchover_status from v$database; OPEN_MODE DATABASE_ROLE SWITCHOVER_STATUS ---------- ---------------- ----------------MOUNTED PHYSICAL STANDBY TO PRIMARY |
|
|
|
| SQL> alter database commit to switchover to primary; Database altered. |
|
|
|
| SQL> shutdown immediate |
|
|
|
| SQL> startup SQL> select open_mode, database_role, switchover_status from v$database; OPEN_MODE DATABASE_ROLE SWITCHOVER_STATUS ---------- ---------------- ----------------READ WRITE PRIMARY TO STANDBY |
6 | 登陸原Primary資料庫節點1 | 192.168.1.2 | oracle | SQL> alter database recover managed standby database disconnect from session; |
切回生產庫(主庫)
序號 | 操作步驟 | IP | 使用者名稱 | 服務或程式 |
1 | DATA GUARD環境是否正常 | 192.168.1.6 192.168.1.2 | oracle | 1. 在執行SWITCHOVER操作前,首先確認DATA GUARD環境工作是否正常。 1.1 常規檢查包括: a) 檢查主庫上V$ARCHIVE_DEST檢視 SELECT * FROM V$ARCHIVE_DEST; b) 檢查備庫上V$MANAGED_STANDBY檢視 SELECT * FROM V$MANAGED_STANDBY; c) 檢查主庫和備庫上的V$ARCHIVED_LOG檢視 SELECT * FROM V$ARCHIVED_LOG; d) 檢查主庫和備庫對應的alert告警日誌中是否存在錯誤。 2. 如果DATA GUARD環境正常,就需要進行SWITCHOVER切換前的常規檢查: 2.1確認主庫和備庫間網路連線通暢;(可以透過ping、ftp等系統工具檢查) 2.2確認沒有活動的會話連線在資料庫中;(登入資料庫查詢V$SESSION檢視,檢查是否存在USERNAME IS NULL的會話) SELECT COUNT(*) FROM V$SESSION WHERE USERNAME IS NOT NULL; 3. PRIMARY資料庫處於開啟的狀態,STANDBY資料庫處於MOUNT狀態;(檢查V$DATABASE檢視的OPEN_MODE) SELECT SWITCHOVER_STATUS FROM V$DATABASE; 4. 確保STANDBY資料庫處於ARCHIVELOG模式;(檢查V$DATABASE檢視的LOG_MODE) SELECT LOG_MODE FROM V$DATABASE; |
3 | 登Primary資料庫 切換預備操作 | 192.168.1.6 | oracle | 查詢會話切換狀態: SQL> select count(*) from v$session; SQL> select username, program from v$session where username is not null; SQL> select switchover_status from v$database; SWITCHOVER_STATUS ------------------ TO STANDBY |
4 | 登Primary資料庫 進行切換 | 192.168.1.6 | oracle | 執行主庫的SWITCHOVER切換操作,然後關閉資料庫,啟動到NOMOUNT狀態。 SQL> alter database commit to switchover to physical standby with session shutdown; SQL> shutdown immediate SQL> startup nomount |
|
|
| oracle | SQL> alter database mount; SQL> select switchover_status from v$database; SWITCHOVER_STATUS ------------------ TO PRIMARY |
5 | 登入STANDBY資料庫 | 192.168.1.2 | oracle | QL> select open_mode, database_role, switchover_status from v$database; OPEN_MODE DATABASE_ROLE SWITCHOVER_STATUS ---------- ---------------- ----------------MOUNTED PHYSICAL STANDBY TO PRIMARY |
|
|
|
| SQL> alter database commit to switchover to primary; Database altered. |
|
|
|
| SQL> shutdown immediate |
|
|
|
| SQL> startup SQL> select open_mode, database_role, switchover_status from v$database; OPEN_MODE DATABASE_ROLE SWITCHOVER_STATUS ---------- ---------------- ----------------READ WRITE PRIMARY TO STANDBY |
6 | 登入Primary資料庫 | 192.168.1.6 | oracle | SQL> alter database recover managed standby database disconnect from session; |
7 | 啟動資料庫節點例項2 | 192.168.1.3 | oracle | $ srvctl start instance -d rac -i rac2 |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/18841027/viewspace-1053767/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- DataGuard切換(主庫為Rac+備庫為Rac)
- DataGuard主備庫切換步驟
- Oracle10G Dataguard 多個備庫 - 主庫和物理備庫的切換Oracle
- Oracle10g RAC環境下DataGuard備庫搭建例項Oracle
- ORACLE 12C DATAGUARD環境搭建和主從切換Oracle
- Oracle10g RAC環境下DataGuard備庫搭建例項-eygleOracle
- 備庫的切換狀態為SWITCHOVER PENDING時進行dataguard主備庫角色切換
- RAC環境下dataguard的搭建
- Oracle DataGuard環境主備庫日誌組數和大小調整Oracle
- RAC環境STANDBY的SWITCHOVER切換
- Oracle10g RAC環境下 DataGuard備庫搭建例項-3-eygleOracle
- Oracle10g RAC環境下 DataGuard備庫搭建例項-2-eygleOracle
- Oracle10g RAC環境下 DataGuard備庫搭建例項-1-eygleOracle
- DataGaurd環境主庫崩潰後將備庫切為主庫
- Oracle DataGuard 主備切換 (switchover) oracle11gOracle
- Oracle10g RAC環境下 DataGuard備庫搭建例項-4-自己補Oracle
- Data Guard主備庫切換
- RAC環境STANDBY的FAILOVER切換AI
- RAC和Dataguard環境下修改sys使用者密碼密碼
- ORACLE RAC資料庫配置Dataguard環境(3)Oracle資料庫
- ORACLE RAC資料庫配置Dataguard環境(2)Oracle資料庫
- ORACLE RAC資料庫配置Dataguard環境(1)Oracle資料庫
- RAC環境的物理STANDBY的 SWITCHOVER切換
- RAC環境LOGICAL STANDBY的SWITCHOVER切換
- MySQL 主備庫切換記錄MySql
- 實戰dataguard主從切換
- 主庫RAC,備庫單節點ASM的dataguard搭建ASM
- oracle 之dataguard主庫系統崩潰之物理備庫切主庫Oracle
- 【DATAGUARD】Oracle Dataguard物理備庫切換最佳實踐(sqlplus)OracleSQL
- 【RAC】rac環境下的資料庫備份與還原資料庫
- RAC環境LOGICAL STANDBY的FAILOVER切換AI
- 【DG】Data Guard主備庫Switchover切換
- Oracle 10g DataGuard物理主備切換-switchover與failoverOracle 10gAI
- 【DataGuard】10g物理standby主備switchover方式切換詳述
- Oracle Data Guard主庫備庫角色切換(Switchovers)Oracle
- Mysql 5.6 Master和Slave 主備切換MySqlAST
- 【DG】Data Guard主備庫Failove切換AI
- 主備切換(failover)AI