目标:在linux服务器上实现数据库自动备份,并且上传到远程服务器上。
准备条件:oracle备份命令,fpt上传命令
步骤:1、创建一个.sh文件,这里命名为db_backup.sh。然后在sh文件中输入
#!\bin\sh
source ~/.bash_profile
time=`date +%Y_%m_%d`
expdp username/password directory=backupfile dumpfile=$time.dmpdp logfile=$time.log schemas=dbuser exclude=table_statistics
zip -m /home/oracle/$time.zip $time.dmpdp $time.log
ftp -n <<EOF
open 10.33.180.22 10021
user ftpuser 123456
binary
prompt
put $time.zip
close
bye
EOF
注意点:source ~/.bash_profile的作用是引入环境变量,这样expdp命令才能识别
schemas是指定导出哪些用户的数据
上传zip文件时要指定以binary的方式上传,否则文件会损坏。
2、建立linux计划,定时执行db_backup.sh文件
crontab -e
进入定时任务编写的文本中,输入
30 03 * * * sh /home/oracle/db_backup.sh
每天3:30执行db_backup.sh文件
service crond restart
进入root用户,输入上面口令重启计划任务,使新的计划生效。
注意点:计划执行的时间规律可以有多种方式,i具体写法可以网上参考,这里不再赘述。