生產環境中,NetBackup 通過 RMAN 備份 Oracle 數據庫時,數據文件備份正常,但歸檔日誌備份隨機失敗,報錯如下:
輸入歸檔日志線程=1 序列=16079 RECID=6038 STAMP=918782515
輸入歸檔日志線程=1 序列=16080 RECID=6040 STAMP=918782759
通道 ch03: 正在啟動段 1 於 2016-08-02 08:38:24
RMAN-03009: backup 命令 (ch02 通道上, 在 08/02/2016 08:53:29 上) 失敗
ORA-19506: 無法創建順序文件, 名稱 = "al_3497_1_918808704"
ORA-27028: skgfqcre: sbtbackup 返回錯誤
ORA-19511: 從介質管理器層接收到錯誤, 錯誤文本為:
VxBSACreateObject: Failed with error:
Server Status: Communication with the server has not been initiated or the server status has not been retrieved from the serve
通道 ch02 已禁用, 將在另一個通道上運行該通道上失敗的作業
核心原因:RMAN 與 NetBackup 媒體服務器之間的 SBT(Storage Backup API)通信鏈路中斷。具體表現為:
VxBSACreateObject 失敗Communication with the server has not been initiated 確認為 NBU 服務端未收到有效握手/心跳在 ALLOCATE CHANNEL 之後、BACKUP 之前插入 SEND 指令,顯式指定 NBU 服務端、客戶端、策略名,強化 SBT 會話建立:
RUN {
ALLOCATE CHANNEL ch01 TYPE 'SBT_TAPE' PARMS 'ENV=(NB_ORA_SERV=backupserver,NB_ORA_CLIENT=oracle_client,NB_ORA_POLICY=Oracle_Archive_Policy)';
ALLOCATE CHANNEL ch02 TYPE 'SBT_TAPE' PARMS 'ENV=(NB_ORA_SERV=backupserver,NB_ORA_CLIENT=oracle_client,NB_ORA_POLICY=Oracle_Archive_Policy)';
-- 關鍵:顯式發送 NBU 參數,確保 SBT 會話正確建立
SEND 'NB_ORA_SERV=backupserver, NB_ORA_CLIENT=oracle_client, NB_ORA_POLICY=Oracle_Archive_Policy';
BACKUP
FORMAT 'al_%s_%p_%t'
ARCHIVELOG ALL
DELETE INPUT;
RELEASE CHANNEL ch01;
RELEASE CHANNEL ch02;
}
參數說明:
NB_ORA_SERV:NetBackup Master Server 主機名(需 DNS 可解析)NB_ORA_CLIENT:Oracle 所在主機在 NBU 中的 Client Name(區分大小寫)NB_ORA_POLICY:NBU 中針對歸檔日誌的備份策略名| 措施 | 配置/操作 | 作用 |
|---|---|---|
| 增加通道數 | ALLOCATE CHANNEL ch01..ch04 | 並行備份縮短單通道持續時間,降低斷連概率 |
| 設置 RMAN 超時參數 | CONFIGURE CHANNEL DEVICE TYPE SBT_TAPE PARMS 'NB_ORA_SERV=...,NB_ORA_CLIENT=...,NB_ORA_POLICY=...'; | 持久化參數,避免腳本遺漏 |
| 網絡層 Keepalive | OS 層 net.ipv4.tcp_keepalive_time=600 tcp_keepalive_intvl=60 tcp_keepalive_probes=5 | 防止防火牆/NAT 斷開長連接 |
| NBU 客戶端心跳 | bp.conf 設置 CLIENT_READ_TIMEOUT = 3600 | 延長 NBU 客戶端等待數據超時時間 |
| 分離備份策略 | 數據文件(全量/增量)與歸檔日誌使用不同 Policy/Schedule | 故障域隔離,歸檔失敗不影響數據文件備份窗口 |
| 監控告警 | NBU Activity Monitor + 自腳本解析 RMAN 日誌關鍵字 | 首次失敗即告警,避免連續多日失敗導致歸檔堆積 |
BACKUP ARCHIVELOG ALL 完整跑完無報錯Successfultc qdisc add dev eth0 root netem loss 1%),驗證魯棒性此類 SBT 通信故障的本質是「長連接在無數據傳輸間隙被中間設備斷開」。通過 SEND 顯式傳遞 NBU 參數,配合 OS/網絡/NBU 多層 Keepalive 機制,可徹底解決歸檔日誌備份隨機失敗問題。建議將該 SEND 指令固化到所有 RMAN 備份腳本模板中,作為標準化運維規範。