Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103682431
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: DB2/Informix

2008-04-07 07:56:37

作者:xilai  出处:Unix爱好者家园unix-cd.com  
Informix Dynamic Server 2000 HDR(High-Availability Data Replication) 实战

为了加强数据库的安全,提供一个备份,在数据库系统发生故障后最快的恢复系统运行,我在查找相关的软硬件方案后,在最低成本的情况下决定使用数据库本身提供的HDR(High-Availability Data Replication)。

何为HDR? Informix的HDR (High-Availability Data Replication)功能,是在将主数据服务器中的数据库中的所有dbspace进行一次零级备份,并恢复到备份数据中心的数据库中,之后主数据中心的数据库服务器可以通过通信网络将生产数据库的逻辑日志文件传送至备份中心的数据库服务器,备份中心的secondary数据库将这些逻辑日志恢复到相应的dbspace上。以实现数据的同步,如数据业务量大,还可提供分布式的访问,将数据访问分布在两个数据库服务器上。

好了,废话不多说,动手吧!

1.服务器环境
目前的数据库服务器已经运行了很长时间并且仍然在运行。

目前运行的informix数据库服务器,我们称为Primary 服务器;要做的replcation服务器,我们称为secondary 服务器。 

服务器均使用Red Hat Linux 8.0,Informix 9.21UC3 

Primary服务器IP:192.168.18.205 
Secondary服务器IP:192.168.18.203 

原Primary数据库服务器上的sqlhosts文件如下: 
domain_db onipcshm localhost sqlexec 


2.安装配置secondary 服务器

  根据Primary服务器,安装一台与Primary服务器差不多一样(是指操作系统版本、数据库版本)的Secondary服务器

安装完Secondary服务器上的Informix后,配置好环境变量,并进行初始化(oninit -i)一下(可以跟Primary服务器一样的配置参数)


3.修改sqlhosts文件
  因数据库有两台服务器,所以只能通过TCP网络方式进行,但仍然保留原来的SHM(共享内存)方式访问以维持原来的各个系统访问。 
所以保留原来的并在Primary服务器和Secondary服务器上增加如下两行: 
domain_db_s onsoctcp 192.168.18.203 7778 
domain_db_p onsoctcp 192.168.18.205 7777

Primary服务器和Secondary服务器上的sqlhosts:

domain_db onipcshm localhost sqlexec

domain_db_s onsoctcp 192.168.18.203 7778 
domain_db_p onsoctcp 192.168.18.205 7777

4. 修改服务器Informix参数

因原来使用domain_db做数据库服务,现在增加了domain_db_s(Secondary服务器上)和domain_db_p(Primary服务器上),如果不修改参数,数据库启动时将会报不知道的服务名错误。 
在Primary服务器,执行onmonitor,在Parameters的Shared-Memory下面的 
Server Aliases [domain_db_p ]设置domain_db_p 
需要重启数据库服务

在Primary服务器,执行onmonitor,在Parameters的Shared-Memory下面的 
Server Aliases [domain_db_s ]设置domain_db_s 

5. 全备份Primary服务器数据库系统

ontape -s -L 0 

并且将其设置为Primary服务器 
onmode -d primary domain_db_s 
(没有错误,则成功) 
然后执行onstat - 
可以看到-- On-Line (Prim) 

6. 在secondary 服务器上恢复

将Primary服务器上的数据恢复到secondary 服务器上 
执行ontape -p恢复数据 

恢复后不要关闭数据库,直接执行命令: 
onmode -d secondary domain_db_p 
(如果关闭再启,再来设置就报错:DR: Unable to change server type。我做了两回都是这样) 

然后执行onstat - 
可以看到-- Read-Only (Sec) 


OK,大功告成,怎么样不算复杂吧! 

在Primary服务器上建个表、插入记录、建个数据库(记得带日志,只能复制带日志的数据库)看看,缺省情况下30秒Secondary上就有!
阅读(640) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~