Linux下设置Oracle数据库定时备份
Linux(Oracle 12C)
- 使用vim命令在oracle的home下新建oracle_bak.sh
[root@ceshi oracle]# pwd /home/oracle [root@ceshi oracle]# vim oracle_bak.sh
##给脚本授权 [root@ceshi oracle]# chmod 755 /home/oracle/oracle_bak.sh
- 脚本脚本内容如下
#!/bin/bash #设置oracle环境变量 export ORACLE_BASE=/u01/app #根据实际修改 export ORACLE_HOME=/u01/app/product/12.2/db #根据实际修改 export ORACLE_SID=ORCL #根据实际修改 export PATH=$ORACLE_HOME/bin:$PATH:$HOME/.local/bin:$HOME/bin #不用修改 export BAKUPTIME=`date +%Y%m%d%H%M` #不用修改 #设置删除30天之前的备份文件 export DELETE_DAYS=30 #指定directory路径 export BAK_DIR=/u01/app/oradata #根据实际修改为泵目录路径 #用户 export BAK_USER=testbak #根据实际修改为实际用户 #指定directory名字 export DIRECTORE_NAME=dir #根据实际修改为对应泵目录名称 # 执行存量备份 cd ${BAK_DIR} # 不用修改 #修改[/u01/app/product/12.2/db/]路径为自己实际的路径 #修改[testbak/test12345]为实际的用户名与密码 #其余不用动 /u01/app/product/12.2/db/bin/expdp testbak/test12345 directory=${DIRECTORE_NAME} schemas=${BAK_USER} dumpfile=${BAK_USER}_%U_${BAKUPTIME}.dmp logfile=${BAK_USER}_${BAKUPTIME}.log parallel=4 cluster=no #压缩备份文件和日志文件 cd ${BAK_DIR} #不用修改 tar -zcvf ${BAK_USER}_${BAKUPTIME}.dmp.tar.gz ${BAK_USER}_*.dmp ${BAK_USER}_*.log #不用修改 #备份完成之后,删除当天备份文件和日志文件 find ${BAK_DIR}/* -type f -name "${BAK_USER}*.dmp" -exec rm -rf {} \; #删除备份文件 #不用修改 find ${BAK_DIR}/* -type f -name "${BAK_USER}*.log" -exec rm -rf {} \; #删除日志文件 #不用修改 #删除30天前的备份文件 find ${BAK_DIR}/* -type f -name "${BAK_USER}*.tar.gz" -mtime +${DELETE_DAYS} -exec rm -rf {} \; #不用修改
- 进行定时任务的设置,注意使用root用户操作
[root@ceshi oracle]# crontab -e
#添加定时任务(输入字母i进入编辑模式,输入下面代码
#每天00:10分使用oracle用户执行/home/oracle/目录下的oracle_bak.sh文件)
#输入完成后按esc退出编辑模式
#输入[:wq!]退出并保存
10 00 * * * su - oracle -c /home/oracle/oracle_bak.sh
#重启该服务使定时任务生效
[root@ceshi oracle]# systemctl restart crond
本文作者:洋芋不是土豆
关于作者:分享自己的学习心得,请多多赐教!
联系方式(邮件):carsen2015@163.com
联系方式(QQ):1790356276(请备注来意)
本文链接:https://www.cnblogs.com/carsen/p/16626832.html
版权说明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。