ITPub博客

Linux环境下数据库自动逻辑备份

原创 Linux操作系统 作者:foxmile 时间:2007-12-12 12:00:35 0 删除 编辑

以我的测试环境为例,此方法主要是限于在本机执行,如果要在其他机器执行需要修改备份脚本。

首先建立备份目录:

[root@founder14 oracle]# mkdir backup

给备份目录授权

[root@founder14 oracle]# chmod +777 backup

进入备份目录

[root@founder14 oracle]# cd backup

[root@founder14 backup]#

建立备份脚本

vi backup.sh

输入以下文本

#tabase info此处为数据库用户名、密码以及备份目录的变量这些变量是可用户进行修改的

DB_USER="wzzf"

DB_PASS="wzzf"

BACK_DIR="/home/oracle/backup"

# Others vars此处是数据库备份时间变量以及目录变量,这些变量基本不用修改,请拷贝过去

YEAR=`date +%Y`

MONTH=`date +%m`

DATE=`date +%Y%m%d_%H:%M:%S`

BACK_HOME=$BACK_DIR/$YEAR/$MONTH

#环境变量 相关的环境变量请拷贝过来,可能会和大家所使用的环境变量不同,但请都拷贝进来,执行脚本的时候要用,环境变量每台机器不同,请查看oracle 用户下面.bash_profile

export ORACLE_BASE=/opt/ora9

export ORACLE_HOME=/opt/ora9/product/9.2

export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH

export ORACLE_SID=founder

export LD_LIBRARY_PATH=/opt/ora9/product/9.2/lib:$LD_LIBRARY_PATH

export PATH=$PATH:$JAVA_HOME/bin

export CLASSPATH=$JAVA_HOME/lib

# 备份脚本 由于是本机备份,所以不用输入tns名称

mkdir $BACK_DIR/$YEAR

mkdir $BACK_DIR/$YEAR/$MONTH

$ORACLE_HOME/bin/exp $DB_USER/$DB_PASS file = $BACK_HOME/$DB_USER$DATE.dmp

然后保存backup.sh

给脚本授权:

[root@founder14 backup]# chmod +777 backup.sh

设置crontab计划任务

[root@founder14 backup]# vi /etc/crontab

在文件的最后加入下列文本:

15 15 * * * oracle /home/oracle/backup/backup.sh

此命令的意思是在每天的1515分使用oracle用户执行脚本/home/oracle/backup/backup.sh

修改第一个域的参数会改变执行的分钟,修改第二个参数会改变执行的小时,修改,修改第三个参数会修改执行的日期,修改第四个参数会修改执行的月份,修改第五个参数会修改执行的星期,下面是Crontab文件格式简介:

crontab文件有六个域,每个域之间用空格或者Tab键分开,前五个域都是整数或者*,格式如下(括号里面是取值范围)

分钟(0-59) 小时(0-23) (1-31) (1-12) 星期(0-6) 要执行的命令

其中星期取值0指星期日,其它取值递推。前面五个域,每个域都可以用*表示所有合法的值,或者用一个列表列出合法的值,各值之间用“,”隔开,也可以用“-”表示一个范围。

至此linux进行自动备份的脚本设置完成,系统会在你设定的时间进行自动备份。附件(backup.sh)中是我自己做测试的备份脚本。

附:backup.sh

#tabase info
#place at db host computer
DB_USER="wzzf"
DB_PASS="wzzf"
BACK_DIR="/home/oracle/backup"

# Others vars
YEAR=`date +%Y`
MONTH=`date +%m`
DATE=`date +%Y%m%d_%H:%M:%S`
BACK_HOME=$BACK_DIR/$YEAR/$MONTH

export ORACLE_BASE=/opt/ora9
export ORACLE_HOME=/opt/ora9/product/9.2
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH
export ORACLE_SID=founder
export LD_LIBRARY_PATH=/opt/ora9/product/9.2/lib:$LD_LIBRARY_PATH
export CLASSPATH=$JAVA_HOME/lib

# TODO
mkdir $BACK_DIR/$YEAR
mkdir $BACK_DIR/$YEAR/$MONTH
$ORACLE_HOME/bin/exp $DB_USER/$DB_PASS file = $BACK_HOME/$DB_USER$DATE.dmp

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/79499/viewspace-437/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2007-12-10

  • 博文量
    107
  • 访问量
    196352