32. linux下oracle数据库定时备份
Posted zkx4213
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了32. linux下oracle数据库定时备份相关的知识,希望对你有一定的参考价值。
这里以oradatabak.sh(里面的内容要根据实际修改)脚本放在/u01/11g/datapump下为例:
#1.添加脚本执行权限
chmod +x /u01/11g/datapump/oradatabak.sh
#2.在oracle用户下添加定时任务,每天晚上23点,以oracle用户执行oradatabak.sh备份文件
su - oracle
crontab -e
00 23 * * * /u01/11g/datapump/oradatabak.sh
#3.重启crond
service crond restart
#4.oradatabak.sh脚本内容如下:
#!/bin/bash
#:本脚本自动备份1天的数据库,每次备份完成后,删除1天之前的数据。
#加载oracle的相关参数
#如果oracle参数不明确,请使用命令查看
# su - oracle
# echo $ORACLE_HOME
export ORACLE_BASE=/u01/11g
export ORACLE_HOME=/u01/11g/product/11.2.0
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin
#oracle字符集
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
#ORACLE_HOME
ORACLE_HOME=/u01/11g/product/11.2.0
#获取当前时间,格式:20150210
DATE=$(date +%Y%m%d)
#删除1天前的文件
days=1
#执行备份的用户
bakuser=TEST
#执行备份的用户密码
bakuserpass=TEST
#服务器IP
IP=192.168.0.1
#dumpfilename
dumpfilename=$bakuser"_"$DATE
#设置备份目录
export backup_dir=/u01/11g/datapump
#开始备份,此处采用expdp数据方式导出
echo "start oracle backup ..."
#echo $ORACLE_HOME/bin/expdp $bakuser/$bakuserpass schemas=$bakuser dumpfile=$dumpfilename.dmp directory=DPDATA logfile=$dumpfilename.log
$ORACLE_HOME/bin/expdp $bakuser/$bakuserpass@$IP/orcl schemas=$bakuser dumpfile=$dumpfilename.dmp directory=DPDATA logfile=$dumpfilename.log
echo \'Oracle backup successfully.\'
#开始压缩
cd $backup_dir
echo "开始压缩..."
tar zcvf $dumpfilename.tar.gz $dumpfilename.dmp
echo "压缩完毕"
#删除.dmp文件
rm -rf $dumpfilename.dmp
#删除1天前的备份文件
echo \'remove files one day ago...\'
find $backup_dir -type f -name "*.tar.gz" -mtime +$days -exec rm -f {} \\;
find $backup_dir -type f -name "*.log" -mtime +$days -exec rm -f {} \\;
echo \'remove successsfully.\'
以上是关于32. linux下oracle数据库定时备份的主要内容,如果未能解决你的问题,请参考以下文章