• 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. --创建用户并指定表空间
    11. create user TEST identified by 123
    12. default tablespace test_data
    13. temporary tablespace temp;
    14.  
    15. --给用户授予权限
    16. grant connect,resource to TEST;

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

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

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

    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里看出到底有没有正确运行。

  • 相关阅读:
    聊聊ES6中的generator
    generator-yield到底是个啥
    jquery 常用方法中那些我不知道的事
    jquery 获取textarea文本值详解
    数组去重
    五指棋人机大战之ai篇
    五指棋人机大战之ui篇
    css控制背景图像不随滚动条的滚动而滚动
    用canvas画会旋转的伞
    CSS3 实现太极图案
  • 原文地址:https://www.cnblogs.com/default/p/2563595.html
Copyright © 2020-2023  润新知