Linux中设置定期备份oracle数据库

21 篇文章 0 订阅
14 篇文章 0 订阅

原文地址:http://www.cnblogs.com/default/archive/2012/06/26/2563595.html

 

Linux中设置定期备份oracle数据库

昨天装好了oracle,今天尝试一下自动备份,我这两天装linux和oracle的目的就是这个。

如果是sql server,定期备份可以利用sql server的management studio来做,比较方便。但要做oracle的定期备份,那就需要我们写导出命令,并设置linux的定时任务。

首先创建一个数据库作为测试。

  1. --创建数据表空间
  2. create tablespace test_data
  3. logging
  4. datafile '/u01/app/oradata/test/TEST.dbf'
  5. size 32m
  6. autoextend on
  7. next 32m maxsize 2048m
  8. extent management local;
  9. --创建用户并指定表空间
  10. create user TEST identified by 123
  11. default tablespace test_data
  12. temporary tablespace temp;
  13. --给用户授予权限
  14. grant connect,resource to TEST;

用Test用户登录,创建一个表,并插入两条数据:

  1.        Id varchar(50) primarykey,
  2.        title varchar(50)
  3. );
  4. insert into t1 values(sys_guid(),'t1');
  5. insert into t1 values(sys_guid(),'t2');
  6. commit ;

先写一个导出的脚本文件:

  1. export ORACLE_BASE=/u01/app
  2. export ORACLE_HOME=/u01/app/oracle
  3. export ORACLE_SID=TEST
  4. export PATH=$ORACLE_HOME/bin:$PATH
  5. d=$(date '+%Y%m%d')
  6. exp TEST/123@TEST file=/home/oracle/backup/$d.dmp log=/home/oracle/backup/$d.log owner=TEST
  7. zip -m /home/oracle/backup/$d.zip /home/oracle/backup/$d.dmp /home/oracle/backup/$d.log

前4句是设置环境变量,因为crontab定时调用时,不会使用oracle用户的环境变量,所以要先把它们导进来。第6行以当前日期作为导出的文件名,例如20120626.dmp和20120626.log。第7行把这两个文件打成一个zip包,并删掉这两个文件。

要用chmod命令把这个sh标记为可执行:

  1. chmod +x backup.sh

用oracle用户,输入crontab -e命令,编辑oracle用户的任务计划:

  1. [oracle@localhost backup]$ crontab -e
  2. 42 13 * * * /home/oracle/backup/backup.sh

这样就添加了一个计划,在每天的13点42分运行/home/oracle/backup/backup.sh。

另外,每天运行完之后,会收到mail通知,可以在mail里看出到底有没有正确运行。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值