message file rman.msb not found
verify that Oracle_home is set properly
根因:cron 守護程序不載入使用者環境變數,導致 RMAN 無法定位 $ORACLE_HOME。
解法:在 Shell 腳本中顯式匯出 ORACLE_HOME、ORACLE_SID、LANG 等關鍵環境變數。
standard in must be a tty
根因:cron 中直接使用 su - oracle -c "..." 或管道導致標準輸入重導向異常。
解法:將 su 切換操作移入 Shell 腳本內部,cron 僅呼叫腳本絕對路徑。
rman-00556: could not open cmdfile "backup_ar.rcv"
根因:RMAN 不支援相對路徑(含 ./),必須在 cmdfile 參數中指定絕對路徑。
# 每日 12:00、18:00 執行歸檔日誌全量備份
0 12,18 * * * /home/oracle/bak_sh/backup_ar.sh
backup_ar.sh)#!/bin/bash
export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
export ORACLE_SID=test
export LANG=en_US.UTF-8
$ORACLE_HOME/bin/rman cmdfile=/home/oracle/bak_sh/backup_ar.rcv
backup_ar.rcv)CONNECT TARGET /
CONNECT CATALOG rman/rman@catalog_db
RUN {
ALLOCATE CHANNEL d1 DEVICE TYPE DISK;
SQL 'ALTER SYSTEM ARCHIVE LOG CURRENT';
BACKUP ARCHIVELOG ALL DELETE INPUT FORMAT '/backup/arch_%d_%s_%p_%t';
RELEASE CHANNEL d1;
}
DELETE INPUT 自動清理已備份歸檔,防止磁碟爆滿CATALOG 連線,集中管理多資料庫備份元數據