ARCHIVELOG模式中联机备份Oracle数据

数据库 Oracle
本文就ARCHIVELOG模式中联机备份Oracle数据的操作予以说明。因为在ARCHIVELOG模式中,事务将继续运行,同时,备份处理也在继续。可以为开发人员提供高效的数据备份。

本文就ARCHIVELOG模式中联机备份Oracle数据的操作予以说明。因为在ARCHIVELOG模式中,事务将继续运行,同时,备份处理也在继续。可以为开发人员提供高效的数据备份。

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

在 联机备份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 模式下操作数据库。

打开数据库。

验证归档日志清单。

归档所有日志。

备份所有新创建的日志。

通过执行命令“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 中的数据文件后,将继续备份表空间 2 中的数据文件。

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

DB2UDB 联机备份

DB2UDB 执行时间点恢复的机制类似于 Oracle。要了解 DB2UDB 联机备份和恢复,就需要了解归档日志记录。有三种我们需要熟悉的日志定义:
活动日志 —— 该日志包含没有提交或回滚的事务,或者已提交但尚未刷新到磁盘的事务。
联机归档日志 —— 该日志包含已提交并且被记录到硬盘的事务的信息,和活动日志位于同一目录。
脱机归档日志 —— 如果将联机归档日志从活动日志所在目录移动到其他目录或磁带中,就成为了脱机归档日志。

#p#

有许多与日志记录有关的配置参数:
LOGFILSIZ —— 每个日志文件的大小,默认值是 250,单位为 4KB。
LOGPRIMARY —— 主日志文件的个数(默认值是 3)。
LOGSECOND —— 主日志文件占用满时,可以分配的二级日志文件的个数。当把这个参数设为 -1 时(版本 8),可以使用无限数量的活动日志。
NEWLOGPATH —— 用来更改日志文件的存储位置。要想使该参数生效,需要重新激活数据库。
MIRRORLOGPATH —— 日志文件的镜像路径,以避免单点故障。
OVERFLOWLOGPATH —— 指定前滚期间可以在哪些目录搜索需要的日志,以允许前滚操作能访问多个目录中的日志。
USEREXIT——用于启动用户出口功能,进行日志的自动归档。
BLK_LOG_DSK_FUL——当 DB2无法在活动日志路径中创建新日志文件时,防止生成磁盘已满错误。

为了使用联机备份,必须打开归档日志记录。通过将 LOGRETAIN 设为 ON,可以打开归档日志记录。
归档日志记录是一种不同于循环日志记录的日志记录机制,因为循环日志记录重写了提交的日志,而归档日志记录归档了提交的日志。

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

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

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

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

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

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

【编辑推荐】

  1. 修改Oracle存 储过程所需代码
  2. 对Oracle存储过程的总结
  3. 实现Oracle存 储过程的实际应用的代码 
  4. 深入高性能的 Oracle动态SQL开发 
  5. Oracle SQL的 优化规则解析 
责任编辑:佚名
相关推荐

2010-04-14 10:32:42

Oracle数据

2010-04-16 15:24:00

Oracle数据

2010-04-22 12:26:10

Oracle数据

2009-11-18 16:39:33

Oracle数据库联机

2010-04-14 17:57:52

Oracle数据库

2011-08-02 10:37:27

Oracle数据库archivelog文

2017-06-06 08:10:00

Oracle

2010-04-21 14:38:57

2009-07-03 09:44:30

Oracle Data

2009-11-20 15:10:38

Oracle数据备份

2011-05-17 15:02:15

ORACLE数据库备份

2010-04-14 09:41:10

Oracle数据备份

2009-11-20 14:08:39

Oracle数据库备份

2009-04-03 10:54:49

Oracle备份恢复

2010-04-09 15:35:28

Oracle数据库

2010-04-19 12:54:01

Oracle数据库

2011-05-17 14:19:28

Oracle异地数据库自动备份

2009-11-20 14:33:41

Oracle Arch

2010-02-03 09:16:01

DB2

2010-04-12 10:40:49

Oracle数据库
点赞
收藏

51CTO技术栈公众号