Informix Dynamic Server的HDR环境搭建最佳实践.docx
- 文档编号:23503148
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:21
- 大小:165.52KB
Informix Dynamic Server的HDR环境搭建最佳实践.docx
《Informix Dynamic Server的HDR环境搭建最佳实践.docx》由会员分享,可在线阅读,更多相关《Informix Dynamic Server的HDR环境搭建最佳实践.docx(21页珍藏版)》请在冰豆网上搜索。
InformixDynamicServer的HDR环境搭建最佳实践
InformixDynamicServer的HDR环境搭建最佳实践
目录
概述4
IDS11.5中HDR的完整功能介绍4
服务器环境4
配置操作系统信任关系5
确认rsh已经安装并且启动6
针对Informix用户配置rsh6
验证rsh配置6
HDR配置7
前提条件7
配置SQLHOSTS7
配置ONCONFIG7
建立HDR9
HDR相关参数介绍12
HDR使用示例14
创建示例数据15
应用示例15
容灾恢复实验16
几个常见问题18
在同一台机器搭建HDR实验环境18
一个常见的HDR启动问题18
DRAUTO=2时需要注意的一个问题18
关于对chunks/spaces的操作19
关于BLOB和CLOB数据类型19
关于RAWtable19
IDS11.5HDR与IDS9.4HDR的比较20
结束语20
概述
随着IDS在电信、银行、保险等各行业应用的发展,IDS数据库灾备系统尤其是异地灾备系统的建设显得越发重要。
大家知道,HDR技术是非常方便、高效、实用的异地容灾备份系统解决方案。
因而,我们这里将针对IDS的使用者,详细介绍IDS11.5中的HDR技术,从搭建HDR实例讲起,包括一些常见的服务器状态转移场景、典型的HDR灾难恢复以及11.5相比9.4的HDR新功能等。
本文包含了我们对IDS11.5HDR相关官方文档的解读,也是我们搭建实际HDR环境最佳实践的总结报告。
IDS11.5中HDR的完整功能介绍
在11.5中HDR的功能已经相当完善,这里做一个简要介绍:
∙灾难发生时应用程序可以在等待一个超时时间以后,自动平滑过渡到可用的辅助服务器,不需要人工干预,大大提高了应用程序的可用性,避免的更多的经济损失。
∙辅助服务器不仅可进行读操作还可以完成写操作(update/delete/insert),大大提高了硬件的利用率。
∙提供了新的连接管理器(ConnectionManager)组件,用于提供服务器集群中状态的自动转换协调、静态的负载平衡、动态的负载平衡。
∙灾难发生时,通过DRAUTO参数或者CM的配置,HDR对本身可以自动恢复。
∙完善的数据传输加密功能,多种加密算法,可以自动切换加密算法和密码。
∙方便易用的免费数据库管理员工具:
OpenAdminTool。
服务器环境
图1.服务器环境
服务器:
Informix0:
9.125.66.1291Gmemory,120Gdisk,2cpu(Intel(R)Pentium(R)4CPU3.20GHz),IDS实例beijing,辅助服务器
Informix1:
9.125.66.1302Gmemory,120Gdisk,2cpu(Intel(R)Pentium(R)4CPU2.80GHz),IDS实例shanghai,主服务器
操作系统:
Fedorarelease10(Cambridge)
网络:
局域网络,两台机器在同一网段
IDS版本:
IBMInformixDynamicServerVersion11.50.UC4
配置操作系统信任关系
为了满足HDR主辅服务器之间进行数据传输和相互操作的需要,我们在配置HDR之前首先要在两台服务器之间建立操作系统级别的信任关系。
具体而言是要在主辅服务器之间建立RSH信任关系。
确认rsh已经安装并且启动
使用以下命令检查:
1
2
>>chkconfig|greprsh
rsh:
on
如果rsh没有安装或者没有启动,我们需要使用操作系统的安装程序管理软件进行安装配置,对于fedora可以使用:
1
yuminstallrsh-server,yuminstallrsh
针对Informix用户配置rsh
当然这里也可以针对所有用户配置互信关系,但是只针对Informix用户配置互信关系就够用了。
首先,在两台机器的/home/Informix目录下创建.rhosts文件。
其次,在Informix1的.rhosts文件中添加它信任的机器名字或者IP也就是:
Informix0或者9.125.66.129,在Informix0的.rhosts文件中加它信任的机器名字或者IP也就是:
Informix1或者9.125.66.130。
最后需要特别注意:
两台机器上都要保证.rhosts的权限为 600 否则该文件将被忽略,信任关系配置将失败。
也就是要执行:
1
chmod600.rshosts
验证rsh配置
在Informix0上用Informix用户登录执行:
1
2
>>rshInformix1hostname
Informix1
在Informix1上用Informix用户登录执行:
1
2
>>rshInformix0hostname
Informix0
HDR配置
前提条件
两台服务器的IDSversion必须相同(OS的版本可以有细微的不同)。
在两台服务器创建IDS数据库实例:
Informix1:
shanghai,Informix0:
beijing。
Informix1的IDS实例shanghai将要被配置成主服务器。
配置SQLHOSTS
配置指向对方的服务名
在shanghai服务器的SQLHOSTS文件加入指向北京服务器的条目:
1
beijingonsoctcpInformix06666
在北京服务器的SQLHOSTS文件加入指向上海服务器的条目:
1
shanghaionsoctcpInformix16666
最后两台服务器的SQLHOSTS文件都要包含以下内容:
1
2
beijingonsoctcpInformix06666
shanghaionsoctcpInformix16666
配置服务器组
配置服务器组的目的在于方便应用使用。
这一步需要在应用端的SQLHOSTS做,但不是必须的步骤。
只需要在SQLHOSTS中加入黑体的部分即可:
1
2
3
chinagroup--i=1
beijingonsoctcpInformix06666g=china
shanghaionsoctcpInformix16666g=china
配置ONCONFIG
两台服务器关于RootDbspace的参数必须相同:
∙ROOTNAME
∙ROOTOFFSET
∙ROOTPATH
∙ROOTSIZE
实际环境中我们的配置为:
∙ROOTNAMErootdbs
∙ROOTPATH$InformixDIR/demo/hdr/hdr.rootdbs
∙ROOTOFFSET0
∙ROOTSIZE1000000
关于磁盘镜像,不要求两台服务器的MIRROR配置必须相同,但是如果在主服务器对RootDBSpace做了镜像设置,那么辅助服务器也必须做同样的配置,也就是说这种情况下以下参数必须相同:
∙MIRROR
∙MIRROPATH
∙MIRROROFFSET
实际环境中我们没有对这些参数做修改,使用了默认值。
关于物理日志配置的以下参数必须相同:
∙PHYSBUFF
∙PHYSILE
实际环境中我们没有对这些参数做修改,使用了默认值。
关于逻辑日志配置的以下参数必须相同:
∙LOGBUFF
∙LOGFILES
∙LOGSIZE
∙DYNAMIC_LOGS
实际环境中我们没有对这些参数做修改,使用了默认值。
关于HDR配置的以下参数必须相同:
∙DRAUTO
∙DRINTERVAL
∙DRTIMEOUT
实际环境中我们的配置为:
∙DRAUTO0
∙DRINTERVAL-1
∙DRTIMEOUT30
如果HDR对之间的数据传输需要加密的话,那么以下加密参数必须相同:
∙ENCRYPT_HDR
∙ENCRYPT_CIPHERS
∙ENCRYPT_MAC
∙ENCRYPT_SWITCH
∙ENCRYPT_MACFILE
实际环境中我们没有对这些参数做修改,使用了默认值。
为了使得辅助服务器可写,实际环境中我们设置了:
∙UPDATABLE_SECONDARY1
两台服务器关于服务名的设置分别为:
1
2
SERVERNUM 0/1
DBSERVERNAME beijing/shanghai
建立HDR
步骤1:
配置UDR、UDT、DataBlade
如果数据库需要用到UDR、UDT、DataBlade等,需要先在主服务器进行安装和注册,然后在辅助服务器安装UDR、UDT、DataBlade(注意:
这里只需要安装不需注册),如果不需要用到这些,则可以省略这一步。
步骤2:
在主服务器(Informix1)上设置服务器状态
执行onmode-dprimarybeijing
这一步是告知Informix1的shanghai实例,它将要被赋予HDR主服务器的角色,与它配对的辅助服务器实例为beijing。
步骤3:
关闭辅助服务器
如果辅助服务器的IDS实例是online状态,则需要先行关闭,即在Informix0上执行:
1
onmode–ky
步骤4:
在主服务器做0级全备份,在辅助服务器做全恢复
这一步可以通过任何传统的方式来完成,但是为了方便起见,这里使用ontape通过STDIO管道来完成,也就是说数据库的0级全备份不需要占用磁盘空间,也省去了全备份文件拷贝的步骤,主服务器在做全备的同时通过管道把数据发送给辅助服务器,辅助服务器同时做全恢复,备份数据只在内存中临时存在,节省了空间又加快了速度。
所以,这一步只需要一个命令就可以完成:
在Informix1执行以下命令:
1
ontape-s-L0-tSTDIO-F|rshInformix0“ontape-p–tSTDIO"
这时候Informix0上的beijing实例会自动启动,状态由notinitialized变为Initialization,进而变为FastRecovery:
1
2
3
4
5
6
7
>>onstat-
IBMInformixDynamicServerVersion11.50.UC4--Initialization
--Up00:
00:
04--144144Kbytes
>>onstat-
IBMInformixDynamicServerVersion11.50.UC4--FastRecovery
--Up00:
00:
07--144144Kbytes
步骤5:
在辅助服务器(Informix0)上设置服务器状态
执行onmode-dsecondaryshanghai
这一步是告知Informix0的beijing实例,它是被作为HDR辅助服务器的角色,与它配对的主服务器实例为shanghai。
步骤6:
状态验证
步骤5执行完毕后,稍等一下,可以看到辅助服务器(Informix0)上beijing实例的状态由FastRecovery变化为Updatable(Sec),也就是:
在辅助服务器(Informix0):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
>>onstat-
IBMInformixDynamicServerVersion11.50.UC4--Updatable(Sec)
--Up00:
07:
21--144144Kbytes
>>onstat-gdri
IBMInformixDynamicServerVersion11.50.UC4--Updatable(Sec)
--Up00:
02:
22--144144Kbytes
DataReplication:
TypeStatePairedserverLastDRCKPT(id/pg)SupportsProxyWrites
HDRSecondaryonshanghai50/1Y
DRINTERVAL-1
DRTIMEOUT30
DRAUTO0
DRLOSTFOUND/home/informix/IDS1150EE/etc/dr.lostfound
DRIDXAUTO0
ENCRYPT_HDR0
在主服务器(Informix1):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
>>onstat-
IBMInformixDynamicServerVersion11.50.UC4--On-Line(Prim)
--Up01:
32:
20--160528Kbytes
>>onstat-gdri
IBMInformixDynamicServerVersion11.50.UC4--On-Line(Prim)
--Up00:
02:
41--144144Kbytes
DataReplication:
TypeStatePairedserverLastDRCKPT(id/pg)SupportsProxyWrites
primaryonbeijing50/1NA
DRINTERVAL-1
DRTIMEOUT30
DRAUTO0
DRLOSTFOUND/home/informix/IDS1150EE/etc/dr.lostfound
DRIDXAUTO0
ENCRYPT_HDR0
这表明我们的HDR环境配置成功,并且我们的辅助服务器和主服务器一样是可以执行写操作的。
HDR相关参数介绍
这一部分力求用最简单的方式介绍HDR相关参数,关于详细的说明请参见IDS技术文档。
UPDATABLE_SECONDARY
这个参数是11.50才有的新功能,取值范围为:
0到2×(CPUVP),CPUVP一般就是服务器上CPU的个数。
作用:
用于控制辅助服务器是否可写,也就是说如果设置为大于0的数,则在辅助服务器可以执行(delete/insert/update)操作,相应的状态为:
Updatable(Sec),如果设置为0,则在辅助服务器只能执行select操作,相应的状态为:
Read-Only(Sec)。
进一步的说,实际上这个参数的直接含义是辅助服务器上进行写操作的连接个数。
DRINTERVAL
这个参数单位为秒,用于设置多久才把日志发送到辅助服务器做数据同步,如果设置为-1则为同步模式,也就是说任何时候只要logical-logbuffer要写到磁盘中,就同时把日志内容发送到辅助服务器,得到辅助服务器确认后才认为写磁盘操作成功。
在我们的实际设置中,设置成了-1,这样在发生灾难情况下不会因为缓冲区的问题而丢失数据,但是性能上会受到一些影响。
DRAUTO
取值范围为:
∙0Manual
∙1Retainservertype
∙2Reverseservertype
∙3ConnectionManagerArbitratorcontrols
简单来说,这个参数用于控制HDR中IDS实例重启后怎样确定自己的角色,1表示保持原有角色,2表示转换为新的角色,3表示使用连接管理器来仲裁。
举个例子说:
比如HDR主服务器重启后,DRAUTO为1时,主服务器仍为主服务器;DRAUTO为2时主服务器变为辅助服务器,原来的辅助服务器成为新的主服务器。
DRTIMEOUT
单位为秒,用来指定HDR对之间多少时间间隔没有响应被认为是超时。
DRLOSTFOUND
指定一个目录,用于存放逻辑日志,内容是主服务器已经提交但是辅助服务器没有同步的数据。
用于防止数据丢失。
DRIDXAUTO
取值范围为0、1。
是否自动进行索引修复。
关于传输加密参数
∙ENCRYPT_HDR取值范围为:
0、1
∙ENCRYPT_CIPHERS各种支持的加密算法组合,详见文档。
∙ENCRYPT_MAC取值范围:
off,low,medium,high
∙ENCRYPT_SWITCH两个秒为单位的时间,例如:
60,60
∙ENCRYPT_MACFILE取值范围:
密钥文件全路径或者BUILDIN
这一组参数用于设置HDR对之间数据传输的加密方式,只有ENCRYPT_HDR为1时才进行数据加密传输。
IDS11.5支持很多加密算法:
DES,des3,desx,aes......,也可以把ENCRYPT_CIPHERS设置为all,意为使用所有支持的加密算法。
ENCRYPT_MAC用于控制加密的级别,可以根据自己的需要设置。
ENCRYPT_SWITCH的第一个数字表示多久进行一次加密算法的切换,第二个数字表示多久进行加密密码的切换。
也就是说HDR在固定的时间间隔内自动切换加密算法和加密密码,大大减小了数据泄露的可能性。
ENCRYPT_MACFILE为指向加密密钥文件的全路径,可以使用内置的加密密钥文件,也就是说可以设置为”BUILDIN”即可,如果要使用自己的密钥文件可以使用IDS自带的工具”GenMacKey”来生成,具体使用方式请参照IDS相关技术文档。
要强调的是:
HDR对两台服务器的加密密钥文件的内容必须相同。
HDR使用示例
图2.应用环境
创建示例数据
脚本cteate_table.sql用于创建示例数据,具体内容请参见附录。
其中customer.unl和customer_sample.unl为数据文件。
首先创建stores_demo数据库,然后通过运行:
1
dbaccessstores_democreate_table.sql
来创建实验数据表。
应用示例
我们使用了三个简单脚本分别模拟不同的应用,
∙insert.bash用来做插入操作
∙update.bash用来做更新操作
∙query.bash用来做查询操作
每个脚本启动以后都是隔几秒钟就自动针对customer表进行相应的操作,启动的方式分别为:
∙insert.bashstores_demobeijing
∙update.bashstores_demobeijing
∙query.bashstores_demobeijing
其中第一个参数为数据库名,第二个参数为数据连接名。
为了验证HDR正常工作,这里我们使用了以下场景,同时运行以下脚本:
1)insert.bashstores_demochina
2)update.bashstores_demochina
3)query.bashstores_demochina
4)query.bashstores_demobeijing
5)query.bashstores_demoshanghai
应用3),4),5)分别通过访问服务器组(China)、辅助服务器(Beijing)、主服务器(shanghai)的方式用来监控customer表的数据变化。
应用1)、2)通过访问服务器组(China)对数据进行插入和更新操作:
1)用来插入数据,2)用来更新customer表中customer_num为1的一条记录。
这样我们可以看到,主、辅服务器,包括服务器组都是可以提供服务,都可以执行select/update/insert/delete操作,两边的数据自动同步,也就是说,在主服务器做的数据修改会自动同步到辅助服务器,反之亦然。
这样在提供灾备功能的同时也大幅度提高了硬件利用率(很多高可用性灾备方案中的辅助服务器不能提供任何服务,平时状态下辅助服务器的硬件投资是一种极大的浪费),当主服务器发生灾难事故时,辅助服务器可以自动接管连接到服务器组的应用,也就是说在一个网络超时之后,应用1)、2)、3)可以自动平滑过渡到辅助服务器,这一场景在后文有更详细的描述。
当然,大家也可以改变脚本运行的组合方式,模拟自己关心的运行场景,脚本具体内容参见附录。
容灾恢复实验
在上述应用脚本运行起来以后,我们可以进行人为破坏以模拟灾难场景,然后查看应用脚本是否能够在一个超时时间段内平滑过渡到可用的HDR结点。
需要说明的是,在通过服务器组连接到HDR服务器对的场景下,当主服务器可用时,应用是连接到主服务器的,也就是说仅仅对辅助服务器的破坏不会直接影响应用的运行(这里指的是连接到服务器组的应用),因而我们的人为破坏主要针对主服务器进行,破坏方式为:
∙正常关闭主服务器
∙拔掉主服务器网线
再有,在ONCONFIG文件中的DRAUTO参数配置直接关系到HDR服务器对的灾难恢复方式,我们的实验尝试了常用的DRAUTO=1和2的场景。
关闭重启主服务器
当DRAUTO=1时,主服务器恢复以后仍能保持主服务器的地位,具体如下:
∙关闭主服务器:
onmode–ky
∙辅助服务器自动完成以下状态变化:
Updatable(Sec)>FastRecovery(Sec)>On-Line
∙对于连接到china服务器组的应用在一个超时以后就可以自动平滑过渡到辅助服务器
∙重启主服务器,重启主服务器IDS实例:
oninit–vy,主服务器自动完成以下状态变化:
FastRecovery(Prim)>Quiescent(Prim)>On-Line(Prim)
∙同时,辅助服务器自动完成以下状态变化:
On-Line>ShuttingDown>Updatable(Sec)
当DRAUTO=2时,主服务器恢复以后只能退为辅助服务器的地位,具体如下:
∙关闭主服务器:
onmode–ky
∙辅助服务器自动完成以下状态变化:
Updatable(Sec)>Fast
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Informix Dynamic Server的HDR环境搭建最佳实践 Server HDR 环境 搭建 最佳 实践