環境信息
- Oracle 版本:9.0.1.1
- 操作系統:Solaris 5.10
- 主庫:192.1.1.44 | 備庫:192.1.1.45
搭建步驟
第一階段:主庫操作
- 創建 Oracle 用戶/組、環境變量、內核參數調優、安裝數據庫。
- 確認主庫處於 歸檔模式。
- 創建備庫控制文件:
ALTER DATABASE CREATE STANDBY CONTROLFILE AS '$ORACLE_HOME/dbs/standbycontrol.ctl';
- 關閉主庫、停止監聽。
第二階段:備庫準備
- 同主庫創建用戶/組、目錄結構。
- 拷貝主庫所有文件(數據文件、重做日志、備庫控制文件),排除控制文件。將
standbycontrol.ctl 重命名為備庫 control_files 參數指定的名稱。
第三階段:主庫網絡與歸檔配置
- 啟動主庫與監聽。
- 配置
tnsnames.ora 添加 standby_db 服務名指向備庫。
- 設置歸檔雙向傳輸參數:
log_archive_format='arc%t_%s.arc'
log_archive_start=true
# 本地歸檔
log_archive_dest_1='location=/disk2/aaa/arch'
log_archive_dest_state_1=enable
# 遠程傳輸到備庫 (MANDATORY + REOPEN)
log_archive_dest_2='service=standby_db mandatory reopen=30'
log_archive_dest_state_2=enable
log_archive_min_succeed_dest=1
- 重啟主庫使參數生效。
第四階段:備庫監聽與啟動
- 配置
listener.ora 監聽 SID_LIST_standby,包含 GLOBAL_DBNAME=aaa、SID_NAME=ASRS。
- 創建歸檔目錄匹配參數。
- 啟動監聽。
- 掛載並啟動托管恢復:
STARTUP NOMOUNT;
ALTER DATABASE MOUNT STANDBY DATABASE;
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
驗證測試
- 主庫建表、刪表、切換日志。
- 備庫取消恢復、以
READ ONLY 打開查詢,確認數據同步。
- 重新啟動托管恢復,遇到
ORA-01093 需殺掉只讀會話後繼續。
常見問題與解決 (FAQ)
| 問題 | 現象 | 解決 |
| ORA-16024 | 參數解析失敗 | 修正 log_archive_dest_1 語法,添加 location= 前綴 |
| Gap Sequence 錯誤 | 備庫警報日志報無 FAL Server | 重新備份主庫,確保備庫同樣處於歸檔模式 |
| 網絡故障導致 Hang | ALTER SYSTEM SWITCH LOGFILE 卡住 | 檢查 tnsnames.ora 指向正確;考慮改為 ASYNC 傳輸模式 |
| 主庫故障,啟用備庫為新主庫 | ACTIVATE STANDBY DATABASE 報錯 | 須先 SHUTDOWN IMMEDIATE → STARTUP NOMOUNT → MOUNT STANDBY → ACTIVATE → STARTUP |
| 主庫數據文件損壞,從備庫恢復 | 文件遺失報錯 | 備庫 FTP 文件 → 主庫 DATAFILE OFFLINE → RECOVER DATAFILE → ONLINE |
| 主庫結構變更 (加表空間/數據文件) | 備庫 MRP 進程終止報 ORA-01670 | 備庫執行 ALTER DATABASE CREATE DATAFILE '...' 後自動追趕 |
日常巡檢腳本
主庫: ARCHIVE LOG LIST; 確認當前日志序列。
備庫: SELECT SEQUENCE#, APPLIED FROM V$ARCHIVED_LOG; 確認最新序列已 APPLIED=YES。
啟停順序建議
建議先啟動備庫,再啟動主庫;關閉時先主後備。實測順序顛倒亦無大礙。
補充:Non-Data-Loss 模式
需配置 Redo Log 鏡像傳輸 (LGWR SYNC),若備庫寫入失敗主庫將 Hang,性能影響較大,高負載生產環境需權衡。
日志不連續手工修復
RECOVER AUTOMATIC STANDBY DATABASE;
-- 或
RECOVER STANDBY DATABASE UNTIL CANCEL;
- 上一篇文章: Windows 下 Oracle 10g EM 操作提示「用戶口令錯誤」的權限配置解決方案
- 下一篇文章: 修改主機名導致 Oracle 10g 服務全掛?一鍵重建 EM Repository 完美修復
Copyright ©
程式碼之家 All Rights Reserved