Linux下informix安装及数据库迁移

今天遇到informix环境 onstat,oninit报错,因为是新部署环境,很多未配置故参考以下,现仍未解决。

=====以下内容来源网上,但通过自己实践,并重新整理过了==
1.创建informix用户和组。
useradd informix
2. informix用户登录,并设置一些环境变量
在~.bashrc里追加如下内容:
INFORMIXDIR=/home/informix
INFORMIXSERVER=pdc //主机名
INFORMIXTERM=terminfo
DBPATH=$INFORMIXDIR
TERMCAP=$INFORMIXDIR/etc/termcap
PATH=$INFORMIXDIR/bin:$HOME/bin:$PATH
ONCONFIG=onconfig.std
DB_LOCALE=zh_cn.gb
CLIENT_LOCALE=zh_cn.gb
DB_LANG=zh_cn.gb
DBDATE=MDY4/
export INFORMIXDIR PATH ONCONFIG DB_LANG DB_LOCALE CLIENT_LOCALE DBDATE INFORMIXSERVER
SQLEXEC=$INFORMIXDIR b lexec
3.source .bashrc使上面生效。
4.tar xvf iif.11.50.UC3DE.Linux-RHEL4.tar
5.切换到root用户下执行ids_install这个脚本,按照提示进行安装。
6.安装完成后进入etc目录,cp onconfig.std onconfig ====并且需要进入onconfgi.std配置 DBSERVERNAME pdc
7.修改sqlhost文件加入:pdc onsoctcp 192.168.0.145 sqlexec
8.修改/etc rvices文件加入内容如下:sqlexec 1526/tcp #informix DBMS
9.初始化数据库:oninit –ivy,提示“INFORMIXSERVER does not match DBSERVERNAME or any of the DBSERVERALIASES.FAILED”错误,这时参看你的主机名和环境变量里设置的是否一样。
分别查看:三个地方的文件,.bashrc; sqlhost; onconfig.std
报错信息“oninit: Fatal error in shared memory initialization
WARNING: server initialization failed, or possibly timed out (if -w was used).
Check the message log, online.log, for errors.”这时查看tmp/online.log日志。
解决办法:touch tmp/
cd tmp/
touch demo_on.rootdbs;
chmod 660 demo_on.rootdbs
再执行:oninit –ivy
===注意啦,平时启动时=======oninit,不能带i,不然会把数据库删除掉。
10.结束oninit进程:onmode –ky,启动:oninit。
ps –e可以看到oninit进程。netstat -na|grep 1526
11.执行命令:onmonitor
Termcap entry too long
Too many tc= indirections
第2 / 5页
Program stopped at "tb4_main.4gl", line number 82.
FORMS statement error number -1170.
The type of your terminal is unknown to the system.
以上错误解决方法:export TERMINFO=/home/informix/etc petab
export TERMCAP=$INFORMIXDIR/etc/termcap
但是执行onmonitor后不能用键盘右键操作,这时修改.bashrc文件加入: export TERMINFO=/home/informix/etc petab
12.创建数据库:
Mkdir data
cd data
touch db1
chmod 660 db1
dbaccess
=====================================
1. create database dbname with log创建数据库状态是U
2. create database dbname with buffered log创建数据库状态是B
===========数据库迁移常用命令===================
dbschema 常用命令
1)导出数据库中所有的表结构到文件db.sql
$>dbschema -d your_database -t all db.sql
第3 / 5页
2)导出数据库中所有的存储过程到文件db.sql
$>dbschema -d your_database -f all db.sql
3)导出数据库中的所有对象(包含表,存储过程,触发器。。。)到文件db.sql $>dbschema -d your_database db.sql
4)导出数据库中一个表的结构到文件db.sql
$>dbschema -d your_database_name -t your_table_name db.sql
5)导出一个存储过程定义到文件db.sql
$>dbschema -d your_database_name -f your_procedure_name db.sql
6)如果导出更多的表的信息(EXTENT...)
$>dbschema -d your_database_name -ss db.sql
7)导出数据库中对用户或角色的授权信息
$>dbschema -d your_database_name -p all
$>dbschema -d your_database_name -r all
8)导出数据库中的同义词
$>dbschema -d your_database_name -s all
========
导进去用:
dbaccess dbname db.sql
======
1. dbexport
将数据库以ASCII方式下载。该命令常用于迁移数据库。
如:命令dbexport -o /informix _export stores7,将数据库 stores7 下载到/informix _export/stores7.exp 目录下。
数据库模式文件存放在/informix _export/stores7.exp/stores7.sql 下。
2. dbimport
与dbexport 配合使用,根据dbexport 的输出创建数据库。
第4 / 5页
根据上例中输出结果创建数据库。
dbimport -i /home/informix _export dbname -c -l buffered -----------------
update statistics ;
===============
如库 dbname 被锁,网上查了久久没找到解决办法, 偶使用 "ondblog cancel dbname "解决。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值