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. 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/[email protected] 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. [[email protected] backup]$ crontab -e
  2. 42 13 * * * /home/oracle/backup/backup.sh

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

时间: 2024-08-11 03:38:30

Linux中设置定期备份oracle数据库的相关文章

Java代码实现向Oracle数据库中导入已备份的数据库文件

今天将很早就实现的一个Oracle数据库备份功能粘贴出来,这个功能是在大学做阶段设计时写的: import java.io.IOException; /** * Java代码实现向Oracle数据库中导入已备份的数据库文件 * * @author:Gaohuanjie */ public class OracleImportDatabase { /** * 向Oracle数据库中导入已备份的数据库文件 * * @author:Gaohuanjie * @param userName 进入数据库所

rman备份oracle数据库

备份需求和rman备份 oracle数据库的备份相关问答: 1)备份时数据库处于何种状态? 备份时数据库处于OPEN状态,这样数据库可以正常工作. 2)备份的数据备份在什么地方? 备份在本地磁盘. 3)备份的存储空间如何? linux系统下可以用linux的系统命令df -lh来查看磁盘空间. 4)应以什么方式备份? 应以rman的增量(差量)备份,这样备份和恢复都比较简单,所占用的空间比较小. 查看数据库是否为归档状态: SQL>archive log list 更改数据库的归档模式:数据库由

Linux下设置定期执行脚本

下面针对的是非ubuntu环境,会在文章末尾介绍ubuntu的一些区别. 在Linux下,经常需要定期的执行一些脚本从而来实现一些功能. 在Linux下我们用crontab来实现定期的执行脚本这个功能,下面就介绍一下crontab的使用.以及我遇到的一些问题 一. crontab的使用说明 1. crond 是linux用来定期执行程序的命令.当安装完成操作系统之后,默认便会启动此任务调度命令.crond命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作.而linux任

设置TimesTen与Oracle数据库的连通性

设置与Oracle数据库的连通性比较简单,但也是非常重要的工作.毕竟TimesTen与Oracle的集成,相较于独立的TimesTen,是使用更为广泛的场景. 无论是后续建立Cache Group,还是简单的从Oracle加载数据到TimesTen,都需要预先设置TimesTen与Oracle数据库的连通性. 首先看一张概念图: 在TimesTen DSN的设置中,OracleNetServiceName指定了后端Oracle数据库的服务名,而实际的服务定义在tnsnames.ora中,这完全符

linux操作系统下完全删除oracle数据库

1.关掉oracle server 和 background processes ps -ef | grep ora 关掉数据库 shutdown immediate 2.关掉监听 lsnrctl  status 如果开启的话就执行lsnrctl stop 关掉 3.把$ORACLE_HOME下面的文件删掉 用dbca图形界面把数据库删掉 4.把/usr/local/bin 下的三个文件夹 dbhome oraenv coraenv删掉 rm -f dbhome  rm -f oraenv  r

在linux中设置静态ip地址

在linux中设置静态ip地址1.在终端中输入:vi /etc/sysconfig/network-scripts/ifcfg-eth0 2.开始编辑,填写ip地址.子网掩码.网关.DNS等[[email protected] 桌面]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0  #设备名称TYPE=Ethernet #网络类型UUID=bfafdad5-e1c9-4adf-864b-c772e4965ab7ONBOOT=

Linux中SVN定时备份总结

Linux中SVNserver定时备份总结: 本片文章主要是结合前面关于<Linux搭建SVNserver总结>,来说明怎样在Linux下定时备份SVNserver,防止个别情况导致数据丢失的严重后果. 那么实现的流程大致为:我们须要新建一个备份sh脚本,然后使用contab定时运行前面的脚本.以及模拟验证下是否成功,所以还是比較简单的. PS: 至于contab的具体介绍会在兴许总结中列出.在此仅仅需按此操作就可以. <Linux搭建SVNserver总结>地址: http://

linux中使用计划任务进行数据库定期备份

Linux上经常要使用cornd执行定时任务.如果对crontab掌握不是很熟悉,也可以直接使用宝塔面板进行一些简单的定时计划任务.在我的三 丰 免 费 云主 机上 安装了CentOS系统,并默认安装了宝塔管理面板,为了安全起见,在服务器在正常服务期间,手动关闭了宝塔面板服务进程.为使用宝塔面板管理创建mysql数据库. 1.通过SSH登录,开启宝塔面板服务如下图: 2.登录宝塔面板 使用IP地址并通过设置好的端口进行宝塔管理面板登录 3.选择"计划任务"进行定时备份任务的添加 4.添

Aix/Linux下自动备份oracle数据库

曾经有个同事,来回操作开发和生产的数据库,结果误删了生产的数据库,那种心情我想不是一般人能理解的,虽然说oracle可以有方法还原,但并不是彻底的. 所以,在工作中,不管是开发还是维护,备份数据库是非常有必要. 简单实用的晚间自动备份数据库小案例 步骤一.创建备份脚本,暂且命名为orabak.sh #路径名,指定备份的路径 FILEPATH = /oracle/orabak #根据指定日期格式,定义备份数据库文件名 FILENAME = `date + %Y%m%d_%H%M #切换至指定路径,