首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 教學

Oracle 11g Data Guard 高級管理實戰:從只讀開啟到文件管理自動化

     編輯:Oracle 教學

Oracle 11g Data Guard 高級管理實戰:從只讀開啟到文件管理自動化

完成 Data Guard 搭建與角色切換演練後,深入掌握高級管理功能對生產環境穩定運行至關重要。本文記錄核心管理場景實操與最佳實踐。

一、物理 Standby 以 Read Only / Read Write 模式開啟

1. 從 Shutdown 狀態直接啟動


STARTUP;
-- Oracle 自動識別為物理 Standby,以 READ ONLY WITH APPLY 模式開啟
SELECT open_mode, database_role FROM v$database;
-- OPEN_MODE: READ ONLY WITH APPLY
-- DATABASE_ROLE: PHYSICAL STANDBY

2. 從 Redo Apply 狀態切換


ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
ALTER DATABASE OPEN;
-- 同樣自動進入 READ ONLY WITH APPLY

提示:無需顯式指定 READ ONLY 子句,Oracle 根據控制文件自動判斷。

3. 從 Open 狀態恢復 Redo Apply


ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
-- 或實時應用模式(11g+ 新特性)
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;

關鍵價值:USING CURRENT LOGFILE 允許 Standby 邊接收 Redo 邊應用,實現近實時同步,大幅提升報表查詢數據新鮮度。

二、Primary 端操作對 Standby 的影響

  • ALTER DATABASE ENABLE/DISABLE THREAD (RAC 環境)
  • 表空間狀態變更:READ WRITE ↔ READ ONLY、ONLINE ↔ OFFLINE
  • 創建/修改/刪除表空間或數據文件(受 STANDBY_FILE_MANAGEMENT 參數控制)

三、STANDBY_FILE_MANAGEMENT 參數深度實測

1. AUTO 模式(推薦文件系統場景)


SHOW PARAMETER standby_file_management;
-- VALUE: AUTO

添加表空間測試:


-- Primary
CREATE TABLESPACE mytest DATAFILE '/home/oradata/powerdes/mytest01.dbf' SIZE 20M AUTOEXTEND ON NEXT 50M;
ALTER SYSTEM SWITCH LOGFILE;
-- Standby 自動創建同名文件、同名表空間,無需人工干預

刪除表空間測試:


-- Primary
DROP TABLESPACE mytest INCLUDING CONTENTS AND DATAFILES;
ALTER SYSTEM SWITCH LOGFILE;
-- Standby 同步刪除表空間定義與數據文件

結論:AUTO 模式下 DDL 完全自動同步,DBA 零干預。

2. MANUAL 模式(裸設備/ASM 非 OMF 場景必用)


ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT = MANUAL SCOPE = BOTH;

添加表空間:Primary 創建後,Standby 僅在數據字典記錄表空間元數據,數據文件顯示為 UNNAMEDxxxxx,需人工干預:


-- Standby 手動創建同名文件並關聯
ALTER DATABASE CREATE DATAFILE 
  '/oracle/app/oracle/product/11.2.0/dbhome_1/dbs/UNNAMED00011' 
  AS '/home/oradata/powerdes/mytmp01.dbf';
-- 然後 OS 層複製文件或使用 RMAN 恢復

刪除表空間:Primary 執行 DROP ... INCLUDING DATAFILES 後,Standby 僅刪除字典元數據,物理文件殘留,需手動:


ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT; -- 觸發應用清理
-- 並 OS 刪除物理文件

3. 參數選擇建議

存儲類型建議設置理由
文件系統 + OMFAUTO路徑自動解析,零運維
ASM + OMFAUTOASM 自動管理文件名與路徑
裸設備 / 非 OMFMANUAL路徑不透明,必須人工映射

四、數據文件重命名(無論 AUTO/MANUAL 均需手動同步)


-- Primary
ALTER TABLESPACE plcrm OFFLINE;
-- OS: mv plcrm01.dbf plcrm01_rename.dbf
ALTER TABLESPACE plcrm RENAME DATAFILE 
  '/home/oradata/powerdes/plcrm01.dbf' TO '/home/oradata/powerdes/plcrm01_rename.dbf';
ALTER TABLESPACE plcrm ONLINE;
ALTER SYSTEM SWITCH LOGFILE;

-- Standby
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
SHUTDOWN IMMEDIATE;
-- OS: mv plcrm01.dbf plcrm01_rename.dbf
STARTUP MOUNT;
ALTER DATABASE RENAME FILE 
  '/home/oradata/powerdes/plcrm01.dbf' TO '/home/oradata/powerdes/plcrm01_rename.dbf';
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;
ALTER SYSTEM SWITCH LOGFILE; -- Primary 切換日志觸發同步驗證

五、Online Redo Log 組管理

  • Primary 增刪 Redo Log 組 不會自動同步 到 Standby。
  • Switchover 後新 Primary 的歸檔頻率取決於其 Redo Log 組數量與大小。
  • 鐵律:Standby Redo Log 組數 ≥ Primary Online Redo Log 組數 + 1。
  • 操作前務必 ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT = MANUAL,同步完成後改回 AUTO。

六、總結

  1. Real-time Apply (USING CURRENT LOGFILE) 是 11g+ 物理 Standby 分擔報表壓力的關鍵。
  2. STANDBY_FILE_MANAGEMENT=AUTO 配合 OMF/ASM 可實現 DDL 零運維同步。
  3. 重命名、Redo Log 組變更等結構性操作永遠需要雙端手動同步,納入變更管理流程。
  4. 定期演練 Switchover/Failover,驗證參數、文件、監聽、服務名等配置在雙向切換後均正常生效。

原文來源:黃杉 (mchdba) https://blog.itpub.net/26230597/viewspace-1432708/

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved