Dataguard Physical Standy Switchover
什麼是switchover?
SQL> select status, gap_status from v$archive_dest_status where dest_id = 2;
STATUS GAP_STATUS
--------- ------------------------
VALID NO GAP
SQL> select status, gap_status from v$archive_dest_status where dest_id = 2;
STATUS GAP_STATUS
--------- ------------------------
VALID NO GAP
SQL> alter database commit to switchover to physical standby with session shutdown;
Database altered.
SQL> shutdown abort;
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.
Total System Global Area 422670336 bytes
Fixed Size 1336960 bytes
Variable Size 335546752 bytes
Database Buffers 79691776 bytes
Redo Buffers 6094848 bytes
Database mounted.
SQL> select NAME,DB_UNIQUE_NAME,DATABASE_ROLE,SWITCHOVER_STATUS,PRIMARY_DB_UNIQUE_NAME,PROTECTION_MODE from v$database;
NAME DB_UNIQUE_NAME DATABASE_ROLE SWITCHOVER_STATUS PRIMARY_DB_UNIQUE_NAME PROTECTION_MODE
--------- ------------------------------ ---------------- -------------------- ------------------------------ --------------------
PHYPRIMA phystandby PRIMARY TO STANDBY phyprimary MAXIMUM AVAILABILITY
SQL> select status, gap_status from v$archive_dest_status where dest_id = 2;
STATUS GAP_STATUS
--------- ------------------------
VALID NO GAP
dataguard switchover指的就是將dataguard 主庫和備庫進行角色互換,同時保證沒有資料丟失。
實驗具體步驟:
資料庫版本:
Primary Database : Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
Physical Standby Database: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
1. 檢查是否有Log file gap(主庫和備庫操作)
SQL> select status, gap_status from v$archive_dest_status where dest_id = 2;
STATUS GAP_STATUS
--------- ------------------------
VALID NO GAP
SQL> select status, gap_status from v$archive_dest_status where dest_id = 2;
STATUS GAP_STATUS
--------- ------------------------
VALID NO GAP
2. 檢查備庫上有與主庫相匹配的臨時表空間檔案
主庫:
SQL> select file_name from dba_temp_files;
FILE_NAME
------------------------------------------------------------
/data/oracle/oradata/phyprimary/temp01.dbf
FILE_NAME
------------------------------------------------------------
/data/oracle/oradata/phyprimary/temp01.dbf
備庫:
SQL> select file_name from dba_temp_files;
FILE_NAME
--------------------------------------------------------------------------------
/data/oracle/oradata/phystandby/temp01.dbf
FILE_NAME
--------------------------------------------------------------------------------
/data/oracle/oradata/phystandby/temp01.dbf
3. 確保主庫應用到歸檔日誌沒有延遲(主庫操作)
SQL> select delay_mins from v$archive_dest where dest_id = 2;
DELAY_MINS
----------
0
DELAY_MINS
----------
0
如果存在,使用如下語句清除延遲
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE NODELAY;
4. 確保主庫和備庫的切換狀態
主庫:
SQL> select NAME,DB_UNIQUE_NAME,DATABASE_ROLE,SWITCHOVER_STATUS,PRIMARY_DB_UNIQUE_NAME,PROTECTION_MODE from v$database;
NAME DB_UNIQUE_NAME DATABASE_ROLE SWITCHOVER_STATUS PRIMARY_DB_UNIQUE_NAME PROTECTION_MODE
--------- ------------------------------ ---------------- -------------------- ------------------------------ --------------------
PHYPRIMA phyprimary PRIMARY TO STANDBY MAXIMUM AVAILABILITY
NAME DB_UNIQUE_NAME DATABASE_ROLE SWITCHOVER_STATUS PRIMARY_DB_UNIQUE_NAME PROTECTION_MODE
--------- ------------------------------ ---------------- -------------------- ------------------------------ --------------------
PHYPRIMA phyprimary PRIMARY TO STANDBY MAXIMUM AVAILABILITY
備庫:
SQL> set linesize 200
SQL> /
NAME DB_UNIQUE_NAME DATABASE_ROLE SWITCHOVER_STATUS PRIMARY_DB_UNIQUE_NAME PROTECTION_MODE
--------- ------------------------------ ---------------- -------------------- ------------------------------ --------------------
PHYPRIMA phystandby PHYSICAL STANDBY NOT ALLOWED phyprimary MAXIMUM AVAILABILITY
SQL> /
NAME DB_UNIQUE_NAME DATABASE_ROLE SWITCHOVER_STATUS PRIMARY_DB_UNIQUE_NAME PROTECTION_MODE
--------- ------------------------------ ---------------- -------------------- ------------------------------ --------------------
PHYPRIMA phystandby PHYSICAL STANDBY NOT ALLOWED phyprimary MAXIMUM AVAILABILITY
NOT ALLOWED:表示還沒有從主庫收到switch over的請求
5. 把主庫切換成備庫,並重啟主庫到mount
SQL> alter database commit to switchover to physical standby with session shutdown;
Database altered.
SQL> shutdown abort;
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.
Total System Global Area 422670336 bytes
Fixed Size 1336960 bytes
Variable Size 335546752 bytes
Database Buffers 79691776 bytes
Redo Buffers 6094848 bytes
Database mounted.
檢視日誌檔案,此時資料庫已經變成備庫狀態:
Successful mount of redo thread 1, with mount id 324279998
Physical Standby Database mounted
Physical Standby Database mounted
6. 檢視備庫的切換狀態
SQL> /
NAME DB_UNIQUE_NAME DATABASE_ROLE SWITCHOVER_STATUS PRIMARY_DB_UNIQUE_NAME PROTECTION_MODE
--------- ------------------------------ ---------------- -------------------- ------------------------------ --------------------
PHYPRIMA phystandby PHYSICAL STANDBY SESSIONS ACTIVE phyprimary MAXIMUM AVAILABILITY
NAME DB_UNIQUE_NAME DATABASE_ROLE SWITCHOVER_STATUS PRIMARY_DB_UNIQUE_NAME PROTECTION_MODE
--------- ------------------------------ ---------------- -------------------- ------------------------------ --------------------
PHYPRIMA phystandby PHYSICAL STANDBY SESSIONS ACTIVE phyprimary MAXIMUM AVAILABILITY
由於SWITCHOVER_STATUS 狀態是SESSIONS ACTIVE,所以切換時要加上WITH SESSION SHUTDOWN
7. 切換備庫到主庫(備庫操作),並開啟新的主庫(原備庫)
SQL> alter database commit to switchover to primary with session shutdown;
Database altered.
Database altered.
SQL> alter database open;
Database altered.
Database altered.
8. 檢視當前主庫(原備庫)和備庫(原主庫)的狀態
當前主庫:
SQL> select NAME,DB_UNIQUE_NAME,DATABASE_ROLE,SWITCHOVER_STATUS,PRIMARY_DB_UNIQUE_NAME,PROTECTION_MODE from v$database;
NAME DB_UNIQUE_NAME DATABASE_ROLE SWITCHOVER_STATUS PRIMARY_DB_UNIQUE_NAME PROTECTION_MODE
--------- ------------------------------ ---------------- -------------------- ------------------------------ --------------------
PHYPRIMA phystandby PRIMARY TO STANDBY phyprimary MAXIMUM AVAILABILITY
當前備庫:
SQL> select NAME,DB_UNIQUE_NAME,DATABASE_ROLE,SWITCHOVER_STATUS,PRIMARY_DB_UNIQUE_NAME,PROTECTION_MODE from v$database;
NAME DB_UNIQUE_NAME DATABASE_ROLE SWITCHOVER_STATUS PRIMARY_DB_UNIQUE_NAME PROTECTION_MODE
--------- ------------------------------ ---------------- -------------------- ------------------------------ --------------------
PHYPRIMA phyprimary PHYSICAL STANDBY RECOVERY NEEDED phystandby MAXIMUM AVAILABILITY
NAME DB_UNIQUE_NAME DATABASE_ROLE SWITCHOVER_STATUS PRIMARY_DB_UNIQUE_NAME PROTECTION_MODE
--------- ------------------------------ ---------------- -------------------- ------------------------------ --------------------
PHYPRIMA phyprimary PHYSICAL STANDBY RECOVERY NEEDED phystandby MAXIMUM AVAILABILITY
9. 最後一步,在新備庫應用Redo log
SQL> alter database recover managed standby database using current logfile disconnect from session;
Database altered.
10. 驗證切換是否成功
新主庫:
SQL> select status, gap_status from v$archive_dest_status where dest_id = 2;
STATUS GAP_STATUS
--------- ------------------------
VALID NO GAP
SQL> !date
Thu Aug 7 19:19:35 PDT 2014
SQL> alter system switch logfile;
System altered.
SQL> /
System altered.
Thu Aug 7 19:19:35 PDT 2014
SQL> alter system switch logfile;
System altered.
SQL> /
System altered.
SQL> SELECT SEQUENCE#, to_char(FIRST_TIME,'YYYY-MM-DD HH24:mi:ss'), to_char(NEXT_TIME,'YYYY-MM-DD HH24:mi:ss'),applied
2 FROM V$ARCHIVED_LOG ORDER BY SEQUENCE# desc;
SEQUENCE# TO_CHAR(FIRST_TIME, TO_CHAR(NEXT_TIME,' APPLIED
---------- ------------------- ------------------- ---------
40 2014-08-07 19:19:41 2014-08-07 19:19:42 NO
40 2014-08-07 19:19:41 2014-08-07 19:19:42 YES
2 FROM V$ARCHIVED_LOG ORDER BY SEQUENCE# desc;
SEQUENCE# TO_CHAR(FIRST_TIME, TO_CHAR(NEXT_TIME,' APPLIED
---------- ------------------- ------------------- ---------
40 2014-08-07 19:19:41 2014-08-07 19:19:42 NO
40 2014-08-07 19:19:41 2014-08-07 19:19:42 YES
新備庫:
SQL> !date
Thu Aug 7 19:21:42 PDT 2014
SQL> SELECT SEQUENCE#, to_char(FIRST_TIME,'YYYY-MM-DD HH24:mi:ss'), to_char(NEXT_TIME,'YYYY-MM-DD HH24:mi:ss'),applied
2 FROM V$ARCHIVED_LOG ORDER BY SEQUENCE# desc;
SEQUENCE# TO_CHAR(FIRST_TIME, TO_CHAR(NEXT_TIME,' APPLIED
---------- ------------------- ------------------- ---------
40 2014-08-07 19:19:41 2014-08-07 19:19:42 YES
39 2014-08-07 19:12:01 2014-08-07 19:19:41 YES
Thu Aug 7 19:21:42 PDT 2014
SQL> SELECT SEQUENCE#, to_char(FIRST_TIME,'YYYY-MM-DD HH24:mi:ss'), to_char(NEXT_TIME,'YYYY-MM-DD HH24:mi:ss'),applied
2 FROM V$ARCHIVED_LOG ORDER BY SEQUENCE# desc;
SEQUENCE# TO_CHAR(FIRST_TIME, TO_CHAR(NEXT_TIME,' APPLIED
---------- ------------------- ------------------- ---------
40 2014-08-07 19:19:41 2014-08-07 19:19:42 YES
39 2014-08-07 19:12:01 2014-08-07 19:19:41 YES
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28719055/viewspace-1247683/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- DataGuard:Physical Standby Switchover
- DATAGUARD PHYSICAL STANDY下EXPDP資料
- 【DataGuard】Oracle 11g physical standby switchoverOracle
- DataGuard SwitchOver
- 配置Oracle physical DataGuardOracle
- dataguard角色轉換—switchover
- 10g_dataguard_switchover
- DataGuard:Logical Standby Switchover
- DataGuard:Physical Standby FailoverAI
- Physical Standby Switchover_status Showing Not Allowed
- Performing a Switchover to a Physical Standby Database and failoverORMDatabaseAI
- Dataguard物理Standby Switchover 角色轉換
- oracle dataguard 進行switchover測試Oracle
- Oracle 11.2.0.4 physical dataguard和snapshot dataguard切換Oracle
- Physical Standby Switchover_status Showing Not Allowed._1392763.1
- Oracle DataGuard switchover切換一例Oracle
- 【DATAGUARD】物理dg的switchover切換(五)
- dataguard switchover & failover steps (rac)AI
- rac庫與單機physical standby 之間的switchover
- oracle11g dataguard完全手冊--switchoverOracle
- Oracle 11g Active Dataguard Switchover實驗Oracle
- 【DataGuard】Oracle 11g DataGuard 角色轉換(一)物理備庫SwitchoverOracle
- Physical Standby Switchover_status Showing Not Allowed. (Doc ID 1392763.1)
- ORACLE10g DataGuard 配置Physical Standby DatabaseOracleDatabase
- 關於建立DataGuard Physical Standby資料庫資料庫
- DataGuard---->物理StandBy的角色切換之switchover
- dataguard主備switchover互切實驗及理解
- dataguard switchover的自動化指令碼實現指令碼
- Oracle DataGuard 主備切換 (switchover) oracle11gOracle
- DATAGUARD在做SWITCHOVER切換時遇到問題總結
- 配置 Oracle 10g RAC primary + RAC physical standby dataguardOracle 10g
- DataGuard之switchover_status狀態not allowed解決過程
- oracle10g data guard role transition_physical_logical_switchover_failoverOracleAI
- Oracle 11g Data Guard (physical standby - active dataguard) [final]Oracle
- Configure Oracle Dataguard Primary-ASM to Physical-ASM薦OracleASM
- oracle 9i physical standby database 中v$database switchover_status的含義OracleDatabase
- 【RAC,DATAGUARD】Creating a physical standby from ASM (RAC ) primary之四ASM
- Oracle 10g DataGuard物理主備切換-switchover與failoverOracle 10gAI