Chinaunix首页 | 论坛 | 博客
  • 博客访问: 43662689
  • 博文数量: 384
  • 博客积分: 9990
  • 博客等级: 中将
  • 技术积分: 5644
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-05 17:44
文章分类

全部博文(384)

文章存档

2011年(1)

2008年(383)

分类: 服务器与存储

2008-06-07 16:20:03

Sun Cluster3.1下的Informix热备和互备Sun Cluster3.1下的Informix热备和互备 
饮鸩止渴 发表于 2005年10月08日10时35分
http://blog.chinaunix.net/article.php?articleId=50794&blogId=6098  
1           背景
Informix是一种实际项目当中使用比较多的,用户有时候会有把这种做双机热备的要求。Sun Cluster是Sun公司的集群软件,但是从3.0版以后,不再发布为Informix双机热备用的Agent。所以必须另想办法来在Sun Cluster 3下实现Informix双机热备。

虽然Sun Cluster不提供Informix数据服务的Agent,但是它提供了开发自己的Agent的工具,包括Agent Builder和GDS数据服务资源类型,以及相应的API。GDS全称是Generate Data Service,普通数据服务,是为用户的普通网络应用程序准备的配置类型,仅适用于Failover类型。

而Informix的特点就是,在宕机之后,只需要把进程简单的起来就可以继续使用,相当于一个普通的,需要公用存储的的普通网络应用程序。


2           配置办法
2.1       GDS资源类型
GDS资源类型的特点有如下几点:

1.  已经在Sun Cluster安装时自带,使用时注册一下即可

2.  适用于普通网络应用程序,非常方便用户自己的应用程序做高可用

3.  使用用户自己编写的脚本来启动、检测和中止应用程序

4.  用户脚本只要返回给GDS检测程序一个返回值即可,0为成功,否则失败

2.2       Informix
Informix虽然是一个大型,但是其使用方式跟普通网络应用程序很相似,都是通过命令带参数来启动、检查和关闭的

1.  启动

Informix的启动使用oninit命令即可,如果启动失败,会返回相应的错误代码,成功则返回0

2.  检测

onstat命令可以检测目前的运行状态,返回代码和oninit一样。如果要检查的更加详细,可以编写更复杂的脚本来检查

3.  关闭

关闭Informix用onmode –ky命令。

2.3       编写脚本
下面是3个脚本的简单示例:

1.  启动

#!/bin/ksh




CMD_STR=" 
setenv INFORMIXDIR /opt/informix 
setenv INFORMIXSERVER xxdb 
setenv ONCONFIG onconfig.xxdb
setenv DB_LOCALE zh_cn.gb
setenv CLIENT_LOCALE zh_cn.gb


/opt/informix/bin/oninit
"
su - informix -c "$CMD_STR"

return $?

2.  检测

#!/bin/ksh
CMD_STR=" 
setenv INFORMIXDIR /opt/informix 
setenv INFORMIXSERVER xxdb 
setenv ONCONFIG onconfig.xxdb
setenv DB_LOCALE zh_cn.gb
setenv CLIENT_LOCALE zh_cn.gb

/opt/informix/bin/onstat
"
su - informix -c "$CMD_STR"
return $?


3.  关闭

#!/bin/ksh

CMD_STR=" 
setenv INFORMIXDIR /opt/informix 
setenv INFORMIXSERVER xxdb 
setenv ONCONFIG onconfig.xxdb
setenv DB_LOCALE zh_cn.gb
setenv CLIENT_LOCALE zh_cn.gb

/opt/informix/bin/onmode -ky
"


su - informix -c "$CMD_STR"

return $?


注意,这3个脚本都是简单的示例,有如下几个需要注意的地方:

1.  setenv当中设置了DB_LOCALE等语言参数,这是因为Informix如果语言不对,可能客户端不能连接


2.  程序中都返回了$?,这是在su –c命令当中最后一条命令的返回值

3.  在正式使用之前需要在两台主机上都进行手动执行的测试,成功之后才可以正式加入Sun Cluster的程序

2.4       Sun Cluster中的配置
1.  保存3个脚本到两台主机的相同目录,并测试在两台主机上的运行情况

2.  建立一个资源组,加上普遍配置:逻辑主机名、存储等

3.  在Cluster的资源组里注册一个GDS类型资源

4.  指定该资源的启动、检测和中止脚本为我们刚刚编写的脚本

5.  测试资源组的online和offline的功能是否正常

2.5       Informix双机互备的配置
双机互备在Sun Cluster里边是很简单的设置两个资源组即可,但是在Informix中,一台主机上运行两个实例是需要一些不同的配置的,所以有一些需要注意的地方:

1.  两个实例应该有不同的实例名

通过设置INFORMIXSERVER和ONCONFIG可以做到

2.  两个实例名的ONCONFIG文件中需要不同的参数

ROOTPATH、DBSERVERNAME自不必说,需要注意的是SERVERNUMBER必须是不同的数字

3.  两个实例不能使用相同的端口服务

因此,需要设置/etc/services文件中两个service名字和端口,例如:

sqlexec         8766/tcp


sqlexec2        8765/tcp

而在$INFORMIXDIR/etc/sqlhosts文件中,为两个实例分别指定不同的协议
阅读(738) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~