完成 Data Guard 搭建與角色切換演練後,深入掌握高級管理功能對生產環境穩定運行至關重要。本文記錄核心管理場景實操與最佳實踐。
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
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
ALTER DATABASE OPEN;
-- 同樣自動進入 READ ONLY WITH APPLY
提示:無需顯式指定 READ ONLY 子句,Oracle 根據控制文件自動判斷。
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 邊應用,實現近實時同步,大幅提升報表查詢數據新鮮度。
ALTER DATABASE ENABLE/DISABLE THREAD (RAC 環境)STANDBY_FILE_MANAGEMENT 參數控制)
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 零干預。
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 刪除物理文件
| 存儲類型 | 建議設置 | 理由 |
|---|---|---|
| 文件系統 + OMF | AUTO | 路徑自動解析,零運維 |
| ASM + OMF | AUTO | ASM 自動管理文件名與路徑 |
| 裸設備 / 非 OMF | 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 切換日志觸發同步驗證
ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT = MANUAL,同步完成後改回 AUTO。USING CURRENT LOGFILE) 是 11g+ 物理 Standby 分擔報表壓力的關鍵。STANDBY_FILE_MANAGEMENT=AUTO 配合 OMF/ASM 可實現 DDL 零運維同步。原文來源:黃杉 (mchdba) https://blog.itpub.net/26230597/viewspace-1432708/