informix在centos上的集群部署
Informix在CentOS上的集群部署指南
一、环境准备
1. 硬件要求
准备至少2台CentOS服务器(推荐3台及以上用于高可用),确保节点间网络延迟≤1ms,磁盘IO性能满足数据库需求(如SSD存储)。所有节点需具备相同的硬件配置(CPU型号、内存大小、存储容量),避免因硬件差异导致集群不稳定。
2. 操作系统准备
- 所有节点安装相同版本的CentOS(推荐CentOS 7或8,内核版本≥3.10),并更新至最新稳定版:
yum update -y - 安装必要工具包:
yum install -y ssh passwd groupadd vim wget lvm2 nfs-utils chrony - 配置时间同步(关键):使用Chrony服务同步所有节点时间,编辑
/etc/chrony.conf添加NTP服务器(如server ntp.aliyun.com iburst),重启服务:
systemctl restart chronyd & & systemctl enable chronyd - 关闭防火墙(测试环境)或放行Informix端口(生产环境):
systemctl stop firewalld & & systemctl disable firewalld
或放行端口(如oninit默认端口9088、sqlhosts端口8888):
firewall-cmd --add-port=9088/tcp --permanent & & firewall-cmd --reload - 禁用SELinux(测试环境)或设置为宽容模式(生产环境):
setenforce 0或修改/etc/selinux/config中SELINUX=permissive。
二、Pre-安装配置
1. 创建Informix用户和组
以root用户执行,创建专用用户组和用户(避免使用root运行数据库):
groupadd -g 3000 informix
useradd -u 3000 -g 3000 -d /home/informix -m -s /bin/bash informix
passwd informix # 设置强密码
chmod 755 /home/informix # 确保用户目录可访问
2. 设置环境变量
以informix用户登录,编辑~/.bash_profile文件,添加以下变量(根据实际路径调整):
export INFORMIXDIR=/opt/IBM/informix # Informix安装根目录
export INFORMIXSERVER=infcluster1 # 集群服务器实例名(需唯一)
export ONCONFIG=onconfig.infcluster1 # onconfig配置文件名
export INFORMIXSQLHOSTS=$INFORMIXDIR/etc/sqlhosts.infcluster1 # sqlhosts配置文件路径
export PATH=$INFORMIXDIR/bin:$PATH # 添加Informix命令到PATH
export LD_LIBRARY_PATH=$INFORMIXDIR/lib:$LD_LIBRARY_PATH # 添加库路径
source ~/.bash_profile # 立即生效
3. 下载并解压Informix安装包
从IBM官方网站下载适用于Linux的Informix安装包(如iif.14.10.FC5.Linux-RHEL8-x86_64.tar),上传至所有节点并解压:
tar -xvf iif.14.10.FC5.Linux-RHEL8-x86_64.tar -C /opt/
mv /opt/IBM/informix /opt/IBM/informix # 规范目录名
chown -R informix:informix /opt/IBM/informix # 设置目录所有权
三、Informix安装与基础配置
1. 执行安装程序
以root用户进入安装目录,运行安装脚本:
cd /opt/IBM/informix/SERVER
./ids_install
按照向导选择“典型安装”(Typical Install),默认安装路径为/opt/IBM/informix,等待安装完成。
2. 配置onconfig文件
复制默认配置文件并修改关键参数(以onconfig.infcluster1为例):
cp $INFORMIXDIR/etc/onconfig.std $INFORMIXDIR/etc/onconfig.infcluster1
vi $INFORMIXDIR/etc/onconfig.infcluster1
修改以下核心参数:
- 数据库空间:
ROOTNAME rootdbs # 根数据库空间名 ROOTPATH /dbs/rootdbs # 根数据库空间路径(需提前创建) ROOTSIZE 30000 # 根数据库空间大小(页数,1页=4KB) - 逻辑日志与物理日志:
LOGFILES 3 # 逻辑日志文件数量 LOGSIZE 1000 # 每个逻辑日志文件大小(页数) PHYSFILE 2000 # 物理日志文件大小(页数) LOGMODE buffered # 日志模式(生产环境建议用buffered) - 网络配置:
NETTYPE soctcp,1,50,CPU # 网络类型(TCP/IP)、并发线程数 DBSERVERNAME infcluster1 # 数据库服务器名(需与ONCONFIG中的INFORMIXSERVER一致)
3. 创建数据目录并授权
创建数据库空间目录并设置正确权限(关键:rootdbs权限必须为660):
mkdir -p /dbs
chown -R informix:informix /dbs
chmod 660 /dbs/rootdbs # 必须设置为660,否则无法启动
4. 配置sqlhosts文件
编辑sqlhosts文件,定义数据库服务器的网络连接方式(支持IPC、TCP等):
cp $INFORMIXDIR/etc/sqlhosts.std $INFORMIXDIR/etc/sqlhosts.infcluster1
vi $INFORMIXDIR/etc/sqlhosts.infcluster1
添加以下内容(根据实际IP调整):
infcluster1 onipcshm rouse informix_services # 共享内存连接(本地)
infcluster1 onsoctcp rouse 192.168.1.100 # TCP/IP连接(远程)
其中:
infcluster1:服务器名(与DBSERVERNAME一致);onsoctcp:TCP/IP协议;rouse:服务名(需与/etc/services中的端口映射一致);192.168.1.100:节点IP地址。
5. 配置系统服务
编辑/etc/services文件,添加Informix服务端口映射:
echo "informix_services 8888/tcp # Informix Server Port" >
>
/etc/services
重启服务使配置生效:
systemctl restart network
四、集群管理工具配置(以Pacemaker+Corosync为例)
1. 安装Pacemaker和Corosync
在所有节点执行:
yum install -y pacemaker corosync pcs
2. 配置Corosync
编辑Corosync配置文件(/etc/corosync/corosync.conf),添加集群节点信息:
totem {
version: 2
cluster_name: infcluster
transport: udpu
interface {
ringnumber: 0
bindnetaddr: 192.168.1.0 # 集群网络段
mcastport: 5405
ttl: 1
}
}
nodelist {
node {
ring0_addr: 192.168.1.100 # 节点1 IP
nodeid: 1
}
node {
ring0_addr: 192.168.1.101 # 节点2 IP
nodeid: 2
}
}
quorum {
provider: corosync_votequorum
two_node: 1 # 2节点集群启用2节点仲裁
}
logging {
to_logfile: yes
logfile: /var/log/corosync/corosync.log
to_syslog: yes
}
3. 启动Corosync和Pacemaker
在所有节点启动服务:
systemctl start corosync &
&
systemctl enable corosync
systemctl start pacemaker &
&
systemctl enable pacemaker
验证集群状态:
crm_mon -1 # 查看集群节点状态
pcs status # 查看Pacemaker资源状态
4. 配置集群资源
创建Informix资源(虚拟IP、数据库服务等):
# 创建虚拟IP资源(浮动IP,用于客户端访问)
pcs resource create vip ocf:heartbeat:IPaddr2 ip=192.168.1.200 cidr_netmask=24 op monitor interval=30s
# 创建Informix服务资源(需编写自定义脚本)
pcs resource create infsvc ocf:heartbeat:informix \
op monitor interval=60s \
op start timeout=300s \
op stop timeout=300s
# 将资源绑定到同一节点(避免脑裂)
pcs constraint colocation add vip with infsvc INFINITY
pcs constraint order vip then infsvc
5. 测试故障转移
手动停止主节点的Informix服务,观察虚拟IP是否自动切换至备用节点:
ssh 192.168.1.100 "systemctl stop informix"
sleep 10
crm_mon -1 # 检查VIP是否迁移至节点2
五、验证与测试
1. 启动Informix服务
在主节点启动Informix服务:
oninit -ivy # 初始化并启动数据库(首次启动需用-ivy)
验证数据库状态:
onstat - # 查看数据库概要信息
onstat -d # 查看数据库空间状态
2. 连接测试
使用dbaccess工具连接数据库(本地/远程均可):
dbaccess infcluster1 -e "SELECT 1;
" # 本地连接
dbaccess -h 192.168.1.200 infcluster1 -e "SELECT 1;
" # 远程连接(通过VIP)
3. 高可用性测试
- 节点故障测试:停止主节点的Corosync服务,观察备用节点是否自动接管虚拟IP和Informix服务;
- 网络分区测试:断开主节点网络,验证集群是否触发仲裁机制,确保服务连续性。
六、监控与维护
1. 监控工具推荐
- Prometheus+Grafana:监控集群节点的CPU、内存、磁盘、网络及Informix性能指标(如缓冲池命中率、锁等待数);
- Zabbix:配置Informix模板,实现自动告警(如数据库宕机、磁盘空间不足)。
2. 日常维护
- 备份:定期执行
ontape或onbar备份(全量+增量),存储至异地; - 日志清理:定期清理
/opt/IBM/informix/log目录下的旧日志文件; - 性能优化:根据监控数据调整
onconfig参数(如缓冲池大小、并行查询线程数); - 版本升级:跟随IBM官方节奏升级Informix版本,修复安全漏洞。
注意事项
- 共享存储:若需实现数据实时同步(如MACH 11高可用架构),需配置共享存储(如NFS、Ceph),并确保所有节点对存储路径有读写权限;
- 网络延迟:集群节点间网络延迟需≤1ms,避免因网络问题导致数据不一致;
- 文档参考:务必参考IBM官方文档(《Informix Linux集群部署指南》),确保配置符合最佳实践;
- 测试环境:生产环境部署前,务必在测试环境验证所有配置,避免数据丢失。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: informix在centos上的集群部署
本文地址: https://pptw.com/jishu/736426.html
