informix数据库高可用集群技术及应用实现.docx

上传人:b****6 文档编号:6088936 上传时间:2023-01-03 格式:DOCX 页数:25 大小:277.91KB
下载 相关 举报
informix数据库高可用集群技术及应用实现.docx_第1页
第1页 / 共25页
informix数据库高可用集群技术及应用实现.docx_第2页
第2页 / 共25页
informix数据库高可用集群技术及应用实现.docx_第3页
第3页 / 共25页
informix数据库高可用集群技术及应用实现.docx_第4页
第4页 / 共25页
informix数据库高可用集群技术及应用实现.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

informix数据库高可用集群技术及应用实现.docx

《informix数据库高可用集群技术及应用实现.docx》由会员分享,可在线阅读,更多相关《informix数据库高可用集群技术及应用实现.docx(25页珍藏版)》请在冰豆网上搜索。

informix数据库高可用集群技术及应用实现.docx

informix数据库高可用集群技术及应用实现

Informix11.5高可用集群技术及应用实现

本文主要介绍了Informix11.5中提供的高可用集群技术及其安装、配置、管理的基本方法,各种高可用集群技术的选择及应用场景,希望能够使读者能够对Informix11.5高可用集群技术有一个比较全面的了解。

概述

用户的关键业务系统,特别是OLTP系统,都要求提供24X7不间断的应用服务,这就要求数据库系统能够提供强大的高可用能力。

这种能力不仅仅体现在主机及备机的接管方面,同时要能够提供远程容灾能力,以及本地的负载均衡能力。

针对上述对数据库的要求,Informix从版本6开始,就提供了HDR技术,它是通过数据库的事务日志的方式实现了主、备机互相接管的功能,当主机工作时,备机提供只读功能,因此,备机可以提供查询、报表等功能,实现负载分担的功能,当主机发生故障,备机会自动接管,实现主机及备机的接管功能。

从Informix7.2.2版本开始,Informix数据库提供了ER(EnterpriseReplication)数据库复制技术,它也是通过读取数据库日志的方式实现数据同步功能,当源数据库数据发生变化后,Informix数据库通过读取数据库日志,将变化的数据及时同步到目标数据库,采用ER的方式,和HDR不同,HDR数据库的接管是基于数据库服务器的,也就是它的作用范围是基于整个实例的,而ER的作用范围是作用于一个表,你可以灵活定义需要复制哪些数据列及数据行,而且可以灵活定义数据复制的方式,是采用主从方式、汇总方式还是双向复制方式。

从Informix11开始,Informix数据库提供了SDS(SharedDiskSecondary)、RSS(RemoteStandaloneSecondary)、CLR(ContinuousLogRestore)等高可用集群技术,提供了更加强大的高可用能力。

从Informix11.5开始,HDR、SDS、RSS备机都支持读写能力,提供了更强大的负载均衡能力。

同时,从Informix11.5开始,Informix还提供了ConnectionManager功能部件,它可以提供SLA(ServiceLevelAgreement)功能,更好地实现负载均衡的能力,同时提供了FOC(FailOverConnection)功能,实现透明故障接管能力,而且,所有这些对客户端应用来说是透明的。

通过不断的发展与创新,Informix提供了业界领先的高可用集群技术。

下边,我们就具体讲述一下Informix高可用集群技术特点、使用范围及技术实现,希望读者能够对它有一个更全面的理解。

HDR技术

高可用性数据复制HDR技术,从Informix6版本就开始提供,它是采用一主、一备方式,通过读取数据库逻辑日志方式,实现主备机互相切换功能。

在Informix11.5之前,HDR备机支持只读方式,我们通常会通过备机来完成数据查询、报表功能,分担主机系统的压力。

从Informix11.5开始,HDR备机支持读写操作,提供了更灵活的功能。

HDR方式通常用来提供高可用性及hotstandby功能。

HDR工作的基本原理

图1.HDR工作原理示例图

如图中所示,当主数据库服务器开始将共享内存中的逻辑日志缓冲区的内容刷新到磁盘上的逻辑日志时,数据库服务器也将逻辑日志缓冲区的内容复制到主数据库服务器上的数据复制缓冲区。

然后主数据库服务器将这些逻辑日志记录发送至HDR辅助数据库服务器。

HDR辅助数据库服务器将来自主数据库服务器的逻辑日志记录接收到共享内存接收缓冲区(数据库服务器自动将接收缓冲区调节至适当的大小以适合正在发送的数据量)。

然后辅助数据库服务器在整个逻辑恢复中应用逻辑日志记录,,并将这些记录应用到其自己的数据库空间。

HDR数据复制支持同步或异步两种方式。

ONCONFIG配置参数DRINTERVAL的值确定数据库服务器使用同步更新还是异步更新。

如果将DRINTERVAL设置为-1,那么对HDR辅助服务器的数据复制同步发生。

一旦主数据库服务器将逻辑日志缓冲区内容写入HDR缓冲区,它会将那些记录从缓冲区发送至HDR辅助数据库服务器。

仅当主数据库服务器接收到来自HDR辅助数据库服务器的确认(已收到记录)之后,主数据库服务器上的逻辑日志缓冲区清仓才会完成。

使用同步更新时,如果发生故障,那么在主数据库服务器上提交的事务在HDR辅助数据库服务器上不会仍未提交或部分提交。

如果您将DRINTERVAL设置为除-1以外的任何值,那么数据复制将针对HDR辅助服务器异步发生。

主数据库服务器在将逻辑日志缓冲区内容复制到HDR缓冲区之后会清仓逻辑日志缓冲区。

(与上述操作无关)当发生以下条件之一时,主数据库服务器在整个网络上发送HDR缓冲区的内容:

HDR缓冲区变满。

自上次将记录发送至辅助数据库服务器以后,DRINTERVAL配置参数在主数据库服务器上指定的时间间隔已过去。

该更新方法可以提供比同步更新更好的性能。

但是,可能会丢失事务。

HDR处理数据复制的线程

主数据库服务器启动专门的线程来支持数据复制。

如图2所示,主数据库服务器上名为drprsend的线程将整个网络上主服务器缓冲区的内容发送至辅助数据库服务器上名为drsecrcv的线程。

辅助数据库服务器上名为drsecapply的线程将接收缓冲区的内容复制到恢复缓冲区。

logrecvr线程对恢复缓冲区的内容执行逻辑恢复,将逻辑日志记录应用到辅助数据库服务器管理的数据库空间。

OFF_RECVRY_THREADS配置参数指定使用的logrecvr线程数。

数据库服务器启动的其余线程是drprping和drsecping线程,它们负责发送和接收指示两个数据库服务器是否连接的消息。

图2.HDR数据复制线程示例图

HDR主、备机之间采用半双工通信协议,因此对网络延迟非常敏感,通常要求网络要非常稳定,同时距离支持有限,通常在同一个大楼里面。

HDR配置实现

HDR对硬件和操作系统要求:

运行主数据库服务器和辅助数据库服务器的计算机必须相同(相同的供应商和体系结构)。

运行主数据库服务器和辅助数据库服务器的计算机上的操作系统必须相同。

运行主数据库服务器和辅助数据库服务器的硬件必须支持网络能力。

分配给主数据库服务器和辅助数据库服务器的数据库空间的磁盘空间量必须相等。

磁盘空间类型是不相关的;您可以在两个数据库服务器上使用任何原始或格式化的空间组合。

HDR对数据库和数据要求:

数据库必须将事务日志记录打开。

数据必须驻留在数据库空间或Sb空间中。

HDR对配置参数的要求:

以下ONCONFIG参数在每个数据库服务器上都必须具有相同值:

ROOTNAME

ROOTOFFSET

ROOTPATH

ROOTSIZE

MIRROROFFSET

MIRRORPATH

PHYSDBS

PHYSFILE

LTAPEBLK

LTAPESIZE

TAPEBLK

TAPESIZE

LOGFILES

LOGSIZE

DYNAMIC_LOGS

数据库服务器记录逻辑日志文件的添加。

在主服务器上动态添加的逻辑日志文件将在辅助服务器上自动复制。

尽管辅助服务器上的DYNAMIC_LOGS值不起作用,请保持主服务器上DYNAMIC_LOGS与值的同步,以免它们切换角色。

HDR配置参数在复制对中的两个数据库服务器上必须设置为相同的值:

∙DRAUTO

∙DRINTERVAL

∙DRTIMEOUT

HDR相关配置参数说明:

∙DRAUTO:

用来控制主服务器和HDR备用服务器在出现故障时的行为。

其取值范围如下:

o0表示OFF=不要在HDR环境中自动切换服务器类型。

o1表示RETAIN_TYPE=在HDR故障期间自动从辅助切换到标准。

在重新启动HDR时切换回辅助。

