科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道DB2日志传送基础知识简介

DB2日志传送基础知识简介

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

日志传送是提供冗余故障转移系统的相对简单和廉价的方法。它易于设置和维护,并可用来支持本地位置和远程位置两种情形。

来源:IT专家网 2008年6月4日

关键字: IBM 数据库 DB2

  • 评论
  • 分享微博
  • 分享邮件

有哪些选项可用?

用 DB2 实现日志传送有多种方法。本文讨论了一些较为流行的方法。

在所有情况下,备用服务器都需要一个定期发出 db2 rollforward db to end of logs 命令的调度作业。这个命令运行的频率决定了在故障转移情形下使备用服务器可用的速度。

这种频率还可以用作保护数据库不受应用程序错误破坏的方法。例如,如果备用服务器一直保持比主服务器落后几小时的状态,一个应用程序破坏了数据库中的数据,那么可以将数据库故障转移到备用服务器,以“回退”毁坏的数据,而对用户影响却很小。

所有日志传送配置都是用用户出口程序实现的。这是唯一可以用来在 DB2 中管理日志文件的方法。当一个日志文件满了的时候,DB2 记录器就将它归档。然后由 db2uext 可执行文件负责处理该日志文件。

日志传送是否有不同的类型?

日志传送有两种方法。在 拉出方法中,备用服务器在需要时从中央共享位置(如日志归档目标)拉出日志文件。在 推方法中,主服务器确保当它归档主日志文件时使这些日志文件驻留在备用服务器上。

DB2 将日志文件归档到用户出口程序 db2uext2 所指定的目标目录中。该用户出口程序的样本位于 DB2 实例目录 sqllib/samples/c 中。其中包括了用于磁盘、磁带和 Tivoli? Storage Manager 的示例。

拉出方法

拉出方法涉及配置主系统上的用户出口程序,以将日志文件归档到主服务器和备用服务器都有权访问的目标设备上。备用服务器不会收到日志文件已归档的通知,而且必须检查归档目标路径。可以通过使用 db2uext2.cdisk 或 db2uext2.cadsm (在 DB2 未来的版本中将重命名为 db2uext2.ctsm )样本用户出口程序来做到这一点。用户出口可执行文件必须位于主系统和备用系统的缺省 DB2 实例路径中。

当在备用服务器上调用前滚数据库命令时,DB2 记录器自动尝试从归档目标路径中检索下一个连续的日志文件。前滚操作持续检索日志文件,直到再没有需要处理的文件为止。

推方法

使用推方法,可以修改用户出口程序,将日志文件复制或 FTP 到备用服务器的活动日志路径或在备用服务器上可以访问的溢出日志路径。可以通过修改 db2uext2.cdisk 样本程序,将备用服务器的日志路径指定为目标来实现这一点。

当在备用服务器上调用 roll forward db 命令时,DB2 记录器自动尝试从归档目标路径检索下一个连续的日志文件。前滚操作持续检索日志文件,直到再没有需要处理的文件为止。

如何设置?

无论使用拉出方法还是推方法,大部分设置过程都与下面所说明的步骤类似:

将数据库配置为启用用户出口程序和日志归档。做完这一点之后,数据库将处于备份暂挂状态。这个备份映像将成为恢复的初始起点,应该将它保留到执行下一次完整数据库备份为止。

将用户出口可执行文件置于 DB2 实例缺省搜索路径中的某个位置。DB2 用户出口程序的样本源代码模块位于 DB2 实例 sqllib/samples/c 目录中。它们是:

Db2uext2.cadsm — 对 Tivoli Storage Manager 的支持,也称为 ADSM

Db2uext2.cdisk — 对磁盘的支持

Db2uext2.ctape — 对本地磁带的支持,仅可用于 UNIX? 系统

Db2uext2.cxbsa — 对 XBSA Draft 0.8 客户机的支持

这些样本程序中的每个都只需要稍作修改(如 buffer_size 、 audit_log_activation 、 audit_log_path 、 error_log_activation 和 error_log_path )。每个样本程序都包含一旦完成修改就必须发出的准确的编译语句。

也有一些第三方供应商(如 Veritas、Legato 和 SAP)提供他们自己的 DB2 用户出口二进制代码,所有这些都可以用来实现日志传送。

初始化备用服务器的数据库。可以通过(联机或脱机)恢复主服务器的完整 DB2 备份映像,或者通过使用分离镜像副本来做到这一点。有关使用分离镜像副本的详细信息将在下面描述。在这两种情况下,备用数据库的硬件都不必与主数据库的硬件相同。处理器和磁盘的个数和大小都可以完全不同。唯一的限制是备用数据库上每个表空间的大小至少要和主数据库上的一样大。这是为了防止出现这样的情况: 备用系统的空间已经用尽,而主系统仍在继续增长。如果物理磁盘布局不同,那么就需要进行重定向恢复来初始化备用数据库。

在备用系统上配置调度作业以便定期发出 db2 rollforward to end of logs 命令。这样会处理从主服务器接收的日志记录,并使其备用服务器的日志保持最新。

现在备用服务器已经就绪。

如果“四个九”不够好,那该怎么办呢?

有许多办法可确保在日志传送配置中做到零数据丢失。但是,需要额外的配置和/或硬件。让我们研究一些实现无数据丢失备用服务器的较流行的方法。

通过建立镜像进行日志传送

确保无数据丢失的方法之一是制作用于包含日志文件的卷的镜像。可以使用操作系统的磁盘/卷镜像功能来实现这种方法。使用这种方法时,写入主数据库的每条日志记录也会被写入备用数据库。每条日志记录都被写入到这两个系统中,这样确保了无数据丢失。这种方法的缺点在于与两次磁盘写入操作相关的性能成本,其中一次写入操作有可能是远程的。

通过双记录进行日志传送

另一种避免数据丢失的方法是利用 DB2 的双日志记录功能。当使用这种功能时,DB2 将同一日志记录写入到两个地方。这两个地方中的一个有可能是远程安装的文件系统。DB2 试图将每条日志记录写入到两条日志路径。如果其中一条路径发生错误,则将错误消息记录到 db2diag.log 文件,而处理将继续进行。如果对其中一条路径的写入操作失败,那么除非活动日志文件已满,否则 DB2 不会尝试再向该路径进行写入操作。DB2 也不会在重新建立连接之后再次同步这两个日志路径。仅当主系统和备用系统之间的网络连接高度可靠时,这种方法才是可行的。

利用智能存储系统

现在,有许多智能存储系统(如 IBM ESS、EMC 和 HDS)可供使用,它们为本地或远程存储系统提供了磁盘镜像能力。这些系统中的每一个都提供了制作文件系统镜像的同步或异步方法。有了智能存储系统,主系统和备用系统之间日志文件镜像的实现就会得到极大的简化并且十分可靠。

结束语

总之,日志传送是提供冗余故障转移系统的相对简单和廉价的方法。它易于设置和维护,并可用来支持本地位置和远程位置两种情形。这种灾难恢复方法不会增加现任数据库管理员的负担,因为一旦完成设置,它可以自动运行。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章