联机备份Oracle数据实施是什么?

数据库 Oracle
以下的文章主要是介绍联机备份Oracle数据,其在实际中的应用比例还是占为多数的,如果你对这一新开发的技术,以下的文章将会揭开它的神秘面纱。

我们大家都知道在联机备份Oracle数据中,联机备份是要求在 ARCHIVELOG 的模式里执行对相关数据库的实际操作。在一个在线商店中,Oracle数据库必须是 24x7 都处于打开状态的,所以,让用户进行脱机备份而不访问数据库是不可能的。

在这种场景中,应该在 ARCHIVELOG 模式下运行数据库,在该模式中,事务将继续运行,同时,备份处理也在继续。

与脱机备份不一样,联机备份只要求备份数据文件和控制文件。脱机数据库的备份单位是整个数据库,而联机备份的备份单位是一些或全部表空间。

在 Oracle 中,联机备份的全部思想是,当用户执行事务时,将对Oracle数据库所做的所有更改(提交或未提交的)都存储到重做日志缓冲区中,随后由 LGWr 进程把它们写到联机重做日志文件中。重做日志是以循环的方式写入的;因此,在重写它们之前,需要通过启动 ARCH 进程来手动或自动对重做日志进行归档。

当记录了所有事务并在以后通过多路复用进行归档时(使用参数 LOG_ARCHIVE_DUPLEX_DEST),如果需要进行媒介恢复,那么可以使用这些归档的重做日志进行恢复。

注意,使用联机备份本身无法保证您不丢失数据。像通过多路复用(放在不同的位置)控制文件使数据库免疫、使用联机重做日志和归档重做日志这样的步骤,都是避免单点故障所必需的。

在 Oracle 中,要从默认的脱机备份切换到具有自动归档的联机备份,您需要执行下面的操作:

在 init.ora 中,用适当的值填写参数 LOG_ARCHIVE_START、LOG_ARCHIVE_DEST、LOG_ARCHIVE_FORMAT 和 LOG_ARCHIVE_DUPLEX_DEST 和 LOG_ARCHIVE_DEST_N。

关闭和启动装入(Mount)。

在 archivelog 模式下操作Oracle数据库。

打开数据库。

验证归档日志清单。

归档所有日志。

备份所有新创建的日志。

通过执行命令“Alter Tablespace ts_name Begin Backup”,将任何或所有联机表空间置于联机备份模式来启动联机备份。当发出这个命令时,处于联机备份模式的所有数据文件都将被发放检查点 SCN。换句话说,将把数据缓冲区的所有脏位刷新到数据文件。在初始检查点 SCN 后,就不会再发放新的检查点 SCN。

对于没有处在联机备份模式的那些数据文件,随后的检查点将在它们的文件头中添加 SCN。当发出 “Alter Tablespace ts_name End Backup”时,在联机备份数据文件的的文件头中再次记录了检查点 SCN。Begin Backup 和 End backup 命令让 Oracle 知道要重做什么操作,及在前滚会在什么地方终止。

Oracle 建议在 Begin backup和 End backup命令之间耗用最少的时间。此外,应该在这段时间内尽量少进行用户活动,这是由于 Oracle 会在***次更改块时记录下整个块的映像。对于联机备份数据文件,这将导致生成大量的重做日志。实际上,在执行 Begin backup后,接下来应该立刻执行系统复制,然后由 End backup来快速结束操作。

备份是严格按照顺序进行的,这意味着在备份了表空间 1 中的Oracle数据文件后,将继续备份表空间 2 中的数据文件。

对于联机备份,需要特别注意 SYSTEM 表空间和回滚段表空间。同时,还需要确保只要对数据库的模式进行了更改,就要对控制文件进行备份。备份脚本应该反映***的模式。

DB2UDB 联机备份

DB2UDB 执行时间点恢复的机制类似于 Oracle。要了解 DB2UDB 联机备份和恢复,就需要了解归档日志记录。有三种我们需要熟悉的日志定义:

活动日志 —— 该日志包含没有提交或回滚的事务,或者已提交但尚未刷新到磁盘的事务。

联机归档日志 —— 该日志包含已提交并且被记录到硬盘的事务的信息,和活动日志位于同一目录。

脱机归档日志 —— 如果将联机归档日志从活动日志所在目录移动到其他目录或磁带中,就成为了脱机归档日志。

有许多与日志记录有关的配置参数:

LOGFILSIZ —— 每个日志文件的大小,默认值是 250,单位为 4KB。

LOGPRIMARY —— 主日志文件的个数(默认值是 3)。

