Informix安装全攻略

标签:

informix

安装

it

杂谈

分类: 数据库技术

(1)增加informix用户和组
   groupadd informix
   useradd informix -g informix
   passwd Informix

(2)准备安装点及挂载光盘

在/opt下建立informix目录作为安装目录
   在/mnt下建立cdrom目录作为光驱的挂载点
   然后 mount /dev/cdrom /mnt/cdrom

(3)安装Informix Dynamic Server 9.4

在/mnt/cdrom/linux-informix-94//ids里执行ids_install
   输入1安装Informix Dynamic Server
   输入/opt/Informix 安装路径

若在安装过程中出现:
    etc/brand: error while loading shared libraries: libstdc++-libc6.2-2.so.3: cannot open shared object file: No such file or directory
   解决办法如下:
   在/usr/lib下做一个名为libstdc++-libc6.2-2.so.3的软链接到高版本的libstdc++
   代码:
   $ cd /usr/lib
   $ ls libstdc++*

在我的系统上ls命令的结果是 libstdc++.so.5.0.7 libstdc++.so.6.0.3
   libstdc++.so.6.0.3就是我们要找的,给它做个链接
   代码:
   $ sudo ln -s libstdc++.so.6.0.3 libstdc++-libc6.2-2.so.3
(4)编辑sqlhosts文件

cd /u1/informix/etc
   cp sqlhosts.std sqlhosts
   vi sqlhost

说明:
   INFORMIXDIR/etc/sqlhosts文件是连接文件。

它包含能使Informix客户端应用连到网络上的任何Informix数据库服务器的信息。它规定数据库服务器的名称、连接的类型、主机的名称和服务名称。即使客户机应用和OnLine数据库服务器在同一计算机上也必须准备sqlhosts文件。
   Sqlhosts必须包含一个登录项(一行),它是你为连到网络上的每个数据库服务器的每种连接所提供的。在sqlhosts文件中的每一个登录项有如下五个域:
o dbservername域
o nettype域
o hostname域
o servicename域
o options域

前四个域是必须的。Options是可选的。这些域解释如下:
o dbservername 是数据库服务器名
    与ONCONFIG配置文件中的DBSERVERNAME和环境变量INFORMIXSERVER的内容是一致的。跨越所有相关网络的每个数据库服务器必须有唯一的dbservername。如果sqlhsots文件有相同的dbservername的多个登录项,则只使用第一个。
o nettype
    描述在客户应用和数据库服务器之间的接口/协议组合的类型。
    nettype由三个子域组成的八个字母的序列。
    nettype的前两个字母代表数据库服务器产品,如下:
    on OnLine(这是建议形式)
    ol OnLine
    se INFORMIX-SE
    dr INFORMIX-Gateway with DRDA
 
    nettype中间三个字母按如下方式表示实现通讯的网络程序接口:
    ipc IPC(进程通讯)
    soc sockets
    tli TLI(传输级接口)

其中ipc是在同一计算机内部进程间通过共享内存进行通讯的方式。其他两项是网络程序接口,详细情况见后。
    nettype最后三个字母按如下方式表示特定的IPC机制或通讯协议。
    shm 共享内存通讯
    str 数据流管道通讯
    tcp TCP/IP网络协议
    spx IPX/SPX网络协议
 
    nettype值汇总
 
    nettype值 说明 连接类型   
    onipcshm OnLine 使用共享内存通讯 IPC   
    onipcstr OnLine 使用数据流管道通讯 IPC   
    ontlitcp OnLine 使用TCP/IP协议TLI 网络   
    onsoctcp OnLine 使用TCP/IP协议的sockets 网络   
    ontlispx OnLine 使用IPX/SPX协议的TLI 网络 
o hostname
数据库服务器驻留的计算机名称。在文件/etc/hosts中要有定义和说明。
也可以使用IP地址。但建议不要这样使用。
o servicename
其解释取决于nettype域中规定的连接类型。
    1. 共享内存和数据流管道通讯
    当nettype域指定一个共享内存连接或数据流管道连接时,OnLine内部使用在servicename登录项中的值,去建立一个支持这种连接的文件。对于onipcshm和onipcstr连接,sericename可以是OnLine驻留的计算机的环境中任何唯一的短字母组。Informix建议对于数据流管道连接,使用dbservername作为servicesname。
    2. 使用TCP/IP的网络通讯
    当使用TCP/IP连接协议时,servicename必须对应于/etc/services文件中servicename登录项:
