Demo (9.2.0.1.0)Pstandby (同版本)ALTER SYSTEM SET LOG_ARCHIVE_START=TRUE SCOPE=SPFILE; SHUTDOWN IMMEDIATE; STARTUP MOUNT; ALTER DATABASE ARCHIVELOG; ALTER DATABASE OPEN; SHUTDOWN IMMEDIATE; -- 此處為備份做準備
ALTER DATABASE FORCE LOGGING; (確保所有操作產生 Redo)ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=D:\oracle\oradata\DEMO\Archive' SCOPE=BOTH;SELECT name FROM v$datafile; -- 輸出 11 個 .dbf 檔案路徑
SHUTDOWN IMMEDIATE; -- OS 層面複製所有 .dbf 至 Standby 目標目錄 (如 C:\DataGuard\Pstandby\DEMO\)
STARTUP MOUNT; ALTER DATABASE CREATE STANDBY CONTROLFILE AS 'C:\DataGuard\Pstandby\DEMO\DEMOSTANDBY.CTL'; -- **檔名不可與 Primary 控制檔重複**
CREATE PFILE='C:\DataGuard\Pstandby\DEMO\initpstandby.ora' FROM SPFILE;
*.control_files='C:\DataGuard\Pstandby\DEMO\DEMOSTANDBY.CTL' *.db_name='DEMO' -- 必須與 Primary 相同 *.instance_name='pstandby' -- Standby 實例名 *.log_archive_dest_1='location=d:\oracle\oradata\demo\archive' *.fal_server='DEMO' -- Fetch Archive Log 來源 *.fal_client='PSTANDBY' -- 自己服務名 *.standby_file_management='AUTO' -- 自動同步資料檔新增/刪除 *.db_file_name_convert='D:\ORACLE\ORADATA\DEMO\','C:\DataGuard\Pstandby\DEMO\' *.log_file_name_convert='D:\ORACLE\ORADATA\DEMO\','C:\DataGuard\Pstandby\DEMO\'
oradim -NEW -SID PSTANDBY -INTPWD-STARTMODE MANUAL -PFILE C:\DataGuard\Pstandby\DEMO\initpstandby.ora net start OracleServicePSTANDBY
STARTUP NOMOUNT PFILE='C:\DataGuard\Pstandby\DEMO\initpstandby.ora'; ALTER DATABASE MOUNT STANDBY DATABASE; RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION; -- 或即時應用 (9.2+) RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;
-- Primary SELECT max(sequence#) FROM v$archived_log; -- Standby SELECT max(sequence#) FROM v$archived_log WHERE applied='YES'; SELECT process, status, sequence# FROM v$managed_standby;
| 參數 | Primary | Standby | 說明 |
|---|---|---|---|
| DB_NAME | DEMO | DEMO | 必須相同 |
| CONTROL_FILES | Primary 路徑 | Standby 專用 .CTL | 不可共用 |
| LOG_ARCHIVE_DEST_1 | 本地歸檔路徑 | 本地歸檔路徑 | 各自管理 |
| FAL_SERVER | -- | DEMO | Standby 向 Primary 索取缺檔 |
| FAL_CLIENT | -- | PSTANDBY | Standby 服務名 |
| STANDBY_FILE_MANAGEMENT | AUTO | AUTO | 自動同步檔案結構變更 |
| DB_FILE_NAME_CONVERT | -- | Primary→Standby 路徑映射 | 資料檔路徑轉換 |
| LOG_FILE_NAME_CONVERT | -- | Primary→Standby 路徑映射 | Redo Log 路徑轉換 |
FAL_SERVER/CLIENT、網路連通、Primary 歸檔完整性DB_FILE_NAME_CONVERT 設定錯誤 → 修正並重啟 StandbySTANDBY_FILE_MANAGEMENT=AUTO 或手工建立 Standby 控制檔ALTER DATABASE OPEN READ ONLY → 需暫停 Managed Recovery,查詢完再啟動單機雙實例模擬 Data Guard,**僅適合功能驗證、參數熟悉、切換演練**,**不具備高可用性** (單點故障)。生產部署**必須**雙機/多機、共享存儲或獨立存儲、專網心跳、自動切換腳本 (Data Guard Broker/Observer)。
Data Guard 是 Oracle 高可用皇冠上的明珠。從單機手工搭建到生產級 Broker 管理,每一步都在鍛鍊 DBA 對 Redo 傳輸、應用、角色轉換、缺口解決的深度掌控力。