o2表示REVERSE_TYPE=在HDR故障时自动从辅助切换到标准。

在重新启动HDR时切换到主要(并将原来的主要切换为辅助)。

∙DRIDXAUTO:

指定如果HDR辅助服务器检测到了毁坏的索引,主服务器是否要自动启动索引复制。

其取值范围如下:

o0-禁用自动索引修复

o1-启用自动索引修复

∙DRINTERVAL:

指定高可用性数据复制缓冲区的清仓之间的最大时间间隔(秒)。

其取值范围如下:

o>=0-异步更新

o-1-同步更新

∙DRLOSTFOUND:

指定dr.lostfound.timestamp文件的路径名。

该文件包含当主数据库服务器遇到故障时在主数据库服务器上提交但未在辅助数据库服务器上提交的事务。

如果在主数据库服务器和辅助数据库服务器之间同步发生更新(即,如果DRINTERVAL设置为-1),那么此参数不适用。

∙DRTIMEOUT:

出现网络超时的时间,以秒为单位。

DRAUTO使用该参数检测故障转移。

其取值范围如下:

>=0秒,缺省为30秒

向集群中添加HDR备用服务器

向集群添加一个HDR备用服务器的具体步骤:

步骤1:

准备SQLHOSTS文件

在主服务器更新SQLHOSTS文件,同时在HDR备用服务器中更新:

productiononsoctcpserver_1prod_tcp

sds1onsoctcpserver_1sds1_tcp

hdr1onsoctcpserver_1hdr1_tcp

rss1onsoctcpserver_1rss1_tcp

clr1onsoctcpserver_1clr1_tcp

步骤2:

配置ONCONFIG文件

保证HDR备用服务器上的DRAUTO、DRINTERVAL、DRTIMEOUT、与根dbspace相关的设置、与物理日志、逻辑日志相关的ONCONFIG配置参数同主服务器上保持一致。

步骤3:

备份主服务器

在主服务器中,使用0级备份:

ontape-s-L0

步骤4:

将HDR备份服务器注册到主服务器

在主服务器中,运行:

onmode-dprimaryhdr

步骤5:

准备HDR备用服务器的磁盘

HDR备用服务器使用的存储必须匹配主服务器的存储(例如,必须匹配dbspace的数量、块的数量、块大小、路径名和偏移量)。

步骤6:

恢复HDR备用服务器上的备份

在HDR服务器上,执行0级备份的物理恢复:

ontape-p

Threequestionswillbeasked.Answerasshownbelow:

Continuerestore?

(y/n)y

Doyouwanttobackupthelogs?

(y/n)n

Restorealevel1archive(y/n)n

步骤7:

使HDR备用服务器进入online模式

完成恢复后,HDR备用服务器将进入recovery模式。

运行以下命令:

onmode-dsecondaryproduction

HDR状态监控

onstat–命令

每次执行onstat时显示的头信息均有字段指示数据库服务器正在作为主数据库服务器还是辅助数据库服务器运行。

以下示例为作为复制对中的主数据库服务器并且处于联机方式的数据库服务器显示头信息:

IBMInformixDynamicServerVersion11.50.UC1

--On-Line(Prim)--Up00:

00:

59--105120Kbytes

以下示例显示作为复制对中的HDR辅助数据库服务器并且处于读写方式的数据库服务器:

IBMInformixDynamicServerVersion11.50.UC1

--Updatable(Sec)--Up00:

00:

59--105120Kbytes

以下示例显示不包含在HDR中的数据库服务器的标题。

该数据库服务器的类型为标准类型。

IBMInformixDynamicServerVersion11.50.UC1

--On-Line--Up00:

00:

59--105120Kbytes

onstat-gdri命令

要获得完整的HDR监视信息,请执行onstat-gdri选项。

显示以下字段:

∙数据库服务器类型(主类型、辅助类型或标准类型)

∙HDR状态(打开或关闭)

∙成对的数据库服务器

∙最后一个HDR检查点

∙HDR配置参数的值

oncheck–pr命令

如果您的数据库服务器正在运行HDR,那么保留页面PAGE_1ARCH和PAGE_2ARCH将保存HDR用于同步主数据库服务器和辅助数据库服务器的检查点信息。

下图中给出相关的oncheck-pr输出示例。

运行HDR的数据库服务器的oncheck-prPAGE_1ARCH输出:

ValidatingInformixDatabaseServerreservedpages

