[轉載]Oracle dg 常用視圖與運維護常用操作 DG調優

本文轉載於Oracle研究中心,網址:http://www.oracleplus.net/arch/1472.html

 

1、查看備庫狀態
SQL> select open_mode,database_role,db_unique_name from v$database;

2、將備庫置與應用日誌模式狀態
SQL> alter database recover managed standby database using current logfile disconnect from session;

3、取消備庫的自動恢復
SQL> alter database recover managed standby database cancel;

4、打開實時應用狀態模式
SQL> alter database recover managed standby database using current logfile disconnect;

4、查看日誌應用到哪個組
SQL> select max(SEQUENCE#) from v$archived_log where applied='YES'

5.主庫和備庫之間角色切換
5.1 主庫切換爲備庫
alter database commit to switchover to physical standby;
alter database commit to switchover to physical standby with session shutdown;-- 主庫有會話連接的時候
shutdown immediate
startup nomount;
alter database mount standby database;
alter database recover managed standby database disconnect from session;

5.2 從庫切換爲主庫
alter database commit to switchover to primary;
shutdown immediate;
startup
alter system switch logfile;

6.備庫自動使用主庫傳過來的日誌進行恢復
alter database recover automatic standby database;

有時standby中斷一段時間後起來,開啓應用日誌模式無法正常從歸檔日誌恢復,需要執行這個指令應用歸檔日誌等應用到最近的一個歸檔日誌後再開啓應用日誌模式

7.更改保護模式
alter database set standby database to maximize protection;
alter database set standby database to maximize availability;
alter database set standby database to maximize performancen;


恢復進度相關的 v$視圖應用示例
1、查看進程的活動狀況---v$managed_standby
SQL> select process,client_process,sequence#,status from v$managed_standby;

2、確認 redo 應用進度---v$archive_dest_status
SQL> select dest_name,archived_thread#,archived_seq#,applied_thread#,applied_seq#,db_unique_name from v$archive_dest_status where status='VALID';

3、檢查歸檔文件路徑及創建信息---v$archived_log
SQL> select name,creator,sequence#,applied,completion_time from v$archived_log;

4、查詢歸檔歷史---v$log_history
SQL> select first_time,first_change#,next_change#,sequence# from v$log_history;


再來點與 log 應用相關的 v$視圖應用示例:
5、查詢當前數據的基本信息---v$database 信息
SQL> select database_role,db_unique_name,open_mode,protection_mode,protection_level,switchover_status from v$database;

6、查詢 failover 後快速啓動的信息
SQL> select fs_failover_status,fs_failover_current_target,fs_failover_threshold,fs_failover_observer_present from v$database;

7、檢查應用模式(是否啓用了實時應用)---v$archive_dest_status
SQL> select recovery_mode from v$archive_dest_status where dest_id=2;

12、Data guard 事件---v$dataguard_status
SQL> select message from v$dataguard_status;

8、刪除和添加standby log
----------刪除日誌組
alter database drop standby logfile group 1;  
                                                                                                                                                                           
----------添加日誌組
alter database add standby logfile thread 1 group 1 ('/u02/oradata/center/standbylog/standby_log1_1','/u02/oradata/center/standbylog/standby_log1_2') size 4096M; 
   
----------刪除日誌組的一個成員
alter database drop logfile member '/u02/oradata/center/standbylog/standby_log1_2';    
                                                                                                               
---------添加日誌組成員
ALTER DATABASE ADD standby LOGFILE  MEMBER '/u02/oradata/center/standbylog/standby_log1_2' TO GROUP 1;                                                                          

**調整物理 standby log 應用頻率
調整應用頻率說白了就是調整 io 讀取能力,所以通常我們可以從以下幾個方面着手:
1、設置 recover 並行度
在介質恢復或 redo 應用期間,都需要讀取重做日誌文件,默認都是串行恢復,我們可以在執行 recover
的時候加上 parallel 子句來指定並行度,提高讀取和應用的性能,例如:
SQL> alter database recover managed standby database parallel 2 disconnect from session;
推薦 parallel 的值是#CPUs*2;
2、加快 redo 應用頻繁
設置初始化參數 DB_BLOCK_CHECKING=FALSE 能夠提高 2 倍左右的應用效率,該參數是驗證數據
塊是否有 效,對 於 standby 禁止驗證 基本上 還是可 以接受 的,另 外還有 一個關 聯初始 化參數
DB_BLOCK_CHECKSUM,建議該參數在 primary 和 standby 都設置爲 true。
3、設置 PARALLEL_EXECUTION_MESSAGE_SIZE
如果打開了並行恢復,適當提高初始化參數:PARALLEL_EXECUTION_MESSAGE_SIZE 的參數值,
比如 4096 也能提高大概 20%左右的性能,不過需要注意增大這個參數的參數值可能會佔用更多內存。
4、優化磁盤 I/O
在恢復期間最大瓶頸就是 I/O 讀寫,要緩解這個瓶頸,使用本地異步 I/O 並設置初始化參數
DISK_ASYNCH_IO=TRUE 會有所幫助。 DISK_ASYNCH_IO 參數控制到數據文件的磁盤 I/O 是否異步。 某
些情況下異步 I/O 能降低數據庫文件並行讀取,提高整個恢復時間。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章