Ubuntu环境下Informix数据库迁移指南
INFORMIXDIR、INFORMIXSERVER等环境变量),并创建目标数据库所需的表空间(使用onspaces命令,如onspaces -c -d new_dbspace -p /informix/dbspaces/new_dbspace -o 0 -s 1000000,其中文件路径需提前创建且权限设为660)。dbexport(逻辑导出,生成文本SQL文件)或ontape(物理备份,备份数据文件)工具备份源数据库。例如:dbexport -o /informix/backup stores7 # 导出stores7数据库到指定目录
ontape -s -L 0 -f /informix/backup/ontape.bak # 物理备份
同时备份配置文件(如onconfig、sqlhosts)和日志文件。dbexport命令将数据库对象(表、视图、存储过程等)导出为SQL文件。例如:dbexport -d stores7 -o /informix/export/stores7 # 导出stores7到指定目录
执行后会生成stores7.exp目录,包含ddl.sql(表结构)、data.sql(数据)、dml.sql(存储过程/触发器)等文件。ontape或onbar工具进行物理备份(更高效,但依赖源环境配置)。例如:ontape -s -L 0 -f /informix/backup/physical.bak # 全量备份
将导出的备份文件从源服务器复制到Ubuntu目标服务器,可使用scp(加密传输)或rsync(增量传输)工具。例如:
scp -r /informix/backup/stores7 user@ubuntu_server:/informix/import/stores7 # 复制逻辑导出文件
scp /informix/backup/ontape.bak user@ubuntu_server:/informix/backup/ # 复制物理备份文件
dbimport命令根据导出的SQL文件创建数据库。例如:dbimport -d stores7 -i /informix/import/stores7 -c -l buffered # 导入stores7数据库
参数说明:-d指定数据库名,-i指定导入目录,-c创建数据库,-l buffered使用缓冲日志(提升导入速度)。ontape或onbar工具恢复物理备份。例如:ontape -r -L 0 -f /informix/backup/physical.bak # 恢复全量备份
恢复前需确保目标环境已创建好对应的表空间和数据库。dbaccess stores7),核对表记录数、关键字段值(如主键、唯一键)是否与源数据库一致;检查存储过程、触发器的执行结果是否符合预期。SELECT COUNT(*) FROM large_table)、批处理任务,对比源数据库的性能指标(响应时间、吞吐量),调整目标环境的配置(如缓冲池大小、并行查询设置)。jdbc:informix-sqli://ubuntu_server:9088/stores7:INFORMIXSERVER=informix_server),测试SQL语句的兼容性(如数据类型映射、函数调用),确保应用能正常访问新数据库。onmode -ky关闭数据库(强制终止所有连接),或用onstat -g sql查看活动会话并杀掉(onmode -z <session_id>),避免导出失败。660(如chmod 660 /informix/dbspaces/new_dbspace),否则会导致导入失败。KEY_ VALUE_ATTR_ID字段拆分),需检查SQL文件中的字段定义;若出现长事务错误,可增大逻辑日志大小(onparams -a -d log)或使用-l unbuffered参数(无日志导入)。DECIMAL精度)一致,避免因版本差异导致迁移失败。