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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- RAC環境下建立物理DATAGUARD(1)
- RAC環境下建立物理DATAGUARD(2)
- ORACLE 12C DATAGUARD環境搭建和主從切換Oracle
- 【DATAGUARD】Oracle Dataguard物理備庫切換最佳實踐(sqlplus)OracleSQL
- Oracle DataGuard 主備切換 (switchover) oracle11gOracle
- window環境下安裝和切換兩個python環境Python
- Oracle 11.2.0.4 physical dataguard和snapshot dataguard切換Oracle
- 【DG】Data Guard主備庫Failove切換AI
- 【DG】Data Guard主備庫Switchover切換
- RAC和ASM環境下打patchASM
- Mac環境下WingIDE切換python版本MacIDEPython
- Mysql 5.6 Master和Slave 主備切換MySqlAST
- 生產環境故障處理演練-mysql資料庫主從恢復MySql資料庫
- 生產環境中mysql資料庫由主從關係切換為主主關係MySql資料庫
- DATAGUARD強行切換
- DATAGUARD失敗切換
- DM8 配置DMDSC主備環境(rac到單節點 )
- pycharm切換conda環境PyCharm
- Nacos 解決 laravel 多環境下配置切換Laravel
- 主從環境下升級(先升級從庫,不做切換,需要停業務,auto_position=1)
- mysql MGR搭建和模擬切換演練MySql
- jenkins動態切換環境Jenkins
- SQLServer2012映象主庫掛掉如何切換到映象備庫SQLServer
- Oracle 單機切換為主備Oracle
- oracle11g dataguard切換Oracle
- MySQL 5.7 主庫崩潰切備庫MySql
- openGauss主備切換之switchover與failoverAI
- 容災演練,一鍵切換,浙大二院實戰演練圓滿成功!
- 容災演練雙月報|溫州市醫院完成EMR資料庫一鍵切換和一鍵回切資料庫
- Spring Boot中自定義註解+AOP實現主備庫切換Spring Boot
- 【Linux】gnome桌面環境切換KDE PlasmaLinuxASM
- vue 構建環境切換指令碼Vue指令碼
- app 測試環境切換問題APP
- Homestead 環境中 PHP 版本快速切換PHP
- Oracle RAC 環境下的連線管理Oracle
- Oracle 11.2 DataGuard RAC To RAC搭建Oracle
- Windows 環境下,MySQL 的主從複製和主主複製WindowsMySql
- windows環境下,Mysql的主從複製和主主複製WindowsMySql
- 基於單機的DataGuard切換文件