CentOS Oracle数据库每天自动备份

时间:2022-12-22 10:26:51

</pre><p>备份方案1:全部进行备份</p><p></p><p>在目录的任意位置新建文件夹,以用来存放备份的文件,笔者建立的为/mnt/oracleBackup/ ,该文件夹专门存放备份了的数据库文件。</p><p>在目录的任意位置新建文件 ,文件名为:backup.sh</p><p>笔者简历的目录是:/mnt/oracle/backupScript/backup.sh</p><p>然后backup.sh文件为以下内容:</p><p></p><pre name="code" class="plain">#! /bin/sh
export LANG="en_US.UTF-8"
export NLS_LANG="Simplified Chinese_china".ZHS16GBK
export ORACLE_BASE=/mnt/oracle/app //这个需要修改为你自己的OracleBase
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1 //这个需要修改为你自己的ORACLE_HOME
export ORACLE_SID=orcl
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib

# set backup fileformat
# set delete file
backuptime=`date +"%Y%m%d%H"`
deletetime=`date -d "1 month ago" +"%Y%m%d%H"`
#
rm -f /mnt/oracleBackup/orcl_$deletetime.dmp
rm -f /mnt/oracleBackup/orcl_$deletetime.log

exp 数据库名/密码 file=/mnt/oracleBackup/orcl_$backuptime.dmp
log=/mnt/oracleBackup/orcl_$backuptime.log full=y


保存之后,测试下是否可用

sh /mnt/oracle/backupScript/backup.sh

如果成功,在/mnt/oracleBackup/ 文件夹下应该有文件产生了。


需要每天定时备份?

打开/etc/crontab在最后一行加入(vi /etc/crontab)

10 2 * * * oracle  /mnt/oracle/backupScript/backup.sh //表示每天早上2:10分进行备份

定时操作执行不成功?

1.可能环境变量没配置成功,把环境变量直接带上

crontab -u oracle -e
10 2 * * * /etc/profile;/bin/sh /mnt/oracle/backupScript/backup.sh 

2.还是不行?查看脚本运行日志,把上面命令修改为如下

10 2 * * * /etc/profile;/bin/sh /mnt/oracle/backupScript/backup.sh >> /tmp/cronLog.log 2>&1
运行好之后即可在/tmp/cronLog.log查看日志,看有什么问题再解决

3.修改备份输出的文件夹的权限,笔者的是chmod 777 -R /mnt/oracleBackup

重启下cron,命令如下

/etc/rc.d/init.d/crond restart