建立sh腳本數據庫
[oracle@localhost backup]$ vi logicbackup.sh
添加腳本內容oracle
#!/bin/sh # ################################################################## # Powered by Ironfo # ################################################################## # Oracle Environment settings ORACLE_BASE=/usr/local/oracle; export ORACLE_BASE ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; export ORACLE_HOME PATH=$ORACLE_HOME/bin:/usr/local/bin:/usr/ccs/bin:$PATH:/usr/sbin export PATH CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/product/jlib ; export CLASSPATH backup_dir=$ORACLE_BASE/admin/orcl/dpdump #能夠建立數據泵目錄directory,這裏指定默認的目錄 #SQL>CREATE DIRECTORY expnc_dd as '/u01/oradata/dump_backup_dir'; #SQL>grant read,write on directory dump_backup_dir to user; DMP_FILE=PH_$(date +%Y%m%d_%H%M%S).dmp LOG_FILE=PH_$(date +%Y%m%d_%H%M%S).log # # Let's start with an export of the database expdp user/pwd@orcl schemas=schema_name DUMPFILE=$DMP_FILE logfile=$LOG_FILE compression=all; #expdp user/pwd@orcl schemas=schema_name DIRECTORY=expnc_dd DUMPFILE=$DMP_FILE logfile=$LOG_FILE compression=all parallel=3; # 這裏的2個說明,用戶名和密碼換成本身的,我這裏是備份表空間。 # parallel 這個參數是控制並行度的,默認是1,但對於數據庫比較大的時候,能夠設置parallel,這樣能夠較少備份的 #時間,可是設置並行會耗CPU 資源,若是CPU 資源比較緊張的話,就不要設了。 # # Just to be safe (with space), we'll compress the export file # 壓縮dmp 文件,較少對空間的佔用 #compress *.dmp # # Let's delete the backups and logs that are more than 1 days old # 刪除2天前PH_開頭的dmp文件 # cd /app/backup find $backup_dir -mtime +2 -name "PH_*" -exec rm -f {} \; # That's all
:wq 保存並退出app
設置權限spa
[oracle@localhost ~]$ chmod 777 ./logicbackup.sh
添加定時任務rest
[oracle@localhost ~]$ crontab -e #天天20:00執行備份 錯誤信息將輸出到 tmp/expdp.log 文件中 0 20 * * * /app/backup/logicbackup.sh > /app/backup/expdp.log 2>&1
重啓crond(不重啓也行)code
#service crond restart
查看任務blog
[oracle@localhost ~]$ crontab -l * */6 * * * /home/oracle/logicbackup.sh > /tmp/expdp.log 2>&1 [oracle@localhost ~]$
crontab -r 刪除定時任務
crontab 前面5個*參數的意義:
0~59 表示分
1~23 表示小時
1~31 表示日
1~12 表示月份
0~6 表示星期(其中0表示星期日)crontab