超实用的Oracle数据库自动备份脚本
超实用的Oracle数据库自动备份脚本概述数据是应用的核心部分,程序坏了换台机器重新发布就可以,但数据一旦丢失,造成的损失将不可挽回,程序发布到生产后,数据的备份便显得尤为重要,由于不一定所有的服务均有资金完成高级的备份如RAC和DG,在我们只有一台数据库服务器的,暂时采取最简单的备份策略,export出dmp进行保存。一、备份脚本1、初始化变量,记录开始日志1. #变量 http:/www.gw638.cn2. sysname=填写自己的系统名称 3. syspath=/home/oracle/databak/$sysname 4. v_date=$(date '+%Y%m%d%H%M%S') 5. #日志目录 6. logfile=$syspath/backup.$v_date.log 7. #打印开始时间 8. echo backup_time>>$logfile 9. date '+%Y-%m-%d %H:%M:%S' >> $logfile 10. echo "backup jcd">>$logfile 11. echo "start_time">>$logfile 12. date '+%Y-%m-%d %H:%M:%S' >> $logfile 2、进入oracle目录,设置oracle的参数1. #进入oracle目录,设置oracle变量 2. cd /home/11g/app/oracle/product/11.2.0 3. export ORACLE_HOME=/home/11g/app/oracle/product/11.2.0/db_1 4. export PATH=$PATH:/home/11g/app/oracle/product/11.2.0/db_1/bin 5. export ORACLE_SID=SID名称 3、导出数据1. echo $syspath 2. v_date=$(date '+%Y%m%d%H%M%S') 3. filename=$syspath/jcd$v_date.dmp 4. #导出命令 5. exp username/password file=$filename compress=n >> $logfile 6. echo "end_time">>$logfile 7. date '+%Y-%m-%d %H:%M:%S'>>$logfile 4、压缩dump包1. gzip $filename 5、使用scp,将压缩后的包传递到备份服务器,注意备份服务器上目录需要预先创建 1. scp $filename.gz remot_nameremot_ip:/home/weblogic/databak/备份目录 二、设定脚本执行时间我们设定规则为每天凌晨2点执行一次,采用crontab来进行处理执行crontab -e,设定如下规则:http:/www.f-1.cc1. 0 2 * * * sh /home/oracle/db.sh 大家可以参照上面去写一个适合自己生产数据库的一个脚本,定期备份。