当前位置:Gxlcms > 数据库问题 > Linux中设置定期备份oracle数据库

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

时间:2021-07-01 10:21:17 帮助过:2人阅读

  • create tablespace test_data
  • logging
  • datafile ‘/u01/app/oradata/test/TEST.dbf‘
  • size 32m
  • autoextend on
  • next 32m maxsize 2048m
  • extent management local;
  •  
  • --创建用户并指定表空间
  • create user TEST identified by 123
  • default tablespace test_data
  • temporary tablespace temp;
  •  
  • --给用户授予权限
  • grant connect,resource to TEST;
  • 用Test用户登录,创建一个表,并插入两条数据:

    1. create table t1(
    2.        Id varchar(50) primary key,
    3.        title varchar(50)
    4. );
    5.  
    6. insert into t1 values(sys_guid(),‘t1‘);
    7. insert into t1 values(sys_guid(),‘t2‘);
    8. 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。

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

    标签:

    人气教程排行