9204RAC到單例項的SWITCHOVER切換
以前做過9i DATA GUARD的SWITCHOVER,也做過10g的RAC環境到單例項的SWITCHOVER,但是9204上RAC環境到單例項DATA GUARD的SWITCHOVER還是第一次。
這個9204上的RAC環境到單例項的STANDBY環境是我前一段時間搭建的,RAC到單例項的DATA GUARD環境配置其實和普通的DATA GUARD環境區別不是很大。
而對於9204RAC環境到單例項的SWITCHOVER而言,和以往記錄的SWITCHOVER都有明顯的區別,因此簡單記錄一下步驟。
首先仍然是進行DATA GUARD的物理STANDBY切換前的常規檢查:
確認主庫和備庫間網路連線通暢;
確認沒有活動的會話連線在資料庫中;
PRIMARY資料庫處於開啟的狀態,STANDBY資料庫處於MOUNT狀態;
確保STANDBY資料庫處於ARCHIVELOG模式;
如果設定了REDO應用的延遲,那麼將這個設定去掉;
確保配置了主庫和從庫的初始化引數,使得切換完成後,DATA GUARD機制可以順利的執行。
對於RAC環境而言,還需要注意,需要關閉其他節點,在切換過程中僅保留一個例項。
登入節點2伺服器,關閉資料庫例項:
[oracle@db2 ~]$ sqlplus "/ as sysdba"
SQL*Plus: Release 9.2.0.4.0 - Production on 星期六 1月 15 09:58:10 2011
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
Connected to:
Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning, Real Application Clusters, OLAP and Oracle Data Mining options
JServer Release 9.2.0.4.0 - Production
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
下面登入節點1伺服器:
SQL> select count(*) from v$session;
COUNT(*)
----------
303
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 1545149056 bytes
Fixed Size 453248 bytes
Variable Size 704643072 bytes
Database Buffers 838860800 bytes
Redo Buffers 1191936 bytes
Database mounted.
Database opened.
SQL> select switchover_status from v$database;
SWITCHOVER_STATUS
------------------
SESSIONS ACTIVE
SQL> select count(*) from v$session where username is not null;
COUNT(*)
----------
12
SQL> select username, program from v$session where username is not null;
USERNAME PROGRAM
------------------------------ ------------------------------------------------
SYS sqlplus@db1 (TNS V1-V3)
SQL> select switchover_status from v$database;
SWITCHOVER_STATUS
------------------
TO STANDBY
由於資料庫中存在大量的會話,為了快速的關閉所有的會話選擇了關閉資料庫並重新啟動。
如果資料庫中除了當前會話外,還有其他的非系統的活動會話,資料庫的SWITCHOVER_STATUS列的值是SESSION_ACTIVE,而如果除了當前連線外,資料庫中已經沒有非系統活動會話,資料庫的SWITCHOVER_STATUS狀態會變為TO STANDBY,這說明主資料庫已經做好了SWITCHOVER到STANDBY資料庫的準備了。
SQL> alter database commit to switchover to physical standby;
Database altered.
SQL> shutdown immediate
ORA-01507: database not mounted
ORACLE instance shut down.
SQL> startup nomount
ORACLE instance started.
Total System Global Area 1545149056 bytes
Fixed Size 453248 bytes
Variable Size 704643072 bytes
Database Buffers 838860800 bytes
Redo Buffers 1191936 bytes
SQL> alter database mount standby database;
Database altered.
SQL> select switchover_status from v$database;
SWITCHOVER_STATUS
------------------
TO PRIMARY
執行主庫的SWITCHOVER切換操作,然後啟動到NOMOUNT狀態,利用ALTER DATABAE MOUNT STANDBY DATABASE命令載入資料庫,檢查資料庫的切換狀態,這時資料庫已經處於STANDBY角色,因此切換狀態變為TO PRIMARY。
下面登入原STANDBY資料庫:
執行切換到主庫的操作:
SQL> 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
ORA-01507: database not mounted
ORACLE instance shut down.
SQL> conn / as sysdba
Connected to an idle instance.
SQL> shutdown abort
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 1545149056 bytes
Fixed Size 453248 bytes
Variable Size 704643072 bytes
Database Buffers 838860800 bytes
Redo Buffers 1191936 bytes
Database mounted.
Database opened.
SQL> select open_mode, database_role, switchover_status from v$database;
OPEN_MODE DATABASE_ROLE SWITCHOVER_STATUS
---------- ---------------- ------------------
READ WRITE PRIMARY TO STANDBY
檢查資料庫的切換狀態,資料庫狀態為TO PRIMARY,說明STANDBY資料庫做好了切換到主庫的準備,如果這裡的狀態是SWITCHOVER PENDING,說明備庫接收到了SWITCHOVER切換的命令,但是還沒有作出處理,這多半是由於資料庫沒有處於應用日誌的狀態,執行ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION語句後,正常情況下,資料庫將會處於TO PRIMARY狀態。
執行SWITCHOVER到主庫的操作,然後需要關閉資料庫。這和10g有所區別,在10g中這時主庫就可以直接開啟了,但是9i必須關閉資料庫然後重新啟動。之所以先shutdown immediate然後shutdown abort,是因為9i這種狀態下可能例項無法完全關閉,當然也可以直接使用shutdown abort來關閉例項。
重啟後資料庫處於PRIMARY角色。
下面登入原來的主庫也就是新的備庫,將資料庫恢復開啟:
SQL> alter database recover managed standby database disconnect from session;
Database altered.
最後檢查DATA GUARD應用日誌是否正常,檢查alert檔案是否存在錯誤,確認SWITCHOVER操作後,DATA GUARD環境工作正常。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-684590/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- RAC+單例項DG的切換單例
- js圖片切換例項JS
- DataGuard---->物理StandBy的角色切換之switchover
- openGauss主備切換之switchover與failoverAI
- 【DG】Data Guard主備庫Switchover切換
- Oracle 11g dg switchover切換操作流程Oracle
- 純CSS的導航欄Tab切換例項CSS
- Oracle DataGuard 主備切換 (switchover) oracle11gOracle
- MySQL高可用之MHA切換測試(switchover & failover)MySqlAI
- vue移動端路由切換完整例項Vue路由
- rac恢復到單例項單例
- oracle 19c使用dgmgrl來執行switchover和failover切換OracleAI
- ABP VNext從單體切換到微服務微服務
- 【dgmgrl】使用dgmgrl做switchover切換報錯ORA-16501, ORA-16625等
- 路由交換例項路由
- window10選單介面切換到window7的方法
- Oracle 11g RAC到單例項OGG同步Oracle單例
- 178-ABP VNext從單體切換到微服務微服務
- 將RAC軟體轉換為單例項軟體單例
- RVM切換到rbenv[MacOS]Mac
- 如何例項化不同頁面物件對應不同的 iframe,而不用頻繁切換物件
- idea 2024.2切換到舊版的UIIdeaUI
- git切換到指定目錄Git
- 如何將獨立例項轉換成叢集例項EU
- 簡單實用的JDK版本切換JDK
- 基於單機的DataGuard切換文件
- 含有replication環境的sqlserver切換到standbySQLServer
- Redis單例項安裝Redis單例
- PHP 完整表單例項PHP單例
- Swift 中單例模式的替換Swift單例模式
- 如何從 Docker Desktop 切換到 ColimaDocker
- 從NodeJS切換到Ruby on Rails - nikodunkNodeJSAI
- JavaScript左右滑動切換的選項卡詳解JavaScript
- 流暢切換的彩色選單欄:ColorfulNavigationBarNavigation
- Java的Socket通訊簡單例項Java單例
- 實現點選"換一批"來切換內容,flutter之CustomScrollView【flutter20個例項之八】FlutterView
- C++學習隨筆——簡單的單例設計模式例項C++單例設計模式
- 耐克公司是如何將API切換到GraphQL的?API
- Selenium多表單切換switch_to.frame