Content

Linux设置每晚定时备份Oracle数据表的操作命令(oracle定时备份脚本)燃爆了

文章摘要

这篇文章介绍了在Linux系统中使用cron表定时备份Oracle数据库的方法。核心内容包括: 1. **配置环境变量**:通过设置`ORACLE_BASE`、`ORACLE_HOME`、`ORACLE_SID`、`PATH`和`LD_LIBRARY_PATH`等变量,确保cron表能够访问Oracle数据库资源。 2. **编写备份脚本**:通过脚本文件`backup.sh`实现每日定时备份,使用`exp`命令导出数据,并通过`zip`命令将备份文件打包。 3. **设置cron表任务**:在`crontab`编辑器中添加定时任务,将`backup.sh`脚本设置为每天固定时间(如13:42)运行,确保自动备份。 4. **发送邮件通知**:备份完成后,脚本会向指定邮箱发送通知,用户可以实时查看备份结果。 5. **补充知识**:文章还补充说明了为何选择cron表而非SQL Server的管理界面,以及如何管理Oracle的数据表空间和用户权限。 总体而言,文章为Linux环境下需要定期备份Oracle数据库的用户提供了详细的操作指南。



该路径:/home/oracle/backup

该名称:DATA_PATH

shell脚本

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

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

启动:systemctl start crond.service

停止:systemctl stop crond.service

重启:systemctl restart crond.service

知识点补充:

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

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

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

–创建数据表空间 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用户登录,创建一个表,并插入两条数据:

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;

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

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标记为可执行:

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数据表的文章就介绍到这了,更多相关Linux设置定时备份Oracle数据表内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:Linux设置每晚定时备份Oracle数据表的操作命令Linux下Oracle设置定时任务备份数据库的教程Linux 自动备份oracle数据库详解Linux下通过脚本自动备份Oracle数据库并删除指定天数前的备份Linux oracle数据库自动备份自动压缩脚本代码Linux中Oracle数据库备份