ORACLE10G DG角色轉換
一個DG配置包含一個主資料庫和一個或多個備用資料庫,在主資料庫正常執行的情況下,不會發生角色轉換;當主資料庫需要維護時,需要在某一備用資料庫之間發生角色轉換,使其暫時接替主庫的功能對外提供服務。
角色轉換前的準備工作:
檢查各資料庫的初始化引數,主要確認對不同角色相關的初始化引數都進行了正確的配置
確保可能成為primary 資料庫的standby 伺服器已經處於archivelog 模式
確保standby 資料庫的臨時檔案存在並匹配primary 資料庫的臨時檔案
檢查主備資料庫的standby redo log檔案(最大保護和最高可用性模式)
確保standby 資料庫的RAC 例項只有一個處於open 狀態。(對於rac 結構的standby 資料庫,在角色轉換時只能有一個例項startup。其它rac例項必須統統shutdown,待角色轉換結束後再startup)
切換又分為:switchover和failover,前者是無損切換,不會丟失資料,而後者則有可能會丟失資料,並且切換後原primary 資料庫也不再是該data guard 配置的一部分了.針對不同standby(邏輯或物理)的處理方式也不盡相同。
物理Standby的switchover
1.檢查primary database 是否支援switchover操作,如下:
SQL> select name,SWITCHOVER_STATUS,open_mode,PROTECTION_MODE,DATABASE_ROLE from v$database;
NAME SWITCHOVER_STATUS OPEN_MODE PROTECTION_MODE DATABASE_ROLE
--------- -------------------- ---------- -------------------- ----------------
MYORCL SESSIONS ACTIVE READ WRITE MAXIMUM PERFORMANCE PRIMARY
批註:出現session active這種狀態不代表不能轉換,可能是某些會話正在連線。
刪除連線會話如下:
SQL> select sid,serial# from gv$session where username is not null;
SID SERIAL#
---------- ----------
159 3
SQL> alter system kill session '159,3';
alter system kill session '159,3'
*
ERROR at line 1:
ORA-00027: cannot kill current session --出現這種情況我們選擇本地連線,關閉此遠端會話終端
2.將primary轉換為standby角色,如下:
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN;
Database altered.
批註:使用WITH SESSION SHUTDOWN 子句,專門用來處理前步操作中有遠端使用者的連線,附加該子句,就會自動斷開仍在連線該例項的無關會話。
SQL> shutdown immediate --將原主資料庫重新啟動到mount狀態
SQL> startup mount;
SQL> select name,SWITCHOVER_STATUS,open_mode,PROTECTION_MODE,DATABASE_ROLE from v$database;
NAME SWITCHOVER_STATUS OPEN_MODE PROTECTION_MODE DATABASE_ROLE
--------- -------------------- ---------- -------------------- ----------------
MYORCL TO PRIMARY MOUNTED MAXIMUM PERFORMANCE PHYSICAL STANDBY
3.檢查備庫的switchover
SQL> select name,SWITCHOVER_STATUS,open_mode,PROTECTION_MODE,DATABASE_ROLE from v$database;
NAME SWITCHOVER_STATUS OPEN_MODE PROTECTION_MODE DATABASE_ROLE
--------- -------------------- ---------- -------------------- ----------------
MYORCL TO PRIMARY MOUNTED MAXIMUM PERFORMANCE PHYSICAL STANDBY
4.將備庫由standby轉換為primary ,如下:
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;
Database altered.
SQL> select name,SWITCHOVER_STATUS,open_mode,PROTECTION_MODE,DATABASE_ROLE from v$database;
NAME SWITCHOVER_STATUS OPEN_MODE PROTECTION_MODE DATABASE_ROLE
--------- -------------------- ---------- -------------------- ----------------
MYORCL TO STANDBY MOUNTED MAXIMUM PERFORMANCE PRIMARY
SQL> alter database open;
Database altered.
SQL> select instance_name,status from v$instance;
INSTANCE_NAME STATUS
---------------- ------------
orcl OPEN
SQL> select name,open_mode from v$database;
NAME OPEN_MODE
--------- ----------
MYORCL READ WRITE
5.驗證
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION; --開啟新的備庫redo應用
Database altered.
新主庫操作如下:
SQL> conn scott/tiger;
Connected.
SQL> select * from dept;
DEPTNO DNAME LOC
---------- -------------- -------------
50 ORACLE JAVA
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
SQL> insert into dept values (60,'dayong','xiaoru');
1 row created.
SQL> commit;
Commit complete.
SQL> conn / as sysdba
Connected.
SQL> alter system switch logfile;
System altered.
新備庫操作如下:
SQL> recover managed standby database cancel; --首先取消redo apply
Media recovery complete.
SQL> alter database open;
Database altered.
SQL> select * from scott.dept;
DEPTNO DNAME LOC
---------- -------------- -------------
50 ORACLE JAVA
60 dayong xiaoru
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
6 rows selected.
物理Standby的failover
1.檢查歸檔檔案是否連線
查詢待轉換standby 資料庫的V$ARCHIVE_GAP 檢視,確認歸檔檔案是否連線
SQL> SELECT THREAD#, LOW_SEQUENCE#, HIGH_SEQUENCE# FROM V$ARCHIVE_GAP;
no rows selected
批註:如果返回的有記錄,按照列出的記錄號複製對應的歸檔檔案到行轉換的standby伺服器,必須確保所有已生成的歸檔檔案均已存在於standby伺服器,不然可能會資料不一致造成轉換時報錯
檔案複製之後,透過下列命令將其加入資料字典:
SQL> ALTER DATABASE REGISTER PHYSICAL LOGFILE 'filespec1';
2.檢查歸檔檔案是否完整
在主、備資料庫執行如下語句,查詢檢視V$ARCHIVED_LOG
SQL> SELECT UNIQUE THREAD# AS THREAD, MAX(SEQUENCE#) OVER (PARTITION BY thread#) AS LAST from V$ARCHIVED_LOG;
THREAD LAST
---------- ----------
1 15
批註:該語句取得當前資料庫各執行緒已歸檔檔案最大序號,如果primary 與standby 最大序號不相同,必須將多出的序號對應的歸檔檔案複製到待轉換的standby 伺服器。不過既然是failover,有可能primary 資料庫此時已經無法開啟,甚至無法訪問.
3.啟動failover
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH FORCE; --備庫執行
Database altered.
批註:FORCE 關鍵字將會停止當前活動的RFS 程式,以便立刻執行failover。
4.切換物理角色standby為primary
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY; --備庫操作
Database altered.
5.啟動新的primary資料庫
SQL> shutdown immediate;
SQL> startup
SQL> select instance_name,status from v$instance;
INSTANCE_NAME STATUS
---------------- ------------
myorcl OPEN
SQL> select name,open_mode from v$database;
NAME OPEN_MODE
--------- ----------
MYORCL READ WRITE
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29634949/viewspace-1175278/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 物理DG角色轉換:switchover
- 物理DG角色轉換: failoverAI
- dataguard角色轉換—switchover
- 9 Role Transitions 角色轉換
- ORACLE DG之備庫角色Oracle
- Dataguard物理Standby Switchover 角色轉換
- Oracle DG資料庫狀態轉換Oracle資料庫
- ORACLE 11G Data Guard 角色轉換Oracle
- 邏輯DG主備庫轉換的failoverAI
- DG中主庫與備庫角色的交換
- DG的切換操作
- ORACLE10G DG中資料保護模式Oracle模式
- 物理dataguard 正常切換 角色轉換,switchover_status 狀態改變
- Oracle10g中SCN與TimeStamp轉換Oracle
- Oracle10g 預定義主要角色Oracle
- Data Guard broker系列之五:資料庫角色轉換資料庫
- oracle10g data guard(dg)__flashback_physical databaseOracleDatabase
- dg切換操作文件
- oracle dg切換操作示例Oracle
- 【DG】三大模式切換模式
- 2022 DBA 角色轉換 挑戰 與 機遇
- ORACLE10G DG配置下Physical Standby Database的管理OracleDatabase
- Oracle10g的行列轉換 wmsys.wm_concatOracle
- 使用Broker實現DG切換
- Oracle RAC DG手動切換Oracle
- DG_三大模式切換模式
- oracle 12c flex cluster專題 之 節點角色轉換OracleFlex
- 【DataGuard】Oracle 11g DataGuard 角色轉換(一)物理備庫SwitchoverOracle
- Oracle10g物理DG詳細配置方法及步驟Oracle
- oracle實驗記錄 (oracle 10G dataguard(7)physical dg轉換)Oracle
- oracle asm線上替換dg盤操作OracleASM
- 【DATAGUARD】物理dg的switchover切換(五)
- oracle10g 歸檔模式和非歸檔模式的轉換Oracle模式
- 【DG】Data Guard主備庫Switchover切換
- RAC+單例項DG的切換單例
- oracle DG VCS切換異常問題Oracle
- 【DATAGUARD】物理dg的failover切換(六)AI
- 物理Standby角色切換作業failoverAI