数据库在手动安装时,需要人工进行选项配置,但遇到集群环境或因试用过期而导致的重复安装,则变得繁琐,以下为 informix 数据库的静默安装方法。
关于 informix
informix 是 IBM 公司研发的关系型数据库,在银行、重工业等行业中占有着重要份额。
近些年出现的国产数据库,有部分就是基于 informix 研发的,如 gbase8t。
虽然 informix 已经更新了12.x 以上版本,但市场中使用较多的还是旧版本,以 linux informix 12.10 版本的静默安装为例,具有普适性与兼容性。相似数据库亦可使用该方法,大同小异。
步骤
- 下载安装包解压
- 复制或生成响应文件
./ids_install -r /tmp/informix.rsp(直接生成的改文件可能不可用,删除后复制bundle.properties)
- 修改响应文件相关配置参数
LICENSE_ACCEPTED=TRUE USER_INSTALL_DIR=/opt/informix UNIX_INSTALLTYPE_SELECT=DEFAULT IDS_INSTALL_TYPE=TYPICAL
- 运行静默安装
./ids_install -i silent -f /tmp/informix.rsp
- 修改环境变量
将 /opt/informix/ol_informix1210.ksh 中的环境变量内容复制到 /home/informix/.bash_profile中 - 使用
- 切换用户informix
su - informix
- 初始化informix
oninit -ivy
- 进入实例
dbaccess
- 切换用户informix
一些初始化问题
-
初始化时报错:共享内存已存在
解决:
释放已存在的共享内存:onclean -ky
再次初始化,若仍报错误,onmode -ky 后 oninit -ivy -
online.log日志报错:
ISK INITIALIZATION ABORTED: potential instance overwrite detected. To disable this check, set FULL_DISK_INIT to 1 in your config file and retry.
解决:
问题原因为:不能释放内存空间。查看配置文件,从 informix 11.70 开始,配置文件中新增了 FULL_DISK_INIT 参数对当前已经初始化的dbspace 进行保护,默认值为 0,如需对 dbspace 进行初始化操作,需将参数值修改为 1 后再次执行初始化命令。 -
不能访问配置文件导致不能初始化
解决:
确认是否用户的环境变量不一致导致,可查看 /home/informix/.bash_profile ,修改确认后使用 dbaccess 应能连接到实例。
shell 脚本
可将上述步骤整理为 shell 脚本,直接运行安装。
#!/bin/bash
pkg=iif.12.10.FC4TL.linux-x86_64.tar
tmp_path=/tmp/informix
useradd informix -d /opt/informix
passwd informix <<EOF
informix
informix
EOF
mkdir -p ${tmp_path}
cd ${tmp_path}
tar -xvf ${pkg}
cat > informix.rsp <<EOF
LICENSE_ACCEPTED=TRUE
USER_INSTALL_DIR=/opt/informix
UNIX_INSTALLTYPE_SELECT=DEFAULT
LICENSE_ACCEPTED=TRUE
USER_INSTALL_DIR=/opt/informix
IDS_INSTALL_TYPE=TYPICAL
EOF
./ids_install -i silent -f ${tmp_path}/informix.rsp
cat /opt/informix/ol_informix1210.ksh >> /opt/informix/.bash_profile