Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103624351
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: DB2/Informix

2008-04-03 21:11:53

安装前的准备工作:
用超级用户(ROOT)登录服务器建立安装INFORMIX所需的用户,组和路径:
注意:INFORMIX用户的LOGIN SHELL方式选用默认;
     INFORMIX组INFORMIX用户的组号要大于或等于100
     INFORMIX用户的用户号要大于或等于100
     INFORMIX用户要属于INFORMIX用户
例如: 加入informix 用户,UID为200,GROUP ID为201,HOME目录为 
/usr/informix, SHELL 为/usr/sbin, 存盘退出。 

准备数据库空间,可采用操作系统文件作为数据库空间。建立rootdbs设备。如为操作系统文件,用
# cd /usr/informix
# mkdir data
# cd data
# touch rootdata 或者 vi rootdata  建立空文件。
 
修改属主和权限,此时,pwd 应为: /usr/informix/data
 #chown  informix:informix  rootdata   改变设备属主和组
 #chmod  660  rootdata 访问权限

增加环境变量:
创建环境(在Informix用户下) 
# pwd
# /usr/informix
# vi .profile 
添加
INFORMIXDIR=/usr/informix 
INFORMIXSESERVER =online
PATH=$PATH:$ INFORMIXDIR /bin 
TERM=vt100 
Export INFORMIXDIR INFORMIXSESERVE  TERM

解开安装用的程序文件包
#cd $INFORMIXDIR
解开安装用的文件包。
#mount  -F cdfs –r /dev/cdrom/cdrom1  /mnt
解开安装用的文件包,对于不同产品,文件名不同:
IDS:
此时, pwd 为 /usr/informix
#cp /mnt/ids.tar  /usr/informix
#tar xvf ids.tar

开始安装INFORMIX数据库
此时, pwd 为 /usr/informix

#./installids 安装IDS
    安装程序提示输入序列号
     AAC#J973941
    安装程序提示输入KEY值
     GRKBJL
   一会,IDS安装完成;
注意:必需以SUPER USER登录(ROOT)才能够正常的安装运行;


配置数据库系统参数
修改内核参数
$INFORMIXDIR/release/en_us/0333/IDS_7.3中的Shared Memory Parameters和Kernel
      Parameters部分的参数拷贝至/etc/conf/cf.d/stune中(已存在的同名参数要删 除,注意名字后的‘:’要删掉,最后不能有空行,否则重建内核时会出错)。
或者用: /etc/conf/bin/idtune SHMMNI  200
        /etc/conf/bin/idtune SHMSEG  15
        /etc/conf/bin/idtune SHMMAX  536870912
        /etc/conf/bin/idtune SEMMNI  150
        /etc/conf/bin/idtune SEMMNS  60
        /etc/conf/bin/idtune SEMMSL  150

#cd /etc/conf/bin
#./idbuild -B   重建内核
#shutdown –g0 -y       重服务器让内核参数生效


初始化数据库
以informix用户登录,用onmonitor修改onconfig文件,修改如下:   

ROOTDBS  /usr.informix/data/rootdata #修改ROOTPATH 项为你想建的ROOTDBS文件 
                          系统所在的文件
ROOTOFFSET      0         #如为裸设备,修改偏移为100k bytes
ROOTSIZE        200000    #修改root数据库空间大小
PHYSFILE    30000       #修改物理日志大小
LOGFILES   6     #逻辑日志文件数
LOGSIZE         10000  #每个逻辑日志文件的大小
TAPEDEV         /dev/null   #数据库备份文件
LTAPEDEV        /dev/null  #逻辑日志备份文件,设为空,系统自动滚动使用日志
DBSERVERNAME   online         #修改DBSERVERNAME项为数据库服务器名online
DBSERVERALIASES online_net    #数据库别名,由网络访问数据库时,使用该名
LOCKS           100000          # 最大锁数目
BUFFERS         10000           # 缓冲区数目,每个缓冲区2K
LOGSMAX         60              # 最大逻辑文件数
SHMVIRTSIZE     64000    #初始化共享内存数,内存总数的1/3-1/2

另,凡是带目录的INFORMIX选项都改为安装时的对应目录名;

