系统环境:rhel5u5 64bit
数据库版本:informix v11.70fc1 for linux 64bit
安装配置步骤:
1.
安装informix,INFORMIXDIR的目录为/opt/Informix
此操作简略介绍:新建informix用户组,用户,安装数据库
2.
新增加两个用户用于此次的SDS配置(info1,info2均属于informix组,目录分别为/opt/info1,/opt/info2,shell使用bash),完成后的/etc/passwd中应含
informix:x:1000:1000::/opt/informix:/bin/bash
info1:x:1001:1000::/opt/info1:/bin/bash
info2:x:1002:1000::/opt/info2:/bin/bash |
在这里首次将使用info1做为primary server的实例,info2则创建sds 的实例。
3.
两个用户分别配置.bash_profile,增加用户环境,两者的INFORMIXSERVER不一致,ONCONIFG不一致(为什么ONCONFIG不一致?
因为INFORMIXDIR都是/opt/Informix,故ONCONFIG的目录都是在${INFORMIXDIR}/etc下),之后将两个用户的HOME目录属主改成informix:Informix,权限为755
用户info1的.bash_profile
INFORMIXDIR=/opt/informix
INFORMIXSERVER=ids1_online_net
ONCONFIG=onconfig.ids1
PATH=$PATH:${INFORMIXDIR}/bin
export INFORMIXSERVER INFORMIXDIR ONCONFIG
PATH |
用户info2的.bash_profile
INFORMIXDIR=/opt/informix
INFORMIXSERVER=ids2_online_net
ONCONFIG=onconfig.ids2
PATH=$PATH:${INFORMIXDIR}/bin
export INFORMIXSERVER INFORMIXDIR ONCONFIG
PATH |
退出重进用户,或者执行. .bash_profile (注意2个点之间的空格!)使用户环境生效。
以后的使用切换至带本用户环境的informix用户来操作,如使用带info1环境的informix用户环境为:
[root@rhel55 ~]#
su - info1
[info1@rhel55 ~]$
su informix
Password:
[informix@rhel55
info1]$
以下使用
[informix@rhel55
info1]$ 表示带info1环境的informix用户在info1的HOME下的操作
[informix@rhel55
info2]$ 表示带info2环境的informix用户在info2的HOME下的操作
4.
修改配置文件onconfig.ids1,onconfig.ids2
用户info1的配置文件onconfig.ids1:拷贝onconfig.std为onconfig.ids1,因为目的是用来测试,故主要修改的参数如下
ROOTPATH ./dbs/rootdbs
MSGPATH
$INFORMIXDIR/tmp/online.log.ids1
CONSOLE
$INFORMIXDIR/tmp/online.con.ids1
SERVERNUM 1
DBSERVERNAME ids1_online_net
NETTYPE soctcp,1,50,CPU
LTAPEDEV /dev/null
SDS_ENABLE 0
SDS_TEMPDBS
sdstempdbs,/opt/info1/dbs/sdstempdbs,2,0,20000
SDS_PAGING
/opt/info1/dbs/page1,/opt/info1/dbs/page2
UPDATABLE_SECONDARY 1 |
用户info2的配置文件onconfig.ids2:拷贝onconfig.std为onconfig.ids2,因为目的是用来测试,故主要修改的参数如下
ROOTPATH ./dbs/rootdbs
MSGPATH
$INFORMIXDIR/tmp/online.log.ids2
CONSOLE
$INFORMIXDIR/tmp/online.con.ids2
SERVERNUM 2
DBSERVERNAME ids2_online_net
NETTYPE soctcp,1,50,CPU
LTAPEDEV /dev/null
SDS_ENABLE 1
SDS_TEMPDBS
sdstempdbs,/opt/info2/dbs/sdstempdbs,2,0,20000
SDS_PAGING
/opt/info2/dbs/page1,/opt/info2/dbs/page2
UPDATABLE_SECONDARY 1 |
与info1的onconfig.ids1的区别在于SERVERNUM,DBSERVERNAME(区别不同的实例)
由于不能直接初始数据库到SDS Primary,故info1的配置中SDS_ENABLE应为0(禁用);
SDS_TEMPDBS
备用节点tempdbs(仅在备用节点上存在,必须)
SDS_PAGING 备用节点上两个必备的分页文件
UPDATABLE_SECONDAY
设置备用服务器可更新操作
在SDS系统中,以下参数在整个系统中应该一致:ROOTNAME、ROOTPATH、ROOTOFFSET、ROOTSIZE、PHYSDBS、PHYSFILE、LOGFILES 和 LOGSIZE
上述仅更改了ROOTPATH且都一致 ./dbs/rootdbs,其它的均保持原来的默认值,故都是一致的。
5.
配置SQLHOSTS文件,sqlhosts文件位于${INFORMIXDIR}/etc/目录下,其内容应包含
ids1_online_net onsoctcp rhel55
11801
ids2_online_net onsoctcp rhel55
11802 |
格式为:INFORMIXSERVER
ServiceType
Hostname/HostIP
ServicePort
6.
创建共享文件
在/opt/info1目录下创建dbs目录,并在dbs目录touch一个rootdbs文件,权限为660,如下,
[informix@rhel55 info1]$ mkdir dbs && touch
/opt/info1/dbs/rootdbs && chmod 660 /opt/info1/dbs/rootdbs
[informix@rhel55 info1]$ ls -l
total 4
drwxrwxr-x 2 informix informix 4096 Nov 16 04:11
dbs
[informix@rhel55 info1]$ ls -l dbs
total 4096
-rw-rw---- 1 informix informix 0 Nov 25 05:26
rootdbs
目录结构图
在/opt/info2目录下创建链接到/opt/info1/dbs的链接文件dbs,这样就相当于把/opt/info1/dbs变成了一个共享文件目录
[informix@rhel55 info2]$ ls -s /opt/info1/dbs
dbs
[informix@rhel55 info2]$ ls -l dbs
total 4
lrwxrwxrwx 1 informix informix 14 Nov 16 03:59 dbs
-> /opt/info1/dbs
目录结构图
|dbs
###在这里是链接目录
-
rootdbs |
以上配置完成后,即可在[informix@rhel55 info1]$ 执行ids1_online_net的初始化操作(为什么要在/opt/info1下执行?
因为ROOTPATH ./dbs/rootdbs 是个相对目录,是相对于/opt/info1来说的,所以必须在/opt/info1目录下执行。不然找不到啦!)
7.
实例ids1_online_net初始化,然后切换成SDS primary
[informix@rhel55 info1]$ oninit -ivy
检查初始化成功,标志是运行日志online.log.ids1中,sysmaster, sysutils,sysuser,sysadmin库均建立成功。否则检查初始化的原因并解决。
初始化成功后,设置ids1_online_net为SDS primary
[informix@rhel55 info1]$ onmode -d set SDS primary
ids1_online_net
通过onstat -g sds 查看状态
[informix@rhel55 info1]$ onstat -g sds
IBM Informix Dynamic Server Version 11.70.FC1 -- On-Line -- Up 00:04:35 -- 157396
Kbytes
Local server type: Primary
Number of SDS servers:0
完成设置SDS primary后,onconfig.ids1参数会自动更新SDS_ENABLE为1
8.
启动SDS备用节点,直接使用oninit启动即可
[informix@rhel55 info2]$ oninit -vy
…省略输出…
[informix@rhel55 info2]$ onstat -g sds
IBM Informix Dynamic Server Version 11.70.FC1 -- Updatable (SDS) -- Up 00:00:27 --
165588 Kbytes
Local server type: SDS
Server Status : Active
Source server name: ids1_online_net
Connection status: Connected
Last log page received(log id,page):
3,219
[informix@rhel55 info2]$ onstat -g dri
IBM Informix Dynamic Server Version 11.70.FC1 -- Updatable (SDS) -- Up 00:00:40 --
165588 Kbytes
Data Replication at 0x4c10c1c0:
Type State Paired server Last DR CKPT (id/pg) Supports Proxy Writes
SDS
Secondary on ids1_online_net 3 / 215 Y
DRINTERVAL 30
DRTIMEOUT 30
DRAUTO 0
DRLOSTFOUND
/opt/informix/etc/dr.lostfound
DRIDXAUTO 0
ENCRYPT_HDR 0
Backlog 0
在SDS备用节点上,输出的dbspace/chunk比主用节点多出一个sdstempdbs,这个是在onconfig中配置的,其dbs/chunk号均为可分配的最后一个值。
[informix@rhel55 info1]$ onstat -d
IBM Informix Dynamic Server Version 11.70.FC1 -- Updatable (SDS) -- Up 00:14:42 --
165588 Kbytes
Dbspaces
address
number flags fchunk
nchunks pgsize flags
owner name
4b6de028
1 0x60801 1
1 2048 NL BA
informix rootdbs
4d7c6b50
2047 0x142001 32766
1 2048 N TBA
informix sdstempdbs
4 active,
2047 maximum
Chunks
address
chunk/dbs offset size
free bpages flags pathname
4b6de1d0
1 1 0 100000 38235 PI-B--
./dbs/rootdbs
4d7c6cf8
32766 2047 0
10000 9947 PO-B--
/opt/info1/dbs/sdstempdbs
至此,SDS系统应该算是配置完成了,以下做一次SDS的切换。
1)
在[informix@rhel55 info1]$ 停止主用数据库,备用库的状态将切至Block状态(不可更新,这个表明
备用更新实际上仍是通过主用节点进行更新操作的)
[informix@rhel55 info1]$ onmode -ky
在备用节点上检查状态如下:
[informix@rhel55 info2]$ onstat -
IBM Informix Dynamic Server Version 11.70.FC1 -- Updates Blocked (SDS) -- Up 00:02:22 --
165588 Kbytes
[informix@rhel55 info2]$ onstat -g sds
IBM Informix Dynamic Server Version 11.70.FC1 -- Updates Blocked (SDS) -- Up 00:02:29 --
165588 Kbytes
Local server type: SDS
Server Status : Active
Source server name: ids1_online_net
Connection status: Disconnected
Last log page received(log id,page):
3,235
2)
将SDS备用节点转换为主用节点,
[informix@rhel55 info2]$ onmode -d make primary
ids2_online_net force
[informix@rhel55 info2]$ onstat -g sds
IBM Informix Dynamic Server Version 11.70.FC1 -- On-Line -- Up 00:04:12 -- 165588
Kbytes
Local server type: Primary
Number of SDS servers:0
3)
然后正常启动原主用节点,将转换成SDS备用节点
[informix@rhel55 info1]$ oninit
[informix@rhel55 info1]$ onstat -g sds
IBM Informix Dynamic Server Version 11.70.FC1 -- Updatable (SDS) -- Up 00:00:17 --
165588 Kbytes
Local server type: SDS
Server Status : Active
Source server name: ids2_online_net
Connection status: Connected
Last log page received(log id,page):
3,245
[informix@rhel55 info1]$ onstat -g dri
IBM Informix Dynamic Server Version 11.70.FC1 -- Updatable (SDS) -- Up 00:00:19 --
165588 Kbytes
Data Replication at 0x4c10c1c0:
Type State Paired server Last DR CKPT (id/pg) Supports Proxy Writes
SDS
Secondary on ids2_online_net 3 / 243 Y
DRINTERVAL 30
DRTIMEOUT 30
DRAUTO 0
DRLOSTFOUND
/opt/informix/etc/dr.lostfound
DRIDXAUTO 0
ENCRYPT_HDR 0
Backlog 0
至此,完成一次SDS主备用切换操作。