Informix数据库支持在同一台Linux服务器上运行多个独立的实例(实例),每个实例可以有自己的配置、数据和日志。以下是实现Informix多实例部署的详细步骤:
ids_inst1
, ids_inst2
等)# 为每个实例创建独立的目录
mkdir -p /informix/inst1
mkdir -p /informix/inst2
# 设置目录权限
chown informix:informix /informix/inst1
chown informix:informix /informix/inst2
chmod 755 /informix/inst1
chmod 755 /informix/inst2
每个实例需要自己的onconfig
文件,可以复制默认配置文件并修改:
cp $INFORMIXDIR/etc/onconfig.std /informix/inst1/onconfig.inst1
cp $INFORMIXDIR/etc/onconfig.std /informix/inst2/onconfig.inst2
# 基本配置
SERVERNUM 1
DBSERVERNAME inst1_server
ROOTPATH /informix/inst1/rootdbs
ROOTSIZE 200000
# 网络配置
NETTYPE ipcshm,1,50,CPU
NETTYPE soc,1,50,NET
LISTEN_ADDR 127.0.0.1
SQLI_HOST 127.0.0.1
SQLEXEC 1
PORT 9088
# 内存配置
SHMBASE 0x44000000L
SHMVIRTSIZE 32000
SHMADD 32000
# 基本配置
SERVERNUM 2
DBSERVERNAME inst2_server
ROOTPATH /informix/inst2/rootdbs
ROOTSIZE 200000
# 网络配置
NETTYPE ipcshm,1,50,CPU
NETTYPE soc,1,50,NET
LISTEN_ADDR 127.0.0.1
SQLI_HOST 127.0.0.1
SQLEXEC 1
PORT 9089
# 内存配置
SHMBASE 0x46000000L
SHMVIRTSIZE 32000
SHMADD 32000
export INFORMIXSERVER=inst1_server
export INFORMIXDIR=/opt/IBM/informix
export ONCONFIG=onconfig.inst1
export INFORMIXSQLHOSTS=/informix/inst1/sqlhosts
# 创建sqlhosts文件
echo "inst1_server onsoctcp 127.0.0.1 9088" > $INFORMIXSQLHOSTS
# 初始化空间
oninit -i -v -y
export INFORMIXSERVER=inst2_server
export INFORMIXDIR=/opt/IBM/informix
export ONCONFIG=onconfig.inst2
export INFORMIXSQLHOSTS=/informix/inst2/sqlhosts
# 创建sqlhosts文件
echo "inst2_server onsoctcp 127.0.0.1 9089" > $INFORMIXSQLHOSTS
# 初始化空间
oninit -i -v -y
# 启动实例1
export INFORMIXSERVER=inst1_server
export ONCONFIG=onconfig.inst1
oninit
# 启动实例2
export INFORMIXSERVER=inst2_server
export ONCONFIG=onconfig.inst2
oninit
# 关闭实例1
export INFORMIXSERVER=inst1_server
onmode -ky
# 关闭实例2
export INFORMIXSERVER=inst2_server
onmode -ky
# 检查实例1状态
export INFORMIXSERVER=inst1_server
onstat -
# 检查实例2状态
export INFORMIXSERVER=inst2_server
onstat -
可以创建shell脚本简化实例切换和管理:
#!/bin/bash
# 实例管理脚本 inst_manager.sh
case "$1" in
inst1)
export INFORMIXSERVER=inst1_server
export ONCONFIG=onconfig.inst1
export INFORMIXSQLHOSTS=/informix/inst1/sqlhosts
;;
inst2)
export INFORMIXSERVER=inst2_server
export ONCONFIG=onconfig.inst2
export INFORMIXSQLHOSTS=/informix/inst2/sqlhosts
;;
*)
echo "Usage: $0 {inst1|inst2} [command]"
exit 1
;;
esac
shift
$@
使用示例:
# 启动实例1
./inst_manager.sh inst1 oninit
# 检查实例2状态
./inst_manager.sh inst2 onstat -
通过以上步骤,您可以在同一台Linux服务器上成功部署并管理多个Informix数据库实例。