




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、DB2-HADR概 述-DB2-高可用 -DB2-双机热备DB2 HADR 概述High Availability Disaster Recovery (HADR) 是数据库级别的高可用性数据复制机制,最初被 应用于Informix数据库系统中,称为High Availability Data Replication (HDR )。IBM 收购Informix之后,这项技术就应用到了新的 DB2发行版中。一个HADR环境需要两台数据 库服务器:主数据库服务器(primary )和备用 数据库服务器(standby )。当主数据库中发生 事务操作时,会同时将日志文件通过 TCP/IP协 议传送到
2、备用数据库服务器,然后备用数据库对 接受到的日志文件进行重放(Replay ),从而 保持与主数据库的一致性。当主数据库发生故障 时,备用数据库服务器可以接管主数据库服务器 的事务处理。此时,备用数据库服务器作为新的 主数据库服务器进行数据库的读写操作,而客户 端应用程序的数据库连接可以通过自动客户端 重新路由(Automatic Client Reroute)机制转移到新的主服务器。当原来的主数据库服务器被 修复后,又可以作为新的备用数据库服务器加入 HADR。通过这种机制,DB2 UDB实现了数据库的灾难恢复和高可用性,最大限度的避免了数据丢失。下图为DB2 HADR的工作原理图:客户錨应
3、用程序.主数据库服务器(PRIMARY)笹用据肯服务器(SIASDHV)f . Autviuafse生散据昨U志文件毎用数据日志文件日蹇抓取注:处于备用角色的数据库不能被访问 下面我们首先从一个配置实例入手来了解 DB2HADR环境的基本配置过程,然后再对 HADR 环境涉及到的一些技术要点展开讨论。回页首快速实例上手要进行这个实例配置过程,你必须拥有DB2UDB En terprise Server Editi on (ESE),笔者 使用的是 DB2 ESE v822 for Linux 32bit (在v8.2的基础上打了 Fixpack9a )。如果您没有 这个版本,可以到IBM官方网
4、站下载试用版(可能需要花点时间填写一些信息),下载链接:https:/www44.software.ibm.eom/webapp/i wm/web/preLoqindo?source=db2udbdl。 另外,笔者使用的是两台DELL PowerEdge 2850作为数据库服务器,安装Redhat Linux Enterprise Server v4.0o这两台机器的主机名 和 IP 地址分别为:DBSERV1 (62)和 DBSERV2 (63)。在下面的配11置过程中我们将DBSERV1作为主数据库服务 器,其实HADR配置好之后,这两台服务器的
5、 角色是可以转换的。为简单起见,我们就釆用 DB2的样本数据库SAMPLE作为配置对象。 配置过程(以下命令均在DB2 CLP中执行):1. 在 DBSERV1 和 DBSERV2 上安装 DB2,并 创建缺省实例db2inst1,服务端口: 50000,我 们使用缺省的实例所有者用户db2inst1,密码:db2inst1 2.使用db2sampl命令在DBSERV1上创建样本数据库SAMPLE3.修改SAMPLE数据库配置参数LOGRETAIN为ON,以使该数据库日志记录方 式改为存档日志。UPDATE DB CFG FOR SAMPLE USING LOGRETAIN ONUPDATE
6、DB CFG FOR SAMPLE USING TRACKMOD ON4.修改索引日志记录参数UPDATE DB CFG FOR SAMPLE USING LOGINDEXBUILD ONUPDATE DB CFG FOR SAMPLE USING INDEXREC RESTART注:这一步并不是必须的。5.备份数据库SAMPLEbackup DB sample TO /database/dbbak其中"/database/dbbak"是笔者用来存放数据 库备份文件的目录,你完全可以指定任何一个 db2inst1有写入权限的其他目录。备份完成之后,在/database/db
7、bak目录下我们 会看到数据库备份映像文件:SAMPLE.0.db2instlNODE0000 CATN000020050726122125001注:你所得到的文件名的时间标志部分肯定和我 的不一样,在下面的恢复数据库命令中要注意做9.配置HADR服务和侦听端口用vi编辑/etc/services 文件(需要切换到root用户),加入下面两行:11.修改备用数据库(DBSERV2 - SAMPLE )的配置参数:UPDATE DB CFG FOR SAMPLE USING HADR_LOCAL_HOST 63UPDATE DB CFG FOR SAMPLE USING H
8、ADR_LOCAL_SVC DB2_HADR_2UPDATE DB CFG FOR SAMPLE USING HADR_REMOTE_HOST 62UPDATE DB CFG FOR SAMPLE USING HADR_REMOTE_SVC DB2_HADR_1UPDATE DB CFG FOR SAMPLE USING HADR_REMOTE_INST db2inst1UPDATE DB CFG FOR SAMPLE USING HADR_SYNCMODE NEARSYNCUPDATE DB CFG FOR SAMPLE USING HADR_TIMEOUT 12012
9、.启动 HADR :首先启动备用数据库服务器的 HADR :DEACTIVATE DATABASE SAMPLESTART HADR ON DATABASE SAMPLE AS STANDBY然后启动主数据库服务器的 HADR :DEACTIVATE DATABASE SAMPLESTART HADR ON DATABASE SAMPLE AS PRIMARY注:如果你先启动主数据库服务器 HADR,那么 你必须保证在HADR_TIMEOUT 参数指定的时 间内(单位为秒)启动备用数据库服务器HADR。 否则将启动失败。OK,到目前为止,我们已经成功配置并启动了DB2 HADR。在下一节中我们
10、将对这个配置好的HADR环境进行一些测试来验证它是否能按照新的主数据库(原备用数据库):CIn 跳 运 态 式$机务聖51志衙 饶 主服主服弄志日间 伙色态歩黨地地时日显心 DR懐星丢本本远远远超主备日fl歩*同接 等近连 主紮已20O5-BJ-26192.168-1-163=DB2_HADR_2=閔彳.佃2k DB2_HfiDR_1-db2inst1-12B,页+ LEbr) = SfieBC0OS.LOG , 2 件,帀.L5M) 弓 5阳卿IWILLCW” 2 (以字节卄=e.£oaOBOflaOOFti2l5F ,eoe60OODO«FA215F备用数据库(原主数据
11、库):件文均 文*cm跳式态心机志隔 ' 主服主服辛志日间 .包态步鑿地地替塑心 庫星丢本本远远远超主备日步>同接豊近连ssfi DB2_HRDR_1=192?18彳*1百d=PB2_HfiDR_2工(lb2instl=120页.LSN) = S0O0OBO8.LOG ,贝,LSH - SOO0OOO6.LOG 以字节甘)-西13::38&67478HBoaaiisaooFAZiF 肿叩朗胸肿血2侶F3.连接到新的主数据库,并查询 HADRTEST表:显然,我们的HADR环境已经可以正常工作了。 读者可以自己再针对数据的修改、删除等进行一 些测试。自动客户端重新路由(Au
12、tomatic Client Reroute )功能也留给读者自己测试。回页首HADR管理操作汇总1.启动和停止HADR使用START HADR命令启动主数据库和备用 数据库的HADR。启动主数据库使用AS PRIMARY子句,启动备用数据库使用 AS STANDBY子句。如果想以其他用户启动HADR,可以通过 USER user-name USING password子句指定用户名和密码:例子:START HADR ON DATABASE SAMPLE USING db2inst1 USING db2inst1 AS STANDBY在启动主数据库的HADR时,如果在数据库 HADR_TIME
13、OUT所指定的时间内未能建立与 备用数据库HADR的连接,启动将失败。这时 候,你可以等排除故障并成功启动备用数据库HADR后再启动主数据库HADR,也可以通过 指定BY FORCE子句强行启动主数据库。例如:START HADR ON DATABASE SAMPLE AS PRIMARY BY FORCE使用STOP HADR停止主数据库和备用数据库的 HADR。如果在活动的主数据库上发出此命令,所有的数 据库连接都被断开,数据库恢复为标准数据库(我们称没有启用HADR的数据库为标准数据 库),并保持联机状态。如果在活动的备用数据库上发出此命令, 将停止 失败。你必须先使用DEACTIVAT
14、EDATABASE命令取消激活,然后再停止HADR。2. 查看HARD的配置及运行状态HADR连接状态:当备用数据库的HADR启动时,它首先进入本 地同步更新状态。并根据本地日志路径配置参数 及日志归档方法的设置检索本地系统中的日志 文件并重放。当本地日志文件重放完毕,备用数 据库进入远程同步暂挂状态。当与主数据库建立 连接之后,备用数据库进入远程同步更新状态。 即主数据库将自己的日志文件通过 TCPIP协议 发送给备用数据库,备用数据库接收到日志文件 并重放,直到所有日志文件都重放完毕,备用数 据库和主数据库进入对等状态。见下图:通过GET SNAPSHOT命令观察主数据库和备 用数据库的连
15、接状态。通过GET DB CFG命令可以查看HADR的配置情况,即HADR相关的几个数据库参数值。3. 接管/故障转移当主数据库发生故障时,备用数据库可以接管主 数据库的服务,成为新的主数据库(称为故障转 移)。当原主数据库修复后,又可以作为备用数 据库加入HADR对。即使主数据库服务器没有 故障,我们通过接管命令(TAKEOVER )切换 主数据库和备用数据库的角色。接管命令只能用 在备用数据库上。HADR提供两种接管方式:紧急接管:当主数据库发生故障时,可以在备用数据库上使 用紧急接管,使备用数据库成为新的主数据库。紧急接管必须指定TAKEOVER命令的BYFORCE子句,例如:TAKEO
16、VER HADR ON DATABASE SAMPLE BY FORCE普通接管:普通接管就是没有使用BY FORCE子句的接 管,例如:TAKEOVER HADR ON DATABASE SAMPLE 这种接管必须在主数据库和备用数据库都正常 运行的情况下使用。如果主数据库发生故障,普 通接管将失败,这时候必须使用上面的紧急接 管。4. 同步方式在上面的配置实例中我们将主数据库和备用数据库的HADR_SYNCMODE参数值设置为NEARSYNC,当主数据库和备用数据库处于对 等状态时,HADR采用NEARSYNC (接近同步) 同步方式管理日志写入。DB2提供了三种日志 同步方式:SYNC
17、(同步):采用SYNC方式时,仅当主数据库日志写入成 功,并收到备用数据库的应答,确保备用数据库 的日志也成功写入的情况下,才认为日志写入成 功。这种方式下的事务响应时间最长,但最大限度的 确保不发生事务丢失。NEARSYNC (接近同步):采用NEARSYNC方式时,当主数据库日志写入 成功,并收到备用数据库的应答,确定备用数据 库已经接收到日志时,即认为日志写入成功。也 就是说,备用数据库接收到的日志并不一定能成 功写入持久存储设备上的日志文件。这种方式下的事务响应时间比 SYNC方式短, 且仅当两台服务器同时发生故障时,才会发生事 务丢失。ASYNC (异步):采用ASYNC方式时,当主
18、数据库日志写入成 功,并将日志发送出去之后,即认为日志写入成 功。此方式并不保证备用数据库能收到日志,这要依赖于TCP/IP网络情况。这种方式下的事务响应时间最短,但产生事务丢 失的可能性也最大5. 自动客户端重新路由(Automatic Client Reroute)要配置自动客户端重新路由,使用 UPDATE ALTERNATE SERVER 命令设置备用数据库信 息(使用方法参考上面的配置实例),这些信息 将被存放在数据库的系统目录中。 请注意:必须 使用此命令来设置备用数据库,而不是HADR_REMOTE_HOST 和 HADR_REMOTE_SVC 数据库配置参数,自动 客户端重新路
19、由不使用这两个参数。当客户端与数据库建立连接时,备用数据库的配 置信息(主机/IP及 端口号)也同时被发送给DB2客户端。当客户端与主数据库的连接被中断时,客户端就使用这些信息连接到备用数据 库,从而最小限度的降低了数据库故障所造成的 影响。需要强调的是,这个过程由 DB2客户端 自动完成,不需要用户用程序干涉。见下图:乳广端丿讪I4数刑库I11获肚哋牛L.u I jj.gjj. “ 一 i -id通过LIST DB DIRECOTRY 命令可以查看系统数据库目录中自动客户端重新路由的配置。6. 使用控制中心管理 HADR在上面的讨论中我们主要通过 DB2 CLP命令来创建和管理DB2 HAD
20、R。实际上DB2的控制中 心也提供了创建和管理 HADR的图形界面,例如:工具-向导-设置高可用性灾难恢复(HADR )数据库。这些功能使用起来都非常简 单,在这里我们就不详细讨论了。但是,笔者强 烈建议尽量多使用DB2 CLP命令来管理DB2 (不仅仅是针对HADR ),不要过于依赖DB2 控制中心,因为很多服务器环境都不安装控制中 心,这时候你如果没有掌握 DB2 CLP命令,那 可就麻烦大了。7. 关于索引日志记录 索引的创建、重建、重组也是 HADR环境中需 要考虑的一个方面,DB2通过数据库配置参数LOGINDEXBUILD 和 CREATE TABLE 或 ALTER TABLE
21、语句中的 LOG INDEX BUILD 选项来控制是否对索引的相关操作进行详细的 日志记录。我们在上面的 HADR配置实例中将 LOGINDEXBUILD 数据库参数配置为 ON,意 为让DB2记录索引创建、重建、重组的完整日 志。这显然会降低主数据库的运行效率并占用更 多的日志空间。但因为备用数据库可以通过重放 日志来重新构建索引,所以当主数据库发生故 障,备用数据库的索引仍然可用。用户可以通过CREATE TABLE或ALTER TABLE语句的LOG INDEX BUILD 选项来对单 个表设定索引日志记录级别。LOG INDEX BUILD选项有三个可选参数:? NULL :这是缺省
22、值,当使用此参数时,表的索引日志记录级别由数据库配置参数LOGINDEXBUILD 的值决定。? ON :使用此参数,数据库配置参数LOGINDEXBUILD 的值将被忽略,DB2将 记录这个表上所有索引维护的详细日志。? OFF :使用此参数时,数据库配置参数LOGINDEXBUILD 的值将被忽略,DB2将 不记录这个表上索引维护的日志。如果表选项LOG INDEX BUILD 设置为OFF, 或者LOG INDEX BUILD 设置为NULL但数据 库配置参数LOGINDEXBUILD设置为OFF, DB2将不记录这些表的索引维护日志,备用数 据库也就无法重放索引维护操作,致使这些索引 在备用数据库上变为无效状态。当主数据库发生 故障,备用数据库切换为新主数据库后, 这些无 效的索引必须重建才能被使用。DB2通过数据 库配置参数INDEXREC来指定在什么时候检查 并重建无效索引。INDEXREC参
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 有关店面的转让合同范文
- 二零二五人才招聘会协议书
- 二零二五房屋产权转让合同
- 数据库应用技术形成性考核册2024
- 个人板房出售合同标准文本
- 专业验房合同样本
- 语言活动小小的和大大的-公开课教案
- 个人地下停车位租赁合同范本
- 信息类维保合同样本
- 买牛肉购销合同标准文本
- 代建项目管理手册
- GB/T 39766-2021人类生物样本库管理规范
- 315食品安全宣传PPT模板
- GB/T 20145-2006灯和灯系统的光生物安全性
- GB 21519-2008储水式电热水器能效限定值及能效等级
- 2023年陕西省学业水平考试物理试真题答案无
- 运输供应商年度评价表
- 旅游项目融投资概述
- 全旅馆业前台从业人员资格证考试答案解析
- 十二经络及腧穴课件
- 立式圆筒形储罐罐底真空试验记录
评论
0/150
提交评论