好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Oracle数据库自动备份脚本分享(超实用)

前言

众所周知数据是应用的核心部分,程序坏了换台机器重新发布就可以,但数据一旦丢失,造成的损失将不可挽回,程序发布到生产后,数据的备份便显得尤为重要,由于不一定所有的服务均有资金完成高级的备份如RAC和DG,在我们只有一台数据库服务器的,暂时采取最简单的备份策略,export出dmp进行保存。

一、备份脚本

1、初始化变量,记录开始日志

?

1

2

3

4

5

6

7

8

9

10

11

12

#变量

sysname=填写自己的系统名称

syspath= /home/oracle/databak/ $sysname

v_date=$( date '+%Y%m%d%H%M%S' )

#日志目录

logfile=${syspath} /backup .${v_date}.log

#打印开始时间

echo backup_time>>${logfile}

date '+%Y-%m-%d %H:%M:%S' >> ${logfile}

echo "backup jcd" >>${logfile}

echo "start_time" >>${logfile}

date '+%Y-%m-%d %H:%M:%S' >> ${logfile}

2、进入oracle目录,设置oracle的参数

?

1

2

3

4

5

#进入oracle目录,设置oracle变量

cd /home/11g/app/oracle/product/11 .2.0

export ORACLE_HOME= /home/11g/app/oracle/product/11 .2.0 /db_1

export PATH=$PATH: /home/11g/app/oracle/product/11 .2.0 /db_1/bin

export ORACLE_SID=SID名称

3、导出数据

?

1

2

3

4

5

6

7

echo $syspath

v_date=$( date '+%Y%m%d%H%M%S' )

filename=$syspath /jcd ${v_date}.dmp

#导出命令

exp username /password file =${filename} compress=n >> ${logfile}

echo "end_time" >>${logfile}

date '+%Y-%m-%d %H:%M:%S' >>${logfile}

4、压缩dump包

?

1

gzip ${filename}

5、使用scp,将压缩后的包传递到备份服务器,注意备份服务器上目录需要预先创建

?

1

scp ${filename}.gz remot_name@remot_ip: /home/weblogic/databak/ 备份目录

二、设定脚本执行时间

我们设定规则为每天凌晨2点执行一次,采用crontab来进行处理

执行crontab -e,设定如下规则:

?

1

0 2 * * * sh /home/oracle/db .sh

大家可以参照上面去写一个适合自己生产数据库的一个脚本,定期备份。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对服务器之家的支持。

原文链接:https://sh.qihoo.com/980ac9e6425ac837e

查看更多关于Oracle数据库自动备份脚本分享(超实用)的详细内容...

  阅读:79次