| Sun Cluster3.1下的Informix热备和互备 |
荐 |
| 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文件中,为两个实例分别指定不同的协议 Linux联盟收集整理
 |
频道声明:本频道的文章除部分特别声明禁止转载的专稿外,可以自由转载.但请务必注明出出处和原始作者 文章版权归本频道与文章作者所有.对于被频道转载文章的个人和网站,我们表示深深的谢意。
| 原始作者:佚名 |
录入时间:2007-1-1 23:48:12 |
| 信息来源:不详 |
投稿信箱:itqoo@126.com |
|
|
 |
|
|
|
| 教程录入:itqoo 责任编辑:itqoo |
|
上一个教程: SUN主机上磁带库(Legato管理)的配置过程
下一个教程: Windows XP 与 Solaris 10 双操作系统安装图片解析 |
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |