linux Oracle 定时自动备份

版权声明:本文注明出处可以转载。 https://blog.csdn.net/lzxomg/article/details/77505809

linux Oracle 定时自动备份

centos 6.5 x64, oracle 11g

脚本代码

orclback.sh

#!/bin/sh
#su - zhishiku
#路径名,指定备份的路径
FILEPATH='/home/zhishiku/OracleBackup/'

#根据指定日期格式,定义备份数据库文件名
FILENAME=`date +%Y%m%d_%H%M`

#切换至指定路径,并创建文件夹
cd $FILEPATH
mkdir $FILENAME
chmod 775 $FILENAME
cd $FILENAME

#oracle变量设置
export USER=zhishiku;
export ORACLE_SID=ZHISHIKU;
export ORACLE_HOME=/usr/local/oracle/11g;
export PATH=$ORACLE_HOME/bin:$PATH;

#导出数据库 这里使用了exp 可以根据需要使用expdp
exp zhishiku/z9z7w7w8@ZHISHIKU file=${FILEPATH}${FILENAME}"/"${FILENAME}".dmp" log= ${FILEPATH}${FILENAME}"/"${FILENAME}".log" owner=zhishiku;

#打包+加压
cd ..
tar -zcf $FILENAME.tar.gz $FILENAME
rm -rf $FILENAME
##gzip $FILENAME.tar
exit
EOF

设定脚本执行时间

我们设定规则为每天凌晨2点执行一次,采用crontab来进行处理
执行crontab -e,设定如下规则
0 2 * * * sh /home/oracle/db.sh

—以下内容不用看——
关于linux在shell中获取系统时间

获得当天的日期 date +%Y%m%d

输出: 20170823

需要使用今天之前或者往后的日期,这时可以使用date的 -d参数
获取明天的日期 date -d next-day +%Y%m%d
获取前几天的日期 date -d “7 days ago” +%Y%m%d
获取昨天的日期 date -d last-day +%Y%m%d

—以下内容不用看——
使用expect命令完成密码交互
  expect命令主要用于脚本中出现必须人工干预的情况下,预先输入指令,模拟的场景为使用expect命令捕捉到提示输入指令的文字,一旦文字出现,自动使用send命令输入需要交互的命令。
  此处使用为:
  expect “*password:”#此处填写系统提示文字
  send “your password\r”#此处填写我们输入的交互命令
  expect eof

猜你喜欢

转载自blog.csdn.net/lzxomg/article/details/77505809