您好, 访客   登录/注册

基于Oracle 11g的备份恢复策略的研究与实现

来源:用户上传      作者:

  摘要:21世纪是一个信息化的时代,传统的纸质记录信息已经不能满足我们的需求。Oracle数据库是目前世界上主流的数据库,具有存储量大、稳定性强、灵活性高等特点,被广泛应用于国防、航空、医疗等领域。数据库可能会因为设备故障、病毒攻击、操作系统故障等因素造成数据的丢失,如果DBA没有对数据库进行备份,那么将会带来巨大的损失,因此我们必须认识到备份与恢复的重要性,做到防患未然。本文将对oracle数据库的备份与恢复策略展开介绍。
  关键词:Oracle数据库;备份;RMAN
  中图分类号:TP311      文献标识码:A
  文章编号:1009-3044(2019)13-0008-02
  大数据的时代,信息化和数字化也是各行业企业的发展趋势,因此我们对数据的安全性有了更高的要求,对数据的备份和数据的恢复技术的重要性更加突出。对于目前运行正常的Oracle数据库来说,虽然发生故障的可能性很小,但发生的可能性还是存在,还是存在丢失数据的可能性。目前还有很多生产数据库依然没有备份,一旦当灾难来临的时候,就会因为没有备份或者没有完善的恢复流程而手忙脚乱。对数据库进行备份就相当于买了保险,这个保险可以使DBA在Oracle发生故障时胸有成竹。
  数据库的物理备份、恢复和日常的备份、恢复文档类似。简单来说,物理备份数据库就是将文件从一个地方物理地复制到另一个地方,数据库的恢复就是将损坏的文件从备份中复制回来。目前较为常用的三种备份方法是热备份、冷备份、RMAN备份。下面就基于Oracle  11g数据库的三种常用的备份恢复策略进行探讨。
  1数据库的备份与恢复策略的研究
  1.1引起Oracle故障的类型
  一个运行很正常的数据库可能会因为一些因素导致数据库发生故障,常见的类型故障有:介质故障、用户进程故障、实例故障、用户错误故障等,下面将介绍几种常见故障的类型。
  ⑴介质故障
  介质故障是导致一个或者多个数据库文件(数据文件、控制文件或重做日志文件)丢失或损坏的故障,该故障会导致数据库文件或者磁盘不能读或者不能写。
  ⑵用户进程故障
  当用户程序出错而无法访问Oracle数据库时,就会发生用户进程故障。用户进程故障只会导致当前用户无法操作数据库,但不会影响其他用户进程,当用户进程出现故障时,进程监控程序(PMON)会自动执行故障恢复。
  ⑶实例故障
  当Oracle数据库实例由于硬件或软件问题而无法继续运行时,就会发生实例故障,硬件问题包括意外断电,而软件问题可能是服务器操作系统崩溃。如果发生实例故障,Oracle会自动完成实例修复。实例修复将数据库恢复到与故障之前的事务一致状态,Oracle会自动回滚未提交的数据。
  ⑷用户错误
  应用程序逻辑错误或者用户错误更新、删除导致数据库的数据更改错误。
  1.2 数据库的备份策略角度分类
  Oracle数据库的备份是对数据库中的数据文件、控制文件、在线日志文件等进行备份。根据数据库的备份角度可以分为以下3种。
  ⑴全备份
  数据库的全备份又称作0级备份,全备份是备份某一个时间点上的所有数据,这种备份的优点是操作简单、备份较完整,缺点是恢复的数据量相当大,存在很多的重复信息,需要花费的时间和空间比较大。
  ⑵差异增量备份
  差异增量备份是只备份上一次备份以后发生变化的文件,上一次备份可以是全备份也可以是差异增量备份或者积累增量备份,该备份的优点是备份数据量小,需要时间短,节省空间,缺点是要依赖之前的备份记录。例如:星期天做了全备份,星期一至星期六则分别备份前一天变化的数据文件。
  ⑶累计增量备份
  累计增量备份是备份上一次全备份以后发生变化的文件,这种备份需要备份所有增量备份的数据,备份消耗的时间比差异备份时间长。例如:星期天做了全备份,星期一至星期六则备份自星期天以来发生变化的数据文件。
  1.3 数据库备份恢复原理
  (1) 数据库的冷备份及恢复
  数据库的冷备份指的是数据库处于关闭或者MOUNT状态下的备份,又称作脱机备份。备份文件包括数据文件,日志文件和控制文件。
  尽管冷备份适用于任何模式下的数据库,但还是建议开启归档模式后进行冷备份。当数据库发生灾难时,只要归档日志和在线日志存在,归档模式下的冷备份可以做到数据不丢失。
  如果数据库处于非归档模式下的话只能使用冷备份的方式进行备份,当发生灾难的时候,只要控制文件,归档日志文件、在线日志文件没有损坏,可以将冷备份的数据文件和复制到原目录中,然后应用归档日志和在线日志,就可以做到数据的不丢失。
  (1)數据库的热备份及恢复
  数据库的热备份指的是处于open状态下利用操作系统命令备份数据库,又称作联机备份。热备份常用于7*24小时不断运行的数据库的备份,该备份需要备份数据文件,归档日志文件,并且该备份必须要求数据库处于归档模式。
  由于热备份是在数据库处于运行状态下进行,备份可能会碰到分裂块的问题,所以在数据文件头部通过Begin Backup设置标记位,判断是否需要在日志文件中保存发生变化的数据块信息。
  热备份的数据库恢复是通过操作系统命令将热备份的数据文件复制到原目录中,然后应用归档日志文件,将数据库打开。
  (3)使用RMAN备份和恢复数据库
  RMAN可以通过语句实现数据库、数据文件、控制文件等文件的备份,运用该方法备份数据文件一般要求数据库处于归档模式,如果数据库处于非归档模式下,则只能在MOUNT状态下使用RMAN备份数据库。   RMAN可以对数据文件进行全备份,也可以对增量备份,但是控制文件和日志文件只能进行全备份,如果进行增量备份,RMAN也会读取整个数据文件,但只会备份上次备份以后发生变化的那一部分。 RMAN备份可以不备份空白数据块,从而缩短了备份的时间,也减小了一定的空间。
  RMAN备份恢复具有一些明显的优势,该备份执行期间不需要人工干预,减少了误操作的机会,并且RMAN可以有效地将备份和恢复结合起来,它可以自动生成备份日志和自动备份控制文件。但是RMAN也存在一些缺点,因为RMAN是全自动的,所以备份过程是不透明的,RMAN备份的数据只有通过RMAN才能恢复,其他恢复的方法是没有用的。
  2 数据库的备份与恢复策略的实现
  2.1 热备份数据库
  锁定数据文件头的SCN值
  alter database begin backup;
  更改数据库为归档模式
  alter database archivelog;
  将数据库设置为备份模式
  alter tablespace user begin backup;
  查看处于备份状态的所有文件
  select * from v$backup;
  备份表空间的数据文件
  host copy D:\dkir\zhangsan.DBF  E\lisi;
  2.2 热备份的数据库恢复
  将备份文件恢复到原目录中
  host copy E:\lisi\zhangsan.BDF  D:\dkir\zhangsan.BDF;
  表空间设置为联机状态
  alter tablespace online;
  2.3 RMAN备份数据库
  数据库的全量备份,该方法不会备份空白数据块
  backup database;
  数据库的镜像备份,该方法产生的备份集大小和表空空间大小相同
  Backup as copy database;
  表空间的全量备份,不会备份空白数据块(zhangsan为表空间名)
  backup tablespace zhangsan;
  备份数据文件(5为5号数据文件)
  backup datafile 5;
  备份控制文件
  backup current controlfile;
  备份SPFILE参数文件
  backup spfile;
  备份归档日志文件
  Backup  archivelog all;
  2.4 RMAN备份的数据库恢复
  数据库的恢复
  recover database;
  表空间的恢复(zhangsan为表空间名)
  recover tablespace zhangsan;
  恢复数据文件(5为5号数据文件)
  recover datafile 5;
  恢复控制文件
  restore controlfile from ‘orac/backup/sns.bpk’;
  恢复SPFILE参数文件
  Restore  spfile to  ‘/oracle/spfile/spfilea.ora ’ from ‘ordata/backup/file.bkp’;
  恢復归档日志文件(恢复56号到58号归档日志)
  Restore  archivelog from logseq  56 until logseq 58;
  3 结语
  本文首先介绍了Oracle备份恢复在日常工作生活中的重要性,然后介绍了引起Oracle故障的几种常见类型,再介绍了三种常用的Oracle数据库备份恢复策略的原理,最后介绍了三种备份恢复策略的具体实现。数据库DBA应该透彻理解备份恢复的原理,然后根据具体问题选择相应的策略,从而保证数据的安全性。
  参考文献:
  [1] 林树泽,卢芬,柳冬青.Oracle DBA 高可用、备份恢复与性能优化[M].清华大学出版社,2015.
  [2][美]Thomas Kyte Darl Kuhn.Oracle编程艺术-深入理解数据库体系结构(第3版) [M].人民邮电出版社,2016.
  [3][美]塔里克法鲁克(Tariq Farooq)迈克阿尔特(MikeAult Paulo Portugal).Oracle数据库问题解决方案和故障排除手册[M].电子工业出版社,2018.
  [4]杨少敏,王红敏.Oracle 11g数据库应用简明教程[M]. 清华大学出版社,2010.
  [5] 刘宪军.Oracle备份、恢复与迁移[M].机械工业出版社,2017.
  【通联编辑:光文玲】
转载注明来源:https://www.xzbu.com/8/view-14910151.htm