LOGSECOND —— 主日志文件占用满时,可以分配的二级日志文件的个数。当把这个参数设为 -1 时(版本 8),可以使用无限数量的活动日志。

NEWLOGPATH —— 用来更改日志文件的存储位置。要想使该参数生效,需要重新激活数据库。

MIRRORLOGPATH —— 日志文件的镜像路径,以避免单点故障。

OVERFLOWLOGPATH —— 指定前滚期间可以在哪些目录搜索需要的日志,以允许前滚操作能访问多个目录中的日志。

USEREXIT——用于启动用户出口功能,进行日志的自动归档。

BLK_LOG_DSK_FUL——当 DB2无法在活动日志路径中创建新日志文件时,防止生成磁盘已满错误。

为了使用联机备份,必须打开归档日志记录。通过将 LOGRETAIN 设为 ON,可以打开归档日志记录。

归档日志记录是一种不同于循环日志记录的日志记录机制,因为循环日志记录重写了提交的日志,而归档日志记录归档了提交的日志。

在归档日志记录中,不能重用已经变成归档日志的日志。要移动那些联机归档日志,您需要手动移动它们或者使用用户出口程序(user exit)来移动它们。

默认情况下,活动和联机归档日志保存在 SQLOGDIR 目录中。NEWLOGPATH 数据库配置参数确定了将在哪里存储未来的活动归档日志。要想使 NEWLOGPATH 参数生效,需要停用数据库(目的是关闭所有活动日志文件)。然后,重新激活Oracle数据库将导致在新路径中创建新日志文件,原来的归档日志将留在原来的路径中。

当进行联机备份时,将记录所有的数据库事务。在完成联机备份之后,DB2将强行关闭当前活动日志,并对其进行归档,

要防止脱机归档日志的单点故障,比如媒介失败,则应该使用日志镜像。MIRRORLOGPATH 是用来指定镜像路径的配置参数,它允许 DB2将相同日志文件的第二份副本写入不同目录中。您需要重新激活数据库,以使 MIRRORLOGPATH 配置参数变得有效。

如果将副本写入镜像日志路径时发生问题,那么 DB2将在管理通知日志中写入消息,指出已经碰到错误。DB2将继续把日志记录写入能工作的日志路径中。不需要同步日志路径。要确定哪个日志是活动的,哪些日志是归档的,请使用 DB2命令 GET DB CFG 来查看“***个活动日志文件”。该命令提供了目前活动的日志文件,因此被归档的日志将是那些比当前日志更早的日志。

此外,诸如数据库、表空间或增量的备份的每个备份操作都将包括恢复历史文件(RHF)的一个副本。您可以使用历史文件中提供的信息,将整个数据库或数据库的一部分恢复到某个时间点。每个数据库都会创建一个恢复历史文件,并且在下列情况下会自动对该文件进行更新:

备份数据库或表空间。

恢复数据库或表空间。

前滚Oracle数据库或表空间。

创建表空间。

修改表空间。

休止表空间。

重命名表空间。

删除表空间。

加载表。

删除表。

重组表。

【编辑推荐】

  1. 深入高性能的Oracle动态SQL开发
  2. Oracle字段的转字符串实际操作方案
  3. Oracle SQL的优化规则解析
  4. 闲谈Oracle应用数据库系统设计与开发简介
  5. Oracle SQL的优化的规则描述 

 

责任编辑:佚名 来源: 博客园
相关推荐

2010-04-14 10:32:42

Oracle数据

2010-04-16 11:00:50

联机备份Oracle

2010-04-22 12:26:10

Oracle数据

2013-11-21 10:23:50

ARTAndroid

2009-11-18 16:39:33

Oracle数据库联机

2023-08-03 15:57:08

数据中心综合布线

2010-11-15 11:28:21

oracle自动启动

2018-08-20 09:34:13

数据中心备份系统

2015-08-21 18:58:05

亚马逊EBS备份增量备份

2013-07-26 15:04:11

SOA虚拟化

2017-04-14 10:11:37

闪存备份用例

2009-07-03 09:44:30

Oracle Data

2009-11-20 15:10:38

Oracle数据备份

2013-07-09 10:04:23

2010-04-30 12:09:26

Oracle数据库

2011-05-17 15:02:15

ORACLE数据库备份

2010-04-14 09:41:10

Oracle数据备份

2010-04-28 12:11:56

Oracle ASSM

2010-04-20 16:04:22

Oracle管理员

2009-11-20 14:08:39

Oracle数据库备份
点赞
收藏

51CTO技术栈公众号