Linux下informix安装及数据库迁移

来源:互联网 发布:网络优化培训费多少 编辑:程序博客网 时间:2024/04/25 06:58
今天碰到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=$INFORMIXDIRblexec
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.修改/etcrvices文件加入内容如下: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/etcpetab
export TERMCAP=$INFORMIXDIR/etc/termcap
但是执行onmonitor后不能用键盘右键操作,这时修改.bashrc文件加入: export TERMINFO=/home/informix/etcpetab
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 "解决。 
1 0
原创粉丝点击