CentOS Oracle数据库每天自动备份

本文介绍了如何在CentOS系统中设置Oracle数据库每天自动备份。通过编辑/etc/crontab文件添加定时任务,并检查环境变量配置、脚本运行日志及文件夹权限,确保备份过程顺利进行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


</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





评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值