HDR介紹:
HDR(Hierachical Data Replication)是informix server产品自带的一个功能,中文称为:高可用性数据复制),它可以将数据库服务器整个的复制到另外的一台机器上,而且可以做到同步复制。比如我们的主機ksh01(主机)这边的数据库中的某个表做操作,那么与ksh01做了HDR的kshzdb02(从机)上可立即看到该表的变化。还有如果在ksh01这边加Chunk,同时kshzdb02那边也加上了,前提是两台机器上都存在相同的Chunk路径名子。另外,作为主机的ksh01可以正常作业务,但作为从机的kshzdb02处于一种只读状态,不能直接更改kshzdb02上的数据,但可以读数据,因此我们可以将查询业务放到从机上,从而减轻主机的负载。
如果主机宕掉,从机可以立刻改变为主机,可以正常作业务。
配置HDR的環境要求:
要想构筑这样的一个环境,要求很高:
1)两台机器的硬件配置必须相同;
2)数据库版本必须相同;
3)操作系统版本必须相同;
4)Chunk的路径必须相同;
5)務必檢查兩臺主機及數據庫之間的信任關系,如下四個文件一定要檢查正確為止,要不然你會很很很很后悔;/etc/hosts,/etc/hosts.equiv,/etc/services,
$INFORMIXDIR/etc/sqlhosts(關于信任關系設置請查考informix管理員指南)。
总之,两台机器必须完全一模一样,包括软件和硬件。
建立数据库复制系统的步骤是:
第一步:使用 ln命令分别在两台主机服务器建立完全相同的数据存储块名;(此步驟在我們主機已經做好)
第二步:对主数据库服务器系统作0级数据备份和逻辑日志 备份;
使用命令:0級數據備份 ontape –s –L 0
邏輯日志備份 ontape -c
第三步:将主数据库服务器系统定义为 Prima(最完善的虚拟主机管理系统) 并使之进入 Online 状态;
使用命令:onmode –d primary on_tcp02(此處為備機informix數據庫servername)
數據庫狀態變為:-- On-Line (Prim) --
第四步:将主数据库服务器系统的 0级数据备份用冷恢复到备份数据库服务器上;
使用命令:ontape –p 在恢復過程切記按照如下順序作業不然你會很后悔。放入主機的0級備份磁帶,使用ontape –p后系統提示是否回存,請回答Y,系統提示是否需要邏輯備份,請回答N。此時備機上的 informix正在冷恢復,需耐心等待(當前kshz01db上HZKS資料庫有40個2G的chunk,需要大概2小時)
第五步:恢復完成數據庫的后,informix的狀態 --Fast-Recovery--,此種狀態很重要,一定要在Fast-Revoery狀態下設置備機次服務器的身份。使用命令:onmode –d secondary on_tcp01(此為主機informix數據庫servername)
第六步:將主機数据库服务器系统的逻辑日志备份恢复到备份数据库服务器上并使之进入Read only 状 态。
使用命令:ontape –l 恢復完邏輯日志需等待備機數據庫同步主機數據庫,此動作需幾分鐘,請等待。
第七步:接下来我们验证所做的数据库复制系统。
Ksh01主機终端上,在dbaccess中选择QueryLanguage菜单中的New项,输入
insert into customer (fname,lname) values ("AA","BB");
然后再按ESC键,退出SQL的编辑状态。Kshzdb02终端上,也在dbaccess中选择QueryLanguage 菜单中的New项,输入
select count(*) from customer where fname="AA" and lname="BB"
然后再按ESC键,退出SQL的编辑状态;
我们在ksh01终端上,按两下R,然后在kshzdb02终端上反复地按R,大约15秒钟,2号终端的屏幕会显示出计数为2。
第八步:ksh01终端上,退出dbaccess,然后输入命令 onmode -ky, 关闭主数据库服务器系 统。 在kshzdb02终端上,然后输入onstat -ur,我们将先看到数据库服务器的状态为Read only, 然后变成 Recovery,最后变成Online,这时我们按DEL键。我们再次选择New,输入命令:
insert into customer (fname,lname) values ("CC","DD")
然后再按ESC键,退出SQL编辑状态,按三次R,接着我们退出dbaccess。在命令行输入命令onstat -ur。
现在我们在ksh01终端上输入命令oninit和onstat -ur。1号终端上马上显示数据库服务器系统为 Fast recovery。这时2号终端上显示数据库服务器系统的状态变为Shutdown。几分钟后,1号终端上 显示上显示主数据库服务器系统的状态回到 Online,而2号终端上则显示备份数据库服务器系统的状态回到原先的Read only。
第九步:我们在ksh01终端上,再次进入dbaccess,选择Query Language中的New项,输入
select fname,lname from customer where fname="CC"
运行该语句。终端屏幕上将显示出 数据“CC”和“DD”。
至此我们的例子做完了。当关闭数据库服务器复制系统时,我们应该先备份数据库服务器后主数据库服务器。而启动时则应先主数据库服务器后备份数据库服务器。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16381228/viewspace-714064/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/16381228/viewspace-714064/