oracle之dataguard switch_availability

liqilin0429發表於2011-02-18

第一:檢視當前primary資料庫的保護模式 
SQL> select protection_mode ,protection_level from v$database;

PROTECTION_MODE      PROTECTION_LEVEL
-------------------- --------------------
MAXIMUM PERFORMANCE  MAXIMUM PERFORMANCE

第二:修改primary資料庫初始化引數 
SQL> alter system set log_archive_dest_2='service=STADATA_85 optional lgwr sync affirm valid_for=(online_logfiles,primary_role) db_unique_name=stadata';
System altered.

第三:重啟primary資料庫並設定新的資料保護模式  
SQL> shutdown immediate;
SQL> startup mount

SQL> alter database set standby database to maximize availability;
Database altered.

當修改完primary資料庫保護模式後。在主庫與物理備庫正常通訊的情況下。物理備庫的保護模式也跟隨主庫的保護模式

SQL> alter database open;
Database altered.

提示:maximize後可跟{protection | availability | performance},分別對應最大保護,最高可用性及最高效能。
down掉資料庫,重新啟動

第四:核查當前primary資料庫的保護模式  
SQL> select protection_mode,protection_level from v$database;
PROTECTION_MODE      PROTECTION_LEVEL
-------------------- --------------------
MAXIMUM AVAILABILITY MAXIMUM AVAILABILITY

 

第五:檢視當前standby資料庫的保護模式
SQL> select protection_mode ,protection_level from v$database;
PROTECTION_MODE      PROTECTION_LEVEL
-------------------- --------------------
MAXIMUM AVAILABILITY MAXIMUM AVAILABILITY


第六:關閉standby資料庫,再核查primary資料庫狀態
SQL> select protection_mode,protection_level from v$database;
PROTECTION_MODE      PROTECTION_LEVEL
-------------------- --------------------
MAXIMUM AVAILABILITY RESYNCHRONIZATION
standby資料庫shutdown後,primary資料庫保護級別切換為待同步。

第七:在物理備庫關閉的情況下,向主庫中的表內插入一條記錄是可以的。也可以提交。
當再次啟動物理備庫後,PROTECTION_LEVEL變為MAXIMUM AVAILABILITY

 

修改standby初始化引數設定(主要考慮角色切換,假如只測試的話本步可跳過)  
sql> alter system set log_archive_dest_2='service=primary optional lgwr sync affirm
  2  valid_for=(online_logfiles,primary_role) db_unique_name=primary';
系統已更改。

 

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/20976446/viewspace-687505/,如需轉載,請註明出處,否則將追究法律責任。

相關文章