先新建目录
该路径:/home/oracle/backup
该名称:DATA_PATHsfNiCDhell脚本
export ORACLE_BASE=/home/oracle/app export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/dbhome_1 export ORACLE_SID=orcl expor编程t 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的定时任务。
首先创建一个数据库作为测试。
--创建数据表空间 createtablespace test_data logging datafile '/u01/app/oradata/test/TEST.dbf' size32m autoexten编程客栈don next32m maxsize 2048m extent managementlocal; --创建用户并指定表空间 createuserTEST identifiedby123 defaulttablespace test_data temporarytablespacetemp; --编程客栈给用户授予权限 grantconnect,resourcetoTEST;
用Test用户登录,创建一个表,并插入两条数据:
createtablet1( Idvarchar(50)primarykey, titlevarchar(50) ); insertintot1values(sys_guid(),'t1'); insertintot1values(sys_guid(),'t2'); commit;
先写一个导出的脚本文件:
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命令把这开发者_oracle个sh标记为可执行:
chmod +x backup.sh
用oracle用户,输入crontab -e命令,编辑oracle用户的任务计划:
[oracle@localhost backup]$ crontab -e 42 13 * * * /home/oracle/backup/backup.sh
这样就添加了一个计划,在每天的13点42分运行/home/oracle/backup/backup.sh。
另外,每天运行完之后,会收到mail通知,可以在mail里看出到底有没有正确运行。
到此这篇关于Linux设置每晚定时备份Oracle数据表的文章http://www.devze.com就介绍到这了,更多相关Linux设置定时备份Oracle数据表内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
精彩评论