在rman備份之前,最好先改一下路徑,把rman的備份和控制文件的備份,放到同一個目錄
configure channel device type disk format '/opt/oracle/g5/rmanback/%U_%d';
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/opt/oracle/g5/rmanback/_%F';
然後:
su - oracle
cd /opt/oracle/
vi backup_db.sh,貼入如下代碼。3個參數用echo查一下。
#!/bin/bash
#set environment variables
ORACLE_SID=ORCL
ORACLE_BASE=/opt/oracle
ORACLE_HOME=/opt/oracle/product/12.2.0/dbhome
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_SID ORACLE_BASE ORACLE_HOME PATH
rman target / <<EOF
run{
backup database;
crosscheck backup;
crosscheck archivelog all;
delete expired backup;
delete noprompt archivelog all completed before 'sysdate-10';
delete noprompt obsolete;
}
EOF
順便說一下,直接在linux下面vi xxx.sh,不要從windows做好傳上去,會出現一些格式有誤的錯誤。
賦予777權限:chmod 777 backup_db.sh
用oracle去運行一下,看看權限對不對。
仍然用oracle去運行crontab -e,貼入
0 3 * * * /opt/oracle/backup_db.sh (每天3點)
*/10 * * * * /opt/oracle/backup_db.sh 每60分鐘即每小時執行一次 (是10還是60)
用root去執行:service crond restart,然後等着看備份集?正常。