Informix 1 2 3
安装
准备
到IBM网站查看要安装的Informix对各中操作系统的要求,主要是一些软件要求,如:IDS 10(Informix Dynamic Server)在RHEL 4安装需要先装compat-libstdc++-33-3.2.3。
安装
在informix发布包里有installserver脚本,切换到该目录,直接./installserver即可开始安装,默认是以控制台方式安装,一直按默认选项下一步就可以了。
配置
1) 设置环境变量
Linux/Unix的环境变量都是以修改文件方式维护进去的,和Windows一样,也分系统和用户环境变量。/etc/profile文件对应着系统环境变量,每个用户根目录下还有各自单独指定的环境变量($HOME/.profile或$HOME/.bash_profie等),修改/etc/profile在最后面(在中间加容易和系统原有的设置脚本产生错误)加上对应的环境设置。例如:
INFORMIXDIR=/opt/Informix
PATH=$PATH:$INFORMIXDIR/bin
INFORMIXSERVER=myIfxSvr #指定informix服务名
CLIENT_LOCALE=zh_CN.gb
DB_LOCALE=zh_CN.gb
SERVER_LOCALE=zh_CN.gb
DBLANG=zh_CN.gb
DBDATE=Y4MD #设置informix日期存储格式为YYYYMMDD
ONCONFIG=onconfig.crms #指定informix的配置文件,默认为$INFORMIXDIR/etc/onconfig.std
export INFORMIXDIR PATH INFORMIXSERVER CLIENT_LOCALE DB_LOCALE SERVER_LOCALE DBLANG DBDATE ONCONFIG
2) 设置系统主机名
修改/etc/hosts文件,在里面加入一行ip hostname,如:
127.0.0.1 localhost.localdomain server
127.0.0.1 localhost.localdomain client
192.168.128.131 ifxHost
3) 设置Informix服务
修改$INFORMIXDIR/etc/sqlhosts文件
#DBServerName NetType HostName ServiceName
myIfxSvr onsoctcp ifxHost crms
4) 配置监听端口,修改/etc/services
# Local services
crms 8888/tcp
5)建立DBSpace
[informix@ifxHost dbs]$ touch rootdbs (创建一个文件)
[informix@ifxHost dbs]$ chmod 660 * (将当前目录下文件设为用户和组可读写)
[informix@ifxHost dbs]$ ls -l
total 4
-rw-rw---- 1 informix informix 0 Sep 26 17:02 rootdbs
详细建空间见附件
6)修改informix配置文件
DBSERVERNAME myIfxSvr # Name of default database server
NETTYPE soctcp # Configure poll thread(s) for nettype
ROOTNAME rootdbs # Root dbspace name
ROOTPATH /opt/informix/dbs/rootdbs # Path for device containing root dbse
ROOTSIZE 1500000 # Size of root dbspace (Kbytes)
SBSPACENAME blobdbs # Default smartblob space name
7)初始化informix
oninit –ivy
常用操作
onspaces
DBSpace最直观的解释就是放在硬盘上的文件,informix一般常用的dbspace有rootdbs、datadbs、tmpdbs、logdbs,当然我们的系统还需要一个blobdbs。建立dbspace之前就是先要把这些文件准备好,touch filename即可,然后要chmod设置文件权限,chmod 660 * filename。
文件建立好后,通过onspaces或onmonitor建立DBSpace
onspaces –c spaceName –p pathtofile –o offset –s size –k pagesize
如:onspace –c –rootdbs –p /opt/Informix/dbs/rootdbs –o 0 –s 1024000 –k 1024
建立特殊空间还需要另加参数,如-t表示临时空间,-S表示智能大对象空间
通过onspaces –d spacename可删除空间
onstat
onstat -d 查看dbspace
onstat –c查看配置文件
oninit启动informix服务
onmode –ky 停止服务
onmonitor查看或更改informix的各种信息
dbexport dbname 备份数据库
dbimport dbname 还原数据库
ontape –s –L 0 做0级备份
附录
涉及命令
用户相关:groupadd,useradd,passwd
修改文件:vi filename,进入文件后i 进入insert模式,再Ins是替换模式,Esc切换模式,x为删除当前字符,要退出Esc+:+q,保存修改Esc+:+wq
查看信息:hostname,id,env,echo
Informix详细配置
sqlhosts:
$INFORMIXDIR/etc/sqlhosts文件至少要有一个登录项(一行),每个登录项必须具备四个参数,DBServerName,NetType,HostName,ServiceName。
DBServerName和环境变量INFORMIXSERVER要一致
NetType由8个字母组成。前2个字母和informix产品相关:ol->OnLine,se->INFORMIX-SE,dr->INFORMIX-Gateway with DRDA;中间3个字母表示实现通讯的网络接口:ipc->IPC(进程通讯),soc->sockets,tli->TLI(传输级接口),其中ipc是同一台机器内部进程间通过共享内存进行通讯的方式,其它两个是网络程序接口;最后3个字母表示特定的通讯协议:shm->共享内存通讯,str->数据流管道通,tcp->TCP/IP网络协议,spx->IPX/SPX网络协议。我们需要不是单机版的Informix,所以NetType推荐为onsoctcp。
HostName即为主机名,用hostname命令可查看
Services
/etc/services文件描述了系统所有服务的协议以及端口。再配置informix服务的时候只需要加一行:
ServiceName port/procotol
ServiceName要和sqlhosts中的ServiceName一致,port要为系统未占用的端口号,procotol即为sqlhosts中的NetType的后3个字符
onconfig
informix主要在这个文件里指定DBServerName以及DBSpaces。Informix装好后,默认的配置文件为$INFORMIXDIR/etc/onconfig.std,可以通过ONCONFIG环境变量来设置onconfig配置文件,这种情况在Informix需要多个服务时候才需要,建议一般情况下不用指定特定的onconfig文件,因为就算指定了自己的onconfig文件,Informix初始化的时候依然是要用onconfig.std作为配置模板,这就是说我们指定了自己的onconfig文件,但还是得去修改onconfig.std,然后把它复制到我们自己的onconfig文件里。
Onconfig文件主要要修改一下地方:
这里面的设置很多都是和环境变量已经sqlhosts相关联的,注意DBServerName和ServiceName不是一个概念。
# System Configuration
SERVERNUM 0 # Unique id corresponding to a OnLine instance
DBSERVERNAME eXist # Name of default database server
DBSERVERALIASES # List of alternate dbservernames
NETTYPE soctcp # Configure poll thread(s) for nettype
设置默认空间,初始化数据库之前至少要建一个默认空间,因为初始化会产生3个系统库,没空间的话存的地方都没有,自己的库都没地方存,informix肯定不会让我们这么干的
# Root Dbspace Configuration
ROOTNAME rootdbs # Root dbspace name
ROOTPATH /opt/informix/dbs/rootdbs # Path for device containing root dbse
ROOTOFFSET 0 # Offset of root dbspace into device (Kbytes)
ROOTSIZE 1500000 # Size of root dbspace (Kbytes)
关于TAPE DEVICE的都设为null,因为我们基本上不会用到TAPE了
# System Archive Tape Device
TAPEDEV /dev/null # Tape device path
TAPEBLK 32 # Tape block size (Kbytes)
TAPESIZE 10240 # Maximum amount of data to put on tape (Kbytes)
设置SBSpace空间,存放智能大对象(blob,clob)的地方,当然,在用之前得先把它建起来
SBSPACENAME blobdbs # Default smartblob space name - this is where blobs
# go if no sbspace is specified when the smartblob is
# created. It is also used by some datablades as
# the location to put their smartblobs.