定时任务———crontab

  • 脚本目录:

[oracle@tangjian ~]$ mkdir -p /u01/app/oracle/rman/scripts/

  • 归档目录:

[oracle@tangjian ~]$ mkdir -p /u01/app/oracle/rman/arch

  • 创建脚本:(每月一次0级增量)

[oracle@tangjian ~]$ vi /u01/app/oracle/rman/scripts/full_backup_run.sh

 

#!/bin/bash

#Usage:test database hot full backup !

export PATH

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1

export ORACLE_SID=test

export PATH=$PATH:$ORACLE_HOME/bin

DATE=$(date +%Y%m%d)

mkdir -p /u01/app/oracle/rman/$DATE

rman target / <<EOF

run{

allocate channel c1 device type disk;

allocate channel c2 device type disk;

sql'alter system switch logfile';

crosscheck archivelog all;

delete noprompt expired archivelog all;

backup incremental level 0 database format '/u01/app/oracle/rman/$DATE/test_%U.bk' include current controlfile plus archivelog delete input format '/u01/app/oracle/rman/arch/arch_test_%U.arch';

crosscheck archivelog all;

delete noprompt obsolete;

delete noprompt backup of database completed before 'sysdate - 32';

release channel c1;

release channel c2; }

exit;

EOF

 

 

[root@tangjian ~]# chmod -R 775 /u01/app/oracle/rman/scripts/full_backup_run.sh

 

  • 添加定时任务:

[oracle@tangjian 20180730]$ crontab -e

#rman backup full database shell

52 14 * * * /u01/app/oracle/rman/scripts/full_backup_run.sh 1>/u01/app/oracle/rman/rman_backup_full.log 2>&1

 

  • 查看任务列表:

[oracle@tangjian 20180730]$ crontab -l

 

  • 创建脚本:(每星期一次1级差异增量)

[oracle@tangjian ~]$ vi /u01/app/oracle/rman/scripts/level_backup_run.sh

 

 

#!/bin/bash

#Usage:test database hot full backup !

export PATH

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1

export ORACLE_SID=test

export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin

DATE=$(date +%Y%m%d)

mkdir -p /u01/app/oracle/rman/level/$DATE

rman target / <<EOF

run{

allocate channel a1 device type disk;

allocate channel a2 device type disk;

sql'alter system switch logfile';

crosscheck archivelog all;

delete noprompt expired archivelog all;

backup incremental level 1 database format '/u01/app/oracle/rman/level/$DATE/test_%U.bk' include current controlfile plus archivelog delete input format '/u01/app/oracle/rman/arch/arch_test_%U.arch';

crosscheck archivelog all;

delete noprompt obsolete;

delete noprompt backup of database completed before 'sysdate -32';

release channel a1;

release channel a2;

}

exit;

EOF

 

[root@tangjian ~]# chmod -R 775 /u01/app/oracle/rman/scripts/level_backup_run.sh

 

  • 添加定时任务:

[oracle@tangjian 20180730]$ crontab -e

#rman backup full database shell

00 1 1 * * /u01/app/oracle/rman/scripts/full_backup_run.sh 1>/tmp/rman_backup_full.log 2>&1

#rman backup level database shell

00 1 * * 7 /u01/app/oracle/rman/scripts/level_backup_run.sh 1>/tmp/rman_backup_full.log 2>&1

 

  • 验证脚本可用性:

[oracle@tangjian scripts]$ sh full_backup_run.sh

​[oracle@tangjian scripts]$ sh level_backup_run.sh

 

  • 常用命令:

/sbin/service crond start //启动服务

/sbin/service crond stop //关闭服务

/sbin/service crond restart //重启服务

/sbin/service crond reload //重新载入配置

 

在/etc/rc.d/rc.local这个脚本的末尾加上(开机自启):

/sbin/service crond start

 

crontab -u   设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数

crontab -l    列出某个用户cron服务的详细内容

crontab -r    删除某个用户的cron服务

crontab -e   编辑某个用户的cron服务

 

 

猜你喜欢

转载自blog.csdn.net/haojiubujian920416/article/details/81330734