配置sqlhosts
   sqlhosts有四项:
   ncp采用进程间通信协议(onipcshm);
   客户端采用tcp协议(一般用ontlitcp或onsoctcp);
   主机名对应/etc/hosts文件的主机名;
   端口号对应/etc/services的服务配置,也可直接给出端口的值,则不必在services中配置服务名;
   对进程间通信协议,服务名是任给的,不须出现在services中。

此时,pwd 应为: /usr/informix/data
#vi sqlhosts
数据库名          协议    主机名     端口号
online          onipcshm            test            9001
online_net      ontlitcp            test            sqlexec


#vi /etc/hosts
增加
192.0.33.200  test               数据库服务器的IP地址和服务器名

#cd /
#cd etc
#vi services  在最后加
sqlexec   9001/tcp


运行初始化程序
$oninit -ivy
如果有错误,查看/$INFORMIXDIR/online.log
$onstat  
查看INFORMIX是否起来;如果启动正常,应该如下:
$ onstat

Informix Dynamic Server Version 7.31.UC6    -- On-Line -- Up 00:53:12 -- 8888 Ks
Userthreads

address  flags   sessid   user     tty      wait     tout locks nreads   nwrites
a12a014  ---P--D 1        informix -        0        0    0     12       26
a12a500  ---P--F 0        informix -        0        0    0     0        17
a12c288  Y--P--M 21       informix pts006   a31a9f4  0    0     0        0
 8 active, 128 total, 18 maximum concurrent

Profile
dskreads pagreads bufreads %cached dskwrits pagwrits bufwrits %cached
141      152      3863     96.35   28       43       27       0.00


启动和关闭数据库服务器
启动INFORMIX数据库,进入多用户模式,运行oninit,
进入静态(单用户)模式,运行oninit -s
避免使用oninit –ivy,该命令使rootdbs重新初始化
关闭数据库,使用onmode -ky
从多用户模式进入单用户模式: onmode -s

命令 onmode -? 可获取帮助,
$ onmode /?
onmode: Unknown option /?
usage:  onmode -abcDdFklMmnOpQRrSsuyZz
      -a     Increase shared memory segment size.
      -a     Increase shared memory segment size.
      -b    Revert Dynamic Server disk structures.
      -c [block | unblock]   Do Checkpoint. Block or unblock server.
      -D   
      -d   {standard|{primary|secondary }} set DR server type
      -F   Free unused memory segments
      -k   Shutdown completely
      -l   Force to next logical log
      -M   
      -m   Go to multi-user on-line
      -n   Set shared memory buffer cache to non-resident
      -O   Override space down blocking a checkpoint
      -p <+-#>    Start up or remove virtual processors of
           a specific class
      -Q   
      -R   Rebuild the /INFORMIXDIR/etc/.infos.DBSERVERNAME file
      -r   Set shared memory buffer cache to resident
      -S   
      -s   Shutdown to single user
      -u   Shutdown and kill all attached sessions
      -y   Do not require confirmation
      -Z 
 heuristically complete specified transaction
      -z    Kill specified session id
$

创建空间和数据库

用onmonitor->dbspaces->create创建112数据空间,逻辑日志空间,temp空间。如在裸设备上创建,应设置100K(通常为50页)的偏移(OFFSET)。可在一裸设备上创建多个dbspace,dbspace之间可留有部分空隙,如:
dbspace   location  offset(page)   size(page)
db112   /dev/rootdbs   50     500000 (1G bytes)
logdbs   /dev/rootdbs   500150    200000 (400M)
tmpdbs   /dev/rootdbs  700250    100000 (200M)

注意:偏移量(offset)=前一SIZE+前一offset
 
修改物理日志位置和大小
用onmonitor->parameters->physical-log修改物理日志位置和大小

修改逻辑日志位置和大小
用onmonitor->parameters->addlog增加逻辑日志,不要将逻辑日志增加在rootdbs上,应放在logdbs上。或用手工命令onparams -a -d logdbs

做一次0级备份后新的逻辑日志方可使用:
ontape 杝 朙 0(如想进行空备份,可将ONCONFIG的tapedev设为/dev/null,再备份)

如须删除逻辑日志,用onmonitor->parameters->droplog。

以INFORMIX用户登录,创建112数据库,用dbaccess创建112数据库,然后进行授权(infncp即为112用户名):
grant connect to infncp;
grant resource to infncp;

注意:在创建数据库时,必须给他逻辑日志;

