三大高可用技術互補:
本文實作:兩節點 RAC 主庫(ASM 儲存)建立單實例物理備庫(本地磁碟)。
| 屬性 | Primary (RAC) | Standby |
|---|---|---|
| DB_UNIQUE_NAME | JSsdb | JSsstd |
| IP | 192.168.10.11 / 192.168.10.12 | 192.168.10.101 |
| 版本 | 10.2.0.4 | 10.2.0.4 |
| 儲存 | ASM | 本地磁碟 |
$ORACLE_BASE/admin/JSsstd/ 下建立 adump、bdump、cdump、udump、pfile 等 trace 目錄。listener.ora、tnsnames.ora,確保 tnsping JSsdb、tnsping JSsstd 雙向成功。關鍵:SERVICE_NAME 需與 DB_UNIQUE_NAME 一致。SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE FORCE LOGGING;
SQL> ALTER DATABASE OPEN;
SELECT name FROM v$datafile;
SELECT name FROM v$tempfile;
SELECT member FROM v$logfile;
-- 1. 開啟 RMAN 熱備份
RMAN> BACKUP DATABASE PLUS ARCHIVELOG;
-- 2. 建立 Standby 控制檔
SQL> ALTER DATABASE CREATE STANDBY CONTROLFILE AS '/tmp/stby_control.ctl';
-- 3. 建立參數檔(PFILE)供備庫啟動
SQL> CREATE PFILE='/tmp/initJSsstd.ora' FROM SPFILE;
使用 scp 或 rsync 將下列檔案傳至 Standby 對應路徑:
stby_control.ctl → $ORACLE_HOME/dbs/initJSsstd.ora → 修改後另存為 $ORACLE_HOME/dbs/initJSsstd.oraorapwJSsdb → 重命名為 orapwJSsstd*.db_unique_name=JSsstd
*.log_archive_config='DG_CONFIG=(JSsdb,JSsstd)'
*.log_archive_dest_1='LOCATION=/u01/app/oracle/arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=JSsstd'
*.log_archive_dest_2='SERVICE=JSsdb ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=JSsdb'
*.fal_server=JSsdb
*.fal_client=JSsstd
*.standby_file_management=AUTO
*.db_file_name_convert='+ASMDISK1/JSsdb/','/u01/app/oracle/oradata/JSsstd/'
*.log_file_name_convert='+ASMDISK1/JSsdb/','/u01/app/oracle/oradata/JSsstd/'
*.remote_login_passwordfile=EXCLUSIVE
SQL> STARTUP NOMOUNT PFILE='/u01/app/oracle/dbs/initJSsstd.ora';
SQL> ALTER DATABASE MOUNT STANDBY DATABASE;
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE
USING CURRENT LOGFILE DISCONNECT FROM SESSION;
-- 主庫
SQL> ALTER SYSTEM SWITCH LOGFILE;
SQL> SELECT sequence#, applied FROM v$archived_log ORDER BY 1 DESC;
-- 備庫
SQL> SELECT sequence#, applied FROM v$archived_log ORDER BY 1 DESC;
-- APPLIED 欄位顯示 YES 表示同步正常
db_file_name_convert、log_file_name_convert 必須精確對應 ASM 與檔案系統路徑前綴,否則資料檔/日誌檔無法自動建立。SYS 遠端登入失敗導致 FAL (Fetch Archive Log) 機制失效。ALTER DATABASE OPEN READ ONLY 並配合 ACTIVE_STANDBY 授權(11g+)。V$ARCHIVE_GAP 確認無缺口。V$DATAGUARD_STATS 中 apply lag、transport lag。RAC + Data Guard 是企業級高可用架構的黃金組合。關鍵在於:網路互通為基、參數轉換為核、歸檔同步為命、演練驗證為保。建議將上述步驟封裝為標準化操作手冊(Runbook),納入變更管理流程。