crontab執行rman備份報錯問題解決
阿新 • • 發佈:2018-12-07
crontab總是無法執行成功,反覆實驗了N次解決。
總結教訓如下:
1.rman指令碼中的要設定oracle環境變數,要寫rman絕對路徑
[[email protected] rman_backup_oracle]# cat his_rman_back.sh
#!/bin/bash
#su - oracle
source /home/oracle/.bash_profile
export now=`date +%Y_%m_%d_%H:%M`
export ORACLE_SID=ZSQ
/home/oracle/app/oracle/product/12.2.0/dbhome_1/bin/rman target / log=/home/oracle/rman_backup_oracle/DB_Full_Backup_$now << EOF
RUN {
backup device type disk tag 'DBFULL' database;
backup device type disk tag 'DBFULL' archivelog all not backed up delete all input;
ALLOCATE CHANNEL CH1 DEVICE TYPE DISK;
ALLOCATE CHANNEL CH2 DEVICE TYPE DISK;
crosscheck backup;
delete noprompt expired backup;
report obsolete;
delete noprompt obsolete;
RELEASE CHANNEL CH1;
RELEASE CHANNEL CH2;
}
exit
EOF
2.rman指令碼的要有在oracle使用者下的執行許可權,這個很重要的。我自己就是犯了這個錯誤。
chmod a+x /home/oracle/rman_backup_oracle/his_rman_back.sh
3.如有必要檢查 crond程序,重啟crond.
一點一點從日誌上推問題。三板斧簡單而有效。