建112表和过程

以112用户(infncp)登录,改.profile, 将对应机型的.profile文件模板拷贝至
ncp用户的HOME目录,修改INFO_HOME,INFORMIXSERVER,
DB_LOCALE,CLIENT_LOCALE,USERNAME(database名)等参数。
把\home\infncp\etc\udpserv.cfg拷贝到\home\infncp\bin目录下面,修改udpserv.cfg,修改SCP,RCP,本机的IP地址。
创建表和过程
    createtable    创建112所用的表
    createproc     创建112所用的过程
    inittable        初始化表

   进入NCP,看NCP是否可以启动;可以查看TMP目录下的ERR.LOG
   文件,知道NCP启动中的问题;




增加cron任务,定时执行历史数据清理。
修改cron_task/del_hist_data的环境变量值,然后设置cron任务:
crontab cron_task/del_hist_data.cron



附录:
/usr/informix/etcsqlhosts
# cd /usr/informix/etc
# vi sqlhosts

#demo_on        onipcshm        on_hostname     on_servername
#demo_se        seipcpip        se_hostname     sqlexec
infdb           onipcshm        UnixWareHost    sqlexec
infdb_net       ontlitcp        UnixWareHost    sqlexec


/etc/services
# pwd
/usr/informix
# cd etc
# vi onconfig
#**************************************************************************
#
#                          INFORMIX SOFTWARE, INC.
#
#  Title:       onconfig.std
#  Description: Informix Dynamic Server Configuration Parameters
#
#**************************************************************************

# Root Dbspace Configuration

ROOTNAME        rootdbs         # Root dbspace name
ROOTPATH        /usr/informix/data/root.dat
                                # Path for device containing root dbspace
ROOTOFFSET      0               # Offset of root dbspace into device (Kbytes)
ROOTSIZE        20000           # Size of root dbspace (Kbytes)

# Disk Mirroring Configuration Parameters

MIRROR          0               # Mirroring flag (Yes = 1, No = 0)
MIRRORPATH                      # Path for device containing mirrored root
"onconfig" 209 lines, 9351 characters
#
#                          INFORMIX SOFTWARE, INC.
#
#  Title:       onconfig.std
#  Description: Informix Dynamic Server Configuration Parameters
#
#**************************************************************************

# Root Dbspace Configuration

ROOTNAME        rootdbs         # Root dbspace name
ROOTPATH        /usr/informix/data/root.dat
                                # Path for device containing root dbspace
ROOTOFFSET      0               # Offset of root dbspace into device (Kbytes)
ROOTSIZE        20000           # Size of root dbspace (Kbytes)
ROOTSIZE        20000           # Size of root dbspace (Kbytes)

# Disk Mirroring Configuration Parameters

MIRROR          0               # Mirroring flag (Yes = 1, No = 0)
MIRRORPATH                      # Path for device containing mirrored root
MIRROROFFSET    0               # Offset into mirrored device (Kbytes)

HETERO_COMMIT   0

# Optimization goal: -1 = ALL_ROWS(Default), 0 = FIRST_ROWS
OPT_GOAL        -1

# Optimizer DIRECTIVES ON (1/Default) or OFF (0)
DIRECTIVES      1

# Status of restartable restore
RESTARTABLE_RESTORE off
NETTYPE         tlitcp,1,5,CPU  # Configure poll thread(s) for nettype
~
~
HETERO_COMMIT   0

# Optimization goal: -1 = ALL_ROWS(Default), 0 = FIRST_ROWS
OPT_GOAL        -1

# Optimizer DIRECTIVES ON (1/Default) or OFF (0)
DIRECTIVES      1

# Status of restartable restore
RESTARTABLE_RESTORE off
NETTYPE         tlitcp,1,5,CPU  # Configure poll thread(s) for nettype
~
~
~
~


/etc/services

sqlexec         9001/tcp
~


/etc/conf/cf.d/stune

# pwd
/usr/informix/etc
# vi /etc/conf/cf.d/stune
NUMREGPT        256
NUMSCOPT        32
DRV_SEGKMEM_BYTES       0x147A000
RSTCHOWN        0
CONSOLE_SECURITY        0

SHMMNI  200
SHMSEG  15
SHMMAX  536870912

SEMMNI  150
SEMMNS  60
SEMMSL  150
阅读(752) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~