/etc/services文件中的端口号告诉网络软件如何发现指定主机上的服务器。它与选择的服务名无关,只要它在该文件中的定义唯一即可。
o options
    为指定连接提供额外的灵活性。
(5)编辑.profile文件

   su - informix

   vi .profile
   添加内容如下:
   INFORMIXDIR=/u1/informix;export INFORMIXDIR
   INFORMIXSERVER=test_on;export INFORMIXSERVER
   NCONFIG=onconfig.test;export ONCONFIG
   PATH=$INFORMIXDIR/bin:$PATH;export PATH
   DB_LOCALE=zh_cn.gb;export DB_LOCALE
   CLIENT_LOCALE=zh_cn.gb;export CLIENT_LOCALE
   SERVER_LOCALE=zh_cn.gb;export SERVER_LOCALE
   DBDATE=Y4MD/;export DBDATE
   DBCENTURY=C;export DBCENTURY
   DBDELIMITER=^A;export DBDELIMITER
   LD_LIBRARY_PATH=$INFORMIXDIR/lib:$INFORMIXDIR/lib/esql;export LD_LIBRARY_PATH
   TERMCAP=$INFORMIXDIR/etc/termcap;export TERMCAP

(6)初始化数据库
   su - informix
   先建立表空间文件:mkdir /u1/cookfile
   touch infxroot infx01
   chmod 660 /u1/cookfile/*
   onmonitor->Parameters->Initialize
   注意事项:
   第一页:
   Tape Dev.和Log Tape Dev.改成/dev/null
   rootdbs路径改为刚建的/u1/cookfile/infxroot,大小自定
   第二页(shared memory):
   Server Number要唯一
   Server Name要与当前的$INFORMIXSERVER一样,且一定要在sqlhosts中存在
   Server Aliases也要在sqlhosts中存在
   第三页:
   配一下sqlhosts中用到的nettype settings
   第五页:
   若有多个online,Message Log最好区分开来,如online_01.log
   Dump Shared Memory改为N
(7)新建一个Dbspace
   onmonitor->Dbspaces->Create
   名称、大小自定,Mirror、Temp都为N,路径/u1/cookfile/infx01
   至此Informix Server已基本安装完毕,数据库处于Quiescent状态,执行onmode -m 就可处于联机状态
(8)初始化数据库
   oninit -ivy
   成功后用onstat -i 就可以看到了
   Informix Dynamic Server Version 9.40.UC1E1   -- On-Line -- Up 00:31:47 -- 18872
Kbytes
(9)问题解答
  1.profile 不生效,

   解决:

   把login shell 改为ksh即可。在图形界面下users and groups设置。
   使用不一样的sh,启动载入的环境文件也是不一样滴~~~ 
   CSH:.cshrc 
   SH:.profile 
   BASH:.bash_profile


  2.初始化出现:
   Checking group membership to determine server run modesucceeded
   Reading configuration file '/opt/informix4/etc/onconfig'...succeeded
   Creating /INFORMIXTMP/.infxdirs ... succeeded
   Creating infos file "/opt/informix4/etc/.infos.scp4" ... "/opt/informix4/etc/.co
   nf.scp4" ... succeeded
   Writing to infos file ... succeeded
   Checking config parameters...succeeded
   Allocating and attaching to shared memory...FAILED
   oninit: Fatal error in shared memory creation
   online.log出现:
   01:45:13  shmget: [EEXIST][17]: key 52a24801: shared memory already exists
   01:45:13  mt_shm_init: can't create resident segment
   解决
   修改配置文件onconfig中的服务器标识号(默认为0),只要是唯一就可以了,不能过太。在多实例安装中常出现此问题。例如
   SERVERNUM       49          # Unique id corresponding to a Dynamic Server instance
 
   3.初始化最后出现
   Unable to open input file 's'
   Unable to open input file 'c'
   Online.log中为:
   Dataskip is now OFF for all dbspaces
   01:47:33  On-Line Mode
   01:47:33  Building 'sysmaster' database ...
   01:47:33  Assert Failed: build_smi failed
   01:47:33  Informix Dynamic Server Version 7.31.UD6W4
   01:47:33   Who: Session(12, informix@ibmocs, 0, 1074267956)
                Thread(21, build_smi, 40059904, 1)
                File: rspseudo.c Line: 7603
   01:47:33   Results: Cannot build/check 'sysmaster' database
   01:47:35   See Also: /tmp/af.3fd20b5, shmem.3fd20b5.0
   01:47:35  Error 1 occurred executing /bin/sh /bin/sh -c /opt/informix4/etc/log_f
ull.sh 3 7 "Dynamic Server Initialization failure." "build_smi failed" /tmp/af.3
fd20b5
 
   解决:
   解决了这个问题,但不知问题所在。使用informix用户安装不应出现这个问题。用同组中的其它用户也可以安装成功的,只是有一步要注意,都不知为什么.
最好看看你的根目录下面有没有INFORMIXTMP目录。并且看看informix 用户有没有权限。
看看是不是你的数据库没有空间了,或者逻辑日志满了,或者你的导入文件本身存在问题等等。
 
4.提示信息到nitializing 1 flushers...succeeded就结束了
 
   Online.log中的内容:
   1:59:28  Event alarms enabled.  ALARMPROG = '/opt/informix4/etc/log_full.sh'
   01:59:33  DR: DRAUTO is 0 (Off)
   01:59:33  AIX MP latch code enabled
   01:59:33  Requested shared memory segment size rounded from 588KB to 592KB
   01:59:33  Informix Dynamic Server Version 7.31.UD6W4   Software Serial Number AC
P#J267193
   01:59:33  listener-thread: err = -25572: serr = 67: errstr = : Network driver c
annot bind a name to the port.
 System error = 67.
   01:59:33  Attempting to bring listener thread down.
 
   01:59:33  Server stopped.
 
   01:59:33  Informix Dynamic Server Stopped.
   01:59:33  mt_shm_remove: WARNING: may not have removed all/correct segments
 
   解决:
   端口问题。
   看sqlhosts是否正确,与/etc/services中的是否对应。 (改为1528就行了)

   5.执行如onstat,onmode,ontape,dbaccess等命令时,总是提示:
     Incorrectly built binary which accesses errno or h_errno directly. Needs to be fixed.
   解决
   在环境变量里加上 export LD_ASSUME_KERNEL=2.4.1   主要是AS3缺省使用的是NTPL,而不是pthread
   加了 LD_ASSUME_KERNEL=2.4.1 后使用 pthread库就不会有这个错误了!

   6.要在其他用户中登录数据库,只需在配置文件中配置:
     INFORMIXDIR=/opt/informix
     export INFORMIXDIR
     PATH=$INFORMIXDIR/bin:$PATH
     export PATH
     INFORMIXSERVER=cs_dbs
     export INFORMIXSERVER
     NCONFIG=onconfig.cs
     export ONCONFIG

   7.如何修改hostname

     很多人使用hostname 主机名 来修改,其实这个只是做为暂时的,重启后将恢复到原来的名字.

     很多人说修改/etc/hosts文件,其实这个文件里的主机名只是为来提供给dns解析的.如果你用不上dns,只需要修改主机名,那修改这个没用.

     其实是修改这个文件etc/sysconfig/network这个文件里的主机名.

     NETWORKING=yes
     HOSTNAME=主机名

     记得重启!!!

 

     完整:

     第一步:
     #hostname oratest
     第二步:
     修改/etc/sysconfig/network中的hostname
     第三步:
     修改/etc/hosts文件

   8.Informix服务已经启动,但是在windows数据源那里连不上
     解决:

     把sqlhosts里的主机名改成ip 如192.168.1.18
     然后 onmode –ky  再 oninit –y 重启数据库

  (10).安装csdk.cpi (包括esql编译器)
     mount  /dev/cdrom  /mnt/cdrom

     把它拷贝在磁盘上,如$HOME/priv/lxj/tmp,
     再在$INFORMIXDIR执行  cpio -idmv < $HOME/priv/lxj/tmp/csdk.cpi 解压
(不能在/mnt/cdrom直接执行cpio,因为光盘是只读的,创建不了目录,生成的文件可以看到installclientsdk,这个也一定要在$INFORMIXDIR下执行,所以要解压到$Iinformixdir,完成后再以root身分执行RUN_AS_ROOT.clientsdk)

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/611609/viewspace-686979/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/611609/viewspace-686979/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值