RedHat Linux下使用Crontab實現Oracle 10g 定時備份(包含SFTP下載說明)。
這是說的定時備份是熱備份,也就是寫shell指令碼,這是的文法是oracle10g的,9i稍微修改(用exp文法)
定時備份後,可以用用戶端機器自動下載,用sftp用戶端,設定成自動下載,如沒有可以去網上找sftp的實現,java有開源的。
1.建立shell 備份指令檔
#!/bin/sh
#oracle command
expcmd="/opt/ora10/product/10g/bin/"
#bakup dir 這個備份目錄是用expdp 需要先建立,10g裡面有的,自己可以去查 create directory 命令
dbbakdir="dbbakdir"
#bakup file name
filebak1="$(date +%Y%m%d%H%M%S)dbbak1.dmp"
#bakup db log
dboplog="db1.log"
#table name 這裡是以備份某個表做的,其他自己可以參考expdp 文法
tablenames ="xxxtablename"
./expdp username/password@dbname directory=$dbbakdir dumpfile=$filebak1 logfile=$dboplog filesize=4G tables=$tablenames
這個儲存為/oralce/shelltest.sh ,賦執行許可權 chmod +x ,需要用oracle安裝使用者如useroracle,不能用root使用者。
2.添加crontab任務
用oracle安裝使用者如useroracle執行下面命令
#crontab -e
30 01 * * * /oralce/shelltest.sh
上面設定的是,每天淩晨1點半執行,具體文法,看 crontab 格式
設定之後,可以用crontab -l 命令查看