Linux下informix安装及数据库迁移

=====以下内容来源网上,但通过自己实践,并重新整理过了== 

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/lib/sqlexec

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/services文件加入内容如下: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

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/typetab

export TERMCAP=$INFORMIXDIR/etc/termcap

但是执行onmonitor后不能用键盘右键操作,这时修改.bashrc文件加入:

export TERMINFO=/home/informix/etc/typetab

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

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/db_export stores7,将数据库 stores7 下载到/informix/db_export/stores7.exp 目录下。
数据库模式文件存放在/informix/db_export/stores7.exp/stores7.sql 下。

2. dbimport
与dbexport 配合使用,根据dbexport 的输出创建数据库。

根据上例中输出结果创建数据库。
dbimport -i /home/informix/db_export dbname -c -l buffered
-----------------


 update statistics ;

 


===============
如库 dbname 被锁,网上查了久久没找到解决办法,
偶使用 "ondblog cancel dbname "解决。

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值