Linux设置每晚定时备份Oracle数据表的操作命令

吾爱主题 阅读:177 2024-04-05 15:07:03 评论:0

先新建目录

该路径:/home/oracle/backup
该名称:DATA_PATH

shell脚本

?
1 2 3 4 5 6 7 8 export ORACLE_BASE= /home/oracle/app export ORACLE_HOME=$ORACLE_BASE /oracle/product/11 .2.0 /dbhome_1 export ORACLE_SID=orcl export PATH=$PATH:$HOME /bin :$ORACLE_HOME /bin export LD_LIBRARY_PATH=$ORACLE_HOME /lib : /usr/lib d=$( date '+%Y%m%d' ) expdp MPMS_NY /MPMS @ORCL DIRECTORY=DATA_PATH DUMPFILE=$d.DMP LOGFILE=$d.LOG CLUSTER=N zip -m /home/oracle/backup/ $d.zip /home/oracle/backup/ $d.DMP /home/oracle/backup/ $d.LOG

root权限下

crontab -e进入编辑界面
新增如下
0 1 * * * sh /home/oracle/backup.sh

每天晚上1点执行

crontab 操作命令介绍

查看crontab:crontab -l 编辑crontab:crontab -e 删除crontab:crontab -r

启动:systemctl start crond.service

停止:systemctl stop crond.service

重启:systemctl restart crond.service

知识点补充:

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

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

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

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

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 --创建数据表空间   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 2 3 4 5 6 7 8 9 10 11 create  table  t1(           Id  varchar (50)  primary  key ,           title  varchar (50)   ); insert  into  t1  values (sys_guid(), 't1' );   insert  into  t1  values (sys_guid(), 't2' ); commit ;

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

?
1 2 3 4 5 6 7 8 9 10 11 12 13 export ORACLE_BASE= /u01/app   export ORACLE_HOME= /u01/app/oracle   export ORACLE_SID=TEST   export PATH=$ORACLE_HOME /bin :$PATH   d=$( date '+%Y%m%d' )   exp TEST /123 @TEST file = /home/oracle/backup/ $d.dmp log= /home/oracle/backup/ $d.log owner=TEST   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 2 3 [oracle@localhost backup]$ crontab -e   42 13 * * * /home/oracle/backup/backup .sh

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

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

到此这篇关于Linux设置每晚定时备份Oracle数据表的文章就介绍到这了,更多相关Linux设置定时备份Oracle数据表内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://www.cnblogs.com/hhs-5120/p/17008195.html

可以去百度分享获取分享代码输入这里。
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

【腾讯云】云服务器产品特惠热卖中
搜索
标签列表
    关注我们

    了解等多精彩内容