Oracle数据库自动备份 | 您所在的位置:网站首页 › linux删除oracle数据库用户 › Oracle数据库自动备份 |
脚本写好了,可云盘下载,分Linux和windows 链接:https://pan.baidu.com/s/1pYt0GTzlDn0hBTLqLAqGew 提取码:fily Oracle数据库 自动备份手册 1 目的 在linux环境下使用exp备份数据库,该方法适合于备份数据级别小余1TB的数据库,版本10g、11g皆可。 经测试,该方法在redhat5.x,redhat6.x,centos6.x等64位环境下正常执行。 2 系统用户一览序号 1. 用户 root 所在组 root 权限 超级用户 密码 root123 2. oracle oinstall dba orcl 3 Oracle环境变量标题 内容 ORACLE目录 /home/oracle ORACLE_BASE /usr/local/oracle/ ORACLE_HOME /usr/local/oracle/product/1120 ORACLE_SID orcl 4 备份方法4.1.1 创建备份目录使用oracle创建备份文件存储目录 su oracle df –hl 查询/home下空闲磁盘空间,保证空间充足 mkdir /home/oracle/backup 4.1.2 创建备份脚本使用oracle用户创建自动备份脚本 cd /home/oracle vi backup.sh 脚本内容如下,其中的红色部分需要根据实际情况调整 当前备份设置删除1个月之前的备份文件 #! /bin/sh export LANG="en_US.UTF-8" export NLS_LANG="Simplified Chinese_china".ZHS16GBK export ORACLE_BASE=/usr/local/oracle/ export ORACLE_HOME=/usr/local/oracle/product/1120 export ORACLE_SID=orcl export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin #设置备份文件格式 #设置删除备份文件的格式,当前为删除1个月前的备份 backuptime=`date +"%Y%m%d%H"` deletetime=`date -d "1 month ago" +"%Y%m%d%H"` #开始删除1个月前的备份 rm -f /home/oracle/backup/orcl_$deletetime.dmp rm -f /home/oracle/backup/orcl_$deletetime.log #开始备份 exp count/count file=/home/oracle/backup/orcl_$backuptime.dmp log=/home/oracle/backup/orcl_$backuptime.log full=y 注意:date -d "1 month ago" 命令代表获取当前1个月之前的时间 date -d "1 week ago"命令代表获取当前1周之前的时间 date -d "1 day ago"命令代表获取当前1天之前的时间 提升权限 chmod +x backup.sh #需要先设置为可执行脚本,只需要设置一次 手动测试一下 ./backup.sh 4.1.3 设置脚本定时执行使用root执行 vi /etc/crontab #在最后一行添加 10 17 * * * oracle /home/oracle /backup.sh #每天的17:10执行/home/oracle /backup.sh 命令用法 l * * * * * :代表执行时间间隔 分别表示: 分钟:0-59 小时:1-23 日期:1-31 月份:1-12 星期:0-6(0表示周日) 还可以用一些特殊符号: *: 表示任何时刻 ,: 表示分割 -:表示一个段,如第二端里: 1-5,就表示1到5点 /n : 表示每个n的单位执行一次,如第二段里,*/1, 就表示每隔1个小时执行一次命令。也可以写成1-23/1. 一些示例 43 21 * * * 21:43 执行 15 05 * * * 05:15 执行 0 17 * * * 17:00 执行 0 17 * * 1 每周一的 17:00 执行 0,10 17 * * 0,2,3 每周日,周二,周三的 17:00和 17:10 执行 0-10 17 1 * * 毎月1日从 17:00到7:10 毎隔1分钟 执行 0 0 1,15 * 1 毎月1日和 15日和 一日的 0:00 执行 42 4 1 * * 毎月1日的 4:42分 执行 0 21 * * 1-6 周一到周六 21:00 执行 0,10,20,30,40,50 * * * * 每隔10分 执行 */10 * * * * 每隔10分 执行 * 1 * * * 从1:0到1:59 每隔1分钟 执行 0 1 * * * 1:00 执行 0 */1 * * * 毎时0分 每隔1小时 执行 0 * * * * 毎时0分 每隔1小时 执行 2 8-20/3 * * * 8:02,11:02,14:02,17:02,20:02 执行 30 5 1,15 * * 1日 和 15日的 5:30 执行 在实际使用过程中需要根据数据库膨胀的速度考虑备份定时的时间,一般膨胀越快,备份越频繁,如每天一次晚上23:00备份;数据库文件较大时,可适当降低备份频率,如2天或3天备份一次,同时增加删除频率,如只保留最近10天的数据。需要注意备份路径所在的磁盘空间大小,一般使用 df –hl 查询,如果空间太小需要及时手动清理或增大空间。 l oracle :执行脚本的用户 l /home/oracle /backup.sh:执行脚本的路径 |
CopyRight 2018-2019 实验室设备网 版权所有 |