db2数据库实现字符串分割_在DB2通用数据库中使用挂起的I / O分割镜像

本文详细介绍了如何使用IBM DB2 UDB的挂起I/O功能来实现数据库的拆分镜像,以确保24x7的数据可用性。挂起I/O允许在不中断服务的情况下进行数据库镜像,支持克隆、热备用、卸载备份等多种应用场景。通过实例和步骤说明了如何挂起I/O、分割镜像以及初始化和使用这些镜像,强调了在分区环境中的处理方法和调试技巧。
摘要由CSDN通过智能技术生成

对于当今的全球业务而言,保持24x7的高数据可用性至关重要。 IBM DB2 UDB的挂起的I / O功能提供了具有连续系统可用性的联机拆分镜像接口,可以满足这一关键需求。 本文定义并解释了拆分镜像和挂起的I / O的关键概念,并提供了针对几种不同方案的分步说明。

我假设您对DB2有基本的了解(类似于IBM认证的DB2数据库管理员可能具有的知识),以便利用本文的技术细节。

什么是分割镜?

分割镜像是磁盘卷的相同,独立且即时的副本,可以将其附加到其他系统。 DB2 UDB数据库的拆分镜像是指一组相同,独立且瞬时的磁盘卷副本,这些副本包含其所有控制和数据文件,其中包括数据库目录的全部内容,所有表空间容器 , 本地数据库目录和活动日志目录 (如果它不在数据库目录中)。 仅需使用db2inidb命令的snapshot参数拆分活动日志目录才能创建克隆数据库。 其他两个参数, standbymirror ,不需要拆分活动日志目录。

访问拆分镜像不涉及复制。 它取决于存储供应商的实施。 用户必须使用存储供应商的设施来访问拆分镜像。 不应以任何其他方式访问它。

以下是对DB2 UDB数据库的拆分镜像内容的详细说明:

  • 数据库目录:

    创建数据库后,有关数据库的信息(包括默认信息)将存储在目录层次结构中。 分层目录结构是根据db2 create database命令中提供的信息在某个位置db2 create database 。 目录结构显示为“ <数据库路径> / <实例名称> / <节点名称> / SQLnnnnn /”。 在此结构中,名为SQLnnnnn的子目录称为数据库目录 。 该子目录的名称使用数据库令牌并表示数据库。 例如,SQL00001包含与第一个数据库关联的对象,而后继的数据库具有较高的编号:SQL00002,依此类推。

    数据库目录包含数据库控制文件(SQLBP.1,SQLBP.2,SQLSPCS.1,SQLSPCS.2,SQLSGF.1,SQLSGF.2,SQLDBCON,DB2RHIST.ASC,DB2TSCHNG.HIS,SQLOGCTL.LFH,SQLOGMIR.LFH和SQLINSLK),操作数据库所需的默认SMS表空间SQLT *子目录,默认日志路径SQLOGDIR子目录,自动统计信息收集和重组功能的SYSTOOLSPACE子目录以及默认事件监视器的DB2EVENT子目录。

    通过db2 list db directory on <database path>命令db2 list db directory on <database path>发出db2 list db directory on <database path>可以轻松确定与数据库相对应的数据库目录。

  • 本地数据库目录:

    本地数据库目录位于定义数据库的每个路径(对于Windows,为“驱动器”)中。 目录结构显示为“ <数据库路径> / <实例名称> / <节点名称> / sqldbdir /”。 对于从该位置可访问的每个数据库,此目录包含一个条目。 使用拆分镜像解决方案时,建议在数据库路径中创建一个数据库,以便本地数据库目录(“ sqldbdir”)仅具有单个数据库的条目。

  • 表空间容器:

    所有不属于数据库目录的表空间容器都必须是拆分镜像的一部分。 可以使用db2 list tablespacesdb2 list tablespace containers for <tablespace-id>命令找到有关表空间容器的信息。

  • 活动日志目录:

    日志文件的路径应仅包含在克隆数据库的拆分镜像中。 可以使用db2 get db cfg for <database-alias>命令找到有关当前活动日志目录的信息。

图1.拆分DB2 UDB数据库的镜像内容
拆分DB2 UDB数据库的镜像内容

暂停的I / O功能

拆分DB2 UDB数据库的镜像时,重要的是要确保在源数据库上不发生部分页面写入。 确保不进行部分页面写入的一种方法是使数据库脱机,这种状态在真正的24x7生产环境中绝对是不希望的。

为了在拆分镜像过程中提供连续的系统可用性,DB2 UDB提供了在源数据库上挂起I / O的功能,允许您在数据库仍处于联机状态时拆分镜像,而无需任何停机时间。

DB2 UDB的挂起的I / O功能通过挂起源数据库上的所有写活动,消除了部分页面写操作。 当数据库处于写挂起模式时,所有表空间都将置于“ 写挂起”状态(0x10000)。 但是,对数据库的所有操作均正常运行。

这是db2 list tablespaces命令的样本输出,显示了表空间状态:

清单1.表空间状态显示写入已暂停
Tablespace ID                           = 0
Name                                    = SYSCATSPACE
Type                                    = System managed space
Contents                                = Any data
State                                   = 0x10000
Detailed explanation:
    Write Suspended

需要磁盘I / O的事务(例如从缓冲池中清除脏页或从日志缓冲区中清除日志)可能会等待。 但是,一旦恢复了对源数据库的写操作,这些事务将正常进行。

使用挂起的I / O功能创建的拆分镜像将保持“写入挂起”状态,直到由DB2使用db2inidb命令对其进行初始化为止。 db2inidb命令提供了以三种不同方式(克隆,备用或镜像)初始化拆分镜像的选项,从而使用户可以满足其使用的各种目标。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值