记录一下~~~Linux配置定时任务备份数据库dmp文件

1.创建备份目录:

mkdir -p /dcits/sx_xmz/sx_data_bak chown -R oracle18c:oinstall /dcits/sx_xmz/sx_data_bak

2.脚本文件编写 vi databak.sh 输入如下内容

#设置环节变量
export ORACLE_SID=orcl18c
export ORACLE_BASE=/home/oracle18c/u01/app/oracle
export ORACLE_HOME=/home/oracle18c/u01/app/oracle/product/18.3/dbhome_1
export PATH=/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export PATH=$ORACLE_HOME/bin:$PATH
#设置用户变量, 数据库用户
orowner=sx_rms
#设置时间
days=10
#设置文件名称
bakdata=$orowner"_"$(date +%Y%m%d).dmp
#设置导出执行日志名称
baklog=$orowner"_"$(date +%Y%m%d).log
#设置打包名称
ordatabak=$orowner"_"$(date +%Y%m%d).tar.gz
#设置备份文件存放地址
bakdir=/dcits/sx_xmz/sx_data_bak
#编写备份命令
cd $bakdir
exp sx_rms/sx_ams@pdb1 file=$bakdir/$bakdata owner=sx_rms log=$bakdir/$baklog
tar -zcvf $ordatabak  $bakdata $baklog
find $bakdir  -type f -name "*.log" -exec rm {} \;
find $bakdir  -type f -name "*.dmp" -exec rm {} \;
find $bakdir  -type f -name "*.tar.gz" -mtime +$days -exec rm -rf {} \;

**编写完成之后,手动执行下脚本验证脚本是否正确,完事用chmod命令给脚本文件赋予执行权限 **

3.切换到oracle的用户,创建Linux定时任务

-e edit user's crontab 编辑定时任务 -l list user's crontab 查看定时任务列表 -r delete user's crontab 删除定时任务 crontab -l 查看当前用户下的定时任务 crontab -e 编辑定时任务,编辑完成保存30 1 * * * /dcits/sx_xmz/sx_data_bak/databak.sh crontab -l 查看是否添加成功30 1 * * * /dcits/sx_xmz/sx_data_bak/databak.sh

定时任务设置时间结构:

 ┌────────── minute (0 - 59)
 │ ┌──────── hour (0 - 23)
 │ │ ┌────── day of month (1 - 31)
 │ │ │ ┌──── month (1 - 12)
 │ │ │ │ ┌── day of week (0 - 6 => Sunday - Saturday, or
 │ │ │ │ │                1 - 7 => Monday - Sunday)
 ↓ ↓ ↓ ↓ ↓
 *   *   *  *   * command to be executed

注意事项:

a、星期和数字对应
0 - Sun      Sunday
1 - Mon      Monday
2 - Tue      Tuesday
3 - Wed      Wednesday
4 - Thu      Thursday
5 - Fri      Friday
6 - Sat      Saturday
7 - Sun      Sunday

b、’day or month‘ 、‘month’ 、‘day of week’  --这三项注意  如果不能确定月份日期和周日期对应关系,可以两个取一个  即 规定了 月份和日期 就不选择星期 星期 执行 *  规定了 星期  月份和日期就 * *

参考链接:

18人参与, 0条评论 登录后显示评论回复

你需要登录后才能评论 登录/ 注册