-PAGE_1ARCH&PAGE_2ARCHUsingarchivepagePAGE_1ARCH.

ArchiveLevel0RealTimeArchiveBegan01/11/9516:

54:

07TimeStamp

ArchiveBegan11913LogicalLogUniqueId3LogicalLogPositionb018DR

CkptLogicalLogId3

DRCkptLogicalLogPos80018DRLastLogicalLogId3DRLastLogicalLogPage128

使用SMI表sysdri

查询sysmaster数据库中的sysdri表,同样可以获得完整的HDR监视信息。

sysdri表包含以下各列。

描述

type

HDR服务器类型

state

HDR服务器状态

name

数据库服务器名称

intvl

HDR缓冲区清空时间间隔

timeout

网络超时

lostfound

HDRlost+found路径名

HDR故障恢复

HDR的失败是失去了复制对中数据库服务器之间的连接。

任一以下情况均可能导致数据复制失败:

∙一个数据库服务器的站点上发生灾难性故障(如火灾或大地震)

∙连接两个数据库服务器的联网电缆被破坏

∙一个数据库服务器上的处理中延迟过长

∙辅助数据库服务器上发生磁盘故障(未通过镜像块解决)

HDR故障的检测

数据库服务器将以下任何一种情况解释为HDR失败:

∙超过了指定的超时值。

在正常的HDR操作期间,数据库服务器期待来自对中另一数据库服务器的通信确认。

对中的每个数据库服务器都具有一个ONCONFIG参数DRTIMEOUT,该参数指定秒数。

如果来自对中另一数据库服务器的确认没有在DRTIMEOUT指定的秒数返回,那么数据库服务器会假设发生了HDR失败。

∙主-辅助对中的另一数据库服务器未响应网络上的定期消息传递(pinging)尝试。

无论主数据库服务器是否向辅助数据库服务器发送任何记录,两个数据库服务器均会互相ping。

如果主要-辅助对的一个数据库服务器没有响应四个连续的ping尝试,那么另一个数据库服务器会假设发生了HDR失败。

当数据库服务器检测到HDR失败时,它将写一个消息到其消息日志(例如,DR:

receiveerror)并关闭数据复制。

如果发生了HDR失败,那么两个数据库服务器之间的HDR连接将断开,并且辅助数据库服务器将保持只读方式。

如果辅助数据库服务器在high-availabilitydata-replication失败后保持联机状态,并且DRAUTO配置参数设置为1(RETAIN_TYPE),那么该数据库服务器的类型将自动更改为标准。

如果DRAUTO设置为0(off),那么辅助数据库服务器将顶事尝试重新建立与主数据库服务器的通信。

如果DRAUTO设置为2(REVERSE_TYPE),那么当旧的主服务器发生故障时(而非旧的主服务器重新启动时),在连接结束时,辅助数据库服务器将立即成为主数据库服务器。

RSS技术

从Informix11开始,Informix数据库提供了RSS、SDS、CLR技术,它扩展了以前HDR只支持主、备两台机器,系统可以支持多台RSS、SDS备机,进一步提高了高可用性。

Informix11提出了一种新的通信方式SMX(ServerMultiplexer)用来建立节点之间的网络连接。

SMX采用全双工的通信协议,支持异步通信方式,在低速网络上提供更好的通信连接,简化了节点之间的通信管理,支持加密传输,同一个SMX连接可以支持多个内部功能传输。

图3.SMX通信示意图

RSS自动启动SMX通信方式。

RSS工作的基本原理

为支持RS辅助服务器,主服务器要进行检查以查看是否连接了RS辅助服务器,如果连接,那么将页面复制到用于将该页面发送到RS辅助服务器的日志高速缓存。

图4.RSS数据复制线程示意图

RSS_Send线程将日志页面传输到RS辅助服务器。

很有可能需要发送的下一页不在日志高速缓存中。

在该情况下,RSS_Send线程将直接从磁盘读取日志页。

RSS_Send线程与SMX交互,以使用全双工方式发送数据。

有了全双工通信,线程在发送下一个缓冲区之前不等待来自RS辅助服务器的确认。

在主服务器需要来自RS辅助服务器的确认之前最多可发送32个缓冲区传输。

如果达到32个缓冲区的限制,那么发送线程将等待RSS_Recv线程接收来自RS辅助服务器的确认。

在RS辅助服务器上,RSS_Recv与SMX交互,以接收来自主服务器的日志页。

RSS在很多方面都与HDR相似。

