目标
定时备份数据库并复制到另一台服务器
实现步骤:
1、在数据库服务器/home下增加一个bakdb.sh文件,并编辑内容,内容如下
#!/bin/sh
export ORACLE_BASE=/oradb
export ORACLE_HOME=$ORACLE_BASE/11.2.0.4
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
PATH=$PATH:$ORACLE_HOME/bin:/opt/bin:/bin:/usr/bin:/usr/local/bin:/usr/sbin:/usr/X11R6/bin:/usr/local/java/bin:.
export PATH
extdate=`date +"%Y_%m_%d"`
extdel=`date +"%Y_%m_%d" -d "a month ago"`
extsid='test'
extuser='user'
extpassword='password'
datapath='/backup'
#删除一个月前的备份文件
rm -f $datapath/*$extdel*
#执行备份操作
/oradb/11.2.0.4/bin/exp $extuser/$extpassword@orcl file=$datapath/$extsid-$extdate.dmp owner=test log=$datapath/$extsid-$extdate.log
#压缩备份文件
tar zcvf $datapath/$extsid-$extdate.tar.gz $datapath/$extsid-$extdate.dmp
rm -f $datapath/$extsid-$extdate.dmp
scp -r $datapath/$extsid-$extdate.tar.gz root@192.168.xxx.xxx:/bak/bakdb
2、给增加的bakdb.sh赋予755权限
chmod 755 baklgjt.sh
3、增加自动执行任务
crontab -e
增加一行
0 23 * * * /home/bakdb.sh
4、重启定时任务
service crond start //启动服务
service crond stop //关闭服务
service crond restart //重启服务
service crond reload //重新载入配置
5、配置scp无密码复制
请参考:https://blog.youkuaiyun.com/qq_39749620/article/details/123978841