Informix内置的Enterprise Replication(ER)是Linux环境下实现跨系统数据同步的核心工具,支持实时/近实时同步、双向复制(多节点数据一致性)和高可用性,适用于OLTP和OLAP场景。
rep_user),并赋予REPLICATION权限(GRANT REPLICATION TO rep_user;)。onconfig文件(通常位于/opt/informix/etc/),开启复制功能并设置参数:ReplicationServer=ON # 启用复制服务器
ReplicationPort=9088 # 复制服务端口(需与目标服务器一致)
ReplicaServerName=my_rep_group # 复制组名称(自定义,主从需一致)
ReplicaServerAddress=source_ip # 源服务器IP
service oninit restart。onconfig文件,设置与源服务器一致的复制组参数:ReplicationServer=ON
ReplicaServerName=my_rep_group
ReplicaServerAddress=target_ip # 目标服务器IP
service oninit restart。onmode命令创建复制组:onmode -c "CREATE REPLICATION GROUP my_rep_group"
onmode -c "ADD DATABASE TO REPLICATION GROUP my_rep_group db_name"
onmode -c "START REPLICATION FOR DATABASE db_name"
onstat -g rep命令检查复制状态(主从服务器均需执行),确认状态为UP(无错误信息)。onstat -g rep监控复制延迟(Lag字段);onmode -c "RESTART REPLICATION FOR DATABASE db_name"重启复制进程;onconfig文件和复制日志(位于/opt/informix/log/)。若只需同步Informix的数据文件(如表空间、日志文件),可使用rsync工具结合SSH加密传输,适用于批量数据迁移或近似实时同步(需配合定时任务)。
在源/目标服务器上安装rsync(Linux发行版通用):
# Debian/Ubuntu
sudo apt-get install rsync
# CentOS/RHEL
sudo yum install rsync
在源服务器生成SSH密钥,复制到目标服务器:
ssh-keygen -t rsa # 按回车生成密钥
ssh-copy-id user@target_ip # 输入目标服务器密码,完成免密配置
使用rsync命令同步Informix数据目录(如/opt/informix/data/):
rsync -avz --delete -e ssh /opt/informix/data/ user@target_ip:/opt/informix/data/
-a:归档模式(保留权限、时间戳);-v:详细输出;-z:压缩传输;--delete:删除目标端多余文件(保持完全一致)。通过cron实现定期同步(如每5分钟):
crontab -e
添加以下内容:
*/5 * * * * rsync -avz --delete -e ssh /opt/informix/data/ user@target_ip:/opt/informix/data/
若需实时感知数据文件变化并同步,可结合inotify工具(监控文件系统事件)与rsync,适用于高实时性需求(如交易系统)。
在源服务器安装inotify-tools:
# Debian/Ubuntu
sudo apt-get install inotify-tools
# CentOS/RHEL
sudo yum install inotify-tools
创建sync_script.sh,监控Informix数据目录的变化并触发rsync:
#!/bin/bash
SRC_DIR="/opt/informix/data/"
DEST_USER="user"
DEST_IP="target_ip"
DEST_DIR="/opt/informix/data/"
inotifywait -m -r -e modify,create,delete,move "$SRC_DIR" | while read path action file; do
rsync -avz --delete -e ssh "$SRC_DIR" "$DEST_USER@$DEST_IP:$DEST_DIR"
done
-m:持续监控;-r:递归监控子目录;-e:指定监控事件(修改、创建、删除、移动)。赋予脚本执行权限并后台运行:
chmod +x sync_script.sh
nohup ./sync_script.sh > /dev/null 2>&1 &
以上方法可根据实时性需求、数据量大小和运维复杂度选择使用,其中Informix内置复制功能是企业级场景的首选方案。