利用 EXP每天晚上12点自动备份Oracle <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

参考资料: Oracle 9i  联机文档

作者邮箱: [email]ministorager@gmail.com[/email]

平台描述

这篇文档我所使用的是 Linux Centos 4.5/Oracle 9i

在数据库中我创建了两个database,一个是db2,一个是bbk

在这里我用EXP自动备份bbk的数据,注意环境变量的设置。

Step01>

创建EXP备份脚本,脚本名称为:bbk_exp.sh

脚本内容:

export DISPLAY=192.168.0.1:0.0

export ORACLE_BASE=/u01/

export ORACLE_HOME=/u01/oracle

export PATH=$ORACLE_HOME/bin:$PATH

export ORACLE_SID=bbk

export ORACLE_TERM=xterm

export LD_ASSUME_KERNEL=2.4.19

export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH

export PATH=$ORACLE_HOME/bin:$PATH

export NLS_LANG=american_america.UTF8 

backupfile=dbback$(date +%y%m%d).dmp

/u01/oracle/bin/exp "sys/oracle as sysdba" file=/u01/oradata/backup/$backupfile

提示:这里192.168.0.1这个IP是因为我用的VM,所以设置这个IP,你可以根据你的情况设置,比如说localhost或者127.0.0.1或者你的真实IP。

这里的(file=/u01/oradata/backup/$backupfile)backup目录需要你自己去创建,注意要以oracle身份去创建,保证它可读可写!

这里的(export NLS_LANG=american_america.UTF8)UTF8要和你数据库里的字符集一致,不然会报错,查看当前数据库系统的字符集语句:

select * from v$nls_parameters where parameter='NLS_CHARACTERSET';

Step02>

把创建好的备份脚本,放到系统计划任务中:

这里要以Oracle用户登陆

Crontab  -e 

然后在编辑状态中加入:

01  23  *  *  *  /u01/oracle/dbs/  bbk_exp.sh > /dev/null

保存退出,重新启动crontab服务:service crond restart

到这里 利用 EXP每天晚上12点自动备份Oracle 成功测试通过。

感谢你的阅读!