Oracle数据库自动备份手册forlinux.doc
文本预览下载声明
Oracle数据库
自动备份手册
目录结构
1 目的 1
2 系统用户一览 1
3 Oracle环境变量 1
4 备份方法 1
4.1.1 创建备份目录 1
4.1.2 创建备份脚本 1
4.1.3 设置脚本定时执行 2
目的
在linux环境下使用exp备份数据库,该方法适合于备份数据级别小余1TB的数据库,版本10g、11g皆可。
经测试,该方法在redhat5.x,redhat6.x,centos6.x等64位环境下正常执行。
系统用户一览
序号 用户 所在组 权限 密码 root root 超级用户 root123 oracle oinstall dba orcl
Oracle环境变量
标题 内容 ORACLE目录 /home/oracle ORACLE_BASE /usr/local/oracle/ ORACLE_HOME /usr/local/oracle/product/1120 ORACLE_SID orcl
备份方法
创建备份目录
使用oracle创建备份文件存储目录
su oracle
df –hl 查询/home下空闲磁盘空间,保证空间充足
mkdir /home/oracle/backup
创建备份脚本
使用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 设置脚本定时执行
使用root执行
vi /etc/crontab
#在最后一行添加
10 17 * * * oracle /home/oracle /backup.sh #每天的17:10执行/home/oracle /backup.sh
命令用法
* * * * * :代表执行时间间隔
分别表示:
???????分钟: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
显示全部