发新话题
打印

[转帖]Sun Cluster3.1下的Informix热备和互备

[转帖]Sun Cluster3.1下的Informix热备和互备

Sun Cluster3.1下的Informix热备和互备

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文件中,为两个实例分别指定不同的协议


TOP

发新话题
  清除 Cookies - 联系我们 - 邮件技术资讯网 - Archiver - WAP - 繁體中文
当前时区 GMT+8, 现在时间是 2008-7-7 07:46

本论坛为非盈利中立机构,论坛所有言论纯属发表者个人意见,与《 邮件技术资讯网》论坛立场无关。内容所涉及的版权和法律相关事宜请参考各自所有者的条款。
如果认定侵犯了您的权利,请联系我们尽快处理。本论坛原创内容请联系本站后再行转载并务必保留我站信息。此声明修改不再另行通知,本论坛保留最终解释权。
*本论坛QQ群:1#群2233231(推荐) 2#群2598254(已满) 3#群15974064(推荐) 4#群14173252(推荐)*
Powered by Discuz! 6.0.0  © 2001-2007 Comsenz Inc.