将日志发送到RSS的方式与主服务器将日志发送到HDR辅助服务器的方式很相似。

但是,RSS采用SMX异步通信框架,因此其对主服务器的影响达到最小。

出于该原因,主服务器和RSS辅助服务器之间事务落实或检查点均不是同步进行的。

换句话说,不保证在主服务器上落实的任何事务也在同一时间在RSS辅助服务器上得到落实。

因为RSS辅助服务器是异步进行更新的,所以RSS辅助服务器不能直接提升为主服务器。

相反,它可以提升为HDR辅助服务器,然后可提升为主服务器。

另外,HDR辅助服务器可降级为RS辅助服务器。

尽管RS辅助服务器与HDR辅助服务器类似,但有某些操作是HDR辅助服务器可执行但RS辅助服务器却不支持,例如:

∙RS辅助服务器不支持SYNC方式

∙RS辅助服务器不支持DRAUTO

∙RS辅助服务器不具有同步检查点

∙RS辅助服务器不能直接转换为主服务器

RSS备用服务器的主要作用是提供灾难恢复解决方案。

如同在HDR中一样,主服务器不断将其所有的逻辑日志记录发送给RS备用服务器,不过RS使用的异步方式。

与HDR不同,通信使用全双工协议。

因此RS对网络延迟不是很敏感,并且可以更容易驻留在一个较远的地理位置。

同时,如果节点间通信线路比较差的情况下,页经常采用RS备用服务器方式。

RS备用服务器的一个特点是主服务器并不和RS备用服务器同步检查点,这一点和SD和HDR服务器不同。

因此不能立即替代主服务器;必须首先切换为一个HDR服务器。

RSS配置实现

硬件和软件需求

RS辅助服务器维护物理数据库的完整副本。

出于此原因,以下内容必须与主服务器相同:

∙运行数据库服务器的计算机硬件

∙分配给数据库空间的磁盘空间量

∙创建数据库空间时使用的物理设备中的偏移量

索引页日志记录(LOG_INDEX_BUILDS)

在创建索引时,索引页日志记录将各页写入到逻辑日志,以使高可用性环境中各服务器之间的索引创建同步。

要使用RS辅助服务器,必须启用索引页日志记录。

索引页日志记录将完整索引写入到日志文件,然后将该日志文件异步地传输到辅助服务器。

辅助服务器可以是RS辅助服务器,也可以是HDR辅助服务器。

然后,日志文件事务被读入到辅助服务器上的数据库,减少辅助服务器在恢复期间重新构建索引的需求。

对于RS辅助服务器,主服务器不等待来自辅助服务器的确认,这允许对主服务器上索引的立即访问。

索引页日志记录是使用onconfig参数LOG_INDEX_BUILDS进行控制的。

如果LOG_INDEX_BUILDS设置为1(已启用),那么在主服务器上构建索引然后将索引发送到辅助服务器。

向集群中添加RS备用服务器

向集群添加一个RSS备用服务器的具体步骤:

步骤1:

准备SQLHOSTS文件

集群中的所有服务器必须具有针对其他服务器的SQLHOSTS条目。

productiononsoctcpserver_1prod_tcp

sds1onsoctcpserver_1sds1_tcp

hdr1onsoctcpserver_1

hdr1_tcp

rss1onsoctcpserver_1rss1_tcp

clr1onsoctcpserver_1clr1_tcp

步骤2:

在主服务器上,启用索引页面日志记录

onmode-wfLOG_INDEX_BUILDS=1

步骤3:

在主服务器上,注册新的RS备用服务器

onmode-daddRSSrss1

步骤4:

对主服务器采取0级备份

ontape-s-L0

步骤5:

在RS备用服务器中,恢复备份

ontape-p

Threequestionswillbeasked.Answerasshownbelow:

Continuerestore?

(y/n)y

Doyouwanttobackupthelogs?

(y/n)n

Restorealevel1archive(y/n)n

步骤6:

使RS备用服务器进入online模式

onmode-dRSSmyprim

RSS状态监控

onstat–命令

每次执行onstat时显示的头信息均有字段指示数据库服务器正在作为主数据库服务器还是辅助数据库服务器运行。

以下示例显示作为复制对中的RSS辅助数据库服务器并且处于读写方式的数据库服务器:

IBMInformixDynamicServerVersion11.50.UC1

--Updatable(RSS)--Up00:

00:

59--105120Kbytes

onstat-grss命令

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1