DB2_redflag_linux_双机热备安装说明

DB2在Linux上的双机热备安装及参数配置
目 录
1 准备Redflag_Linux环境 1
1.1 服务器A设置: 1
1.2 服务器B设置 2
1.3 安装好Redflag_linux和磁盘阵列 2
1.4 在磁盘阵列上分别建立以下目录 2
2 DB2 安装步骤 3
2.1 在主机(A机)上安装DB2数据库服务器 3
3.2 在备机(B机)上安装DB2数据库服务器 10
3 DB2 实例创建与配置 10
3.1 在A机上创建数据库实例db2inst1 10
3.2 在B机上创建数据库实例 11
4 配置双机热备 12
5 创建数据库 13
6 heartbeat 配置 14



1 准备Redflag_Linux环境
操作系统:redflag dc server 5.0 for ibm pserver
双机软件:ha-mon-db2
数据库:DB2ESE V8.2
配置环境:
磁盘柜:DS4300
设备名:/dev/sdc1
挂载点:/db2data
文件系统:ext3

1.1 服务器A设置:
节点1:
主机名:trade1
eth0:对外服务网卡,192.168.1.11/255.255.255.0
eth1:心跳网卡,192.168.0.11/255.255.255.0
hosts文件:
192.168.1.10 trade1
192.168.1.11 trade1
192.168.1.12 trade2
192.168.0.11 ha1
192.168.0.12 ha2
1.2 服务器B设置
节点2:
主机名:trade2
eth0:对外服务网卡,192.168.1.12/255.255.255.0
eth1:心跳网卡,192.168.0.12/255.255.255.0
hosts文件:
192.168.1.10 trade2
192.168.1.12 trade2
192.168.1.11 trade1
192.168.0.12 ha2
192.168.0.11 ha1

1.3 安装好Redflag_linux和磁盘阵列
1. 使用storage manager配置工具进行配置,DS4300有两个管理口,IP地址分别为:192.168.128.101和192.168.128.102
一般作RADE5,只创建一个主分区盘、
2. 分别在两个节点上安装red flag dc server 5.0 for ibm pserver ,请确保操作系统安装时,主机与光纤盘阵的连接断开
3. 连接主机与光纤盘阵
4. 重新加载主机的光纤卡驱动
rmmod lprc
modprobe lprc
重新加载完毕后,磁盘阵列会在系统里面作为一个新的磁盘设备出现
5. 在新的设备上建立文件系统
fdisk /dev/sdc
mkfs.ext3 /dev/sdc1
只需要在一个节点上执行即可
6. 使用fdisk -l命令查看磁盘阵列在操作系统中的设备名,这里为/dev/sdc1
7. 分别在两个节点上,建立挂载点,这里为mkdir /db2data
8. 在安装完数据后,修改挂载点所属的用户及组为,数据库实例的用户及组,这里为:
chown db2inst1:db2grp1 -R /db2data

把磁盘阵列分别挂接到主机A和主机B的/db2data目录下
1.4 在磁盘阵列上分别建立以下目录
DB2将安装在/opt目录下,要求/opt下有700MB以上的空闲空间
另外,先把磁盘阵列挂载到/db2data目录下,在磁盘阵列上分配如下的目录:
/db2data/db2 --数据库目录
/db2data/backup --数据备份目录
/db2data/xjcotton --交易系统应用程序
/db2data/start --启动和关闭脚本
2 DB2 安装步骤
2.1 在主机(A

机)上安装DB2数据库服务器
以root身份登录至A机。
1. 将db2安装光盘放入光驱,把数据库安装文件拷贝到硬盘上,再点击鼠标右键解压到硬盘上,切换至产品所在的目录,例如:
cd /backup/ese
2. 用命令行安装命令为./db2install

3.选择安装DB2 UDB企业服务器版

当安装完成时,DB2将自动安装在下列目录中:/opt/IBM/db2/V8.1。
3.2 在备机(B机)上安装DB2数据库服务器
在B机上按A机同样步骤安装数据库服务器。
3 DB2 实例创建与配置
3.1 在A机上创建数据库实例db2inst1
(1) 使用linux命令创建如下系统用户组及用户:
su - root
groupadd -g 999 dasgrp1(图形方式安装不需要)
groupadd -g 998 db2fgrp1
groupadd -g 997 db2grp1

useradd -u 1002 -g dasgrp1 -d /home/dasusr1 dasusr1(图形方式安装不需要)
useradd -u 1003 -g db2fgrp1 -d /home/db2fenc1 db2fenc1
useradd -u 1004 -g db2grp1 -d /home/db2inst1 db2inst1

设置db2inst1和db2fenc1密码
passwd db2inst1
passwd db2fenc1
passwd dasusr1 (图形方式安装不需要)

(2) 创建数据库实例

cd /opt/IBM/db2/V8.1/instance
在此目录下asianux3.0以上版本需在此目录下替换dasutil和db2iutil两个文件
./db2icrt -w 64 -u db2fenc1 db2inst1 (-w 32 为32位操作系统 )
创建管理实例
./dascrt dasusr1

(3) 修改数据库配置参数
取消实例自动启动
su - db2inst1
db2iauto -off db2inst1
修改系统/etc/services文件
在系统的/etc/services文件中加入如下一行(用root用户):
db2cdb2inst1 50000/tcp
(4)db2数据库授权(用db2inst1用户)
db2licm -a db2ese.lic

(5) 检查数据库实例,并修改DB2参数
# su – db2inst1
$ db2start 启动数据库服务器
$ db2set DB2CODEPAGE=1386
$ db2set DB2COUNTRY=86
$ db2set DB2COMM=TCPIP
$ db2 update dbm cfg using SVCENAME db2cdb2inst1
$ db2stop 停止数据库服务器
3.2 在B机上创建数据库实例
在B机上执行以下命令:
(1) 使用linux命令创建如下系统用户组及用户:
su – root
groupadd -g 999 dasgrp1(图形方式安装不需要)
groupadd -g 998 db2fgrp1
groupadd -g 997 db2grp1

useradd -u 1002 -g dasgrp1 -d /home/dasusr1 dasusr1(图形方式安装不需要)
useradd -u 1003 -g db2fgrp1 -d /home/db2fenc1 db2fenc1
useradd -u 1004 -g db2grp1 -d /home/db2inst1 db2inst1
设置db2inst1和db2fenc1密码
passwd db2inst1
passwd db2fence1
passwd dasusr1(图形方式安装不需要)

(2) 创建数据库实例
# cd /opt/IBM/db2/V8.1/instance
# ./db2icrt -w 64 -u db2fenc1 db2inst1 (-w 32 为32位操作系统 )
(3) 修改数据库配置参数
取消实例自动启动
su - db2inst1
db2iauto -off db2inst1
修改系统/etc/services文件
在系统的/etc/services文件中加入如下一行:
db2cdb2inst1 50000/tcp

(5) 检查数据库实例,并修改DB2参数
# su - db2inst1
$ db

2start 启动数据库服务器
$ db2set DB2CODEPAGE=1386
$ db2set DB2COUNTRY=86
$ db2set DB2COMM=TCPIP
$ db2 update dbm cfg using SVCENAME db2cdb2inst1
$ db2stop 停止数据库服务器

(6) 修改DB2 License为支持4颗CPU
分别在A、B机上执行:
# su - db2inst1
$ db2licm -n DB2ESE 4

4 配置双机热备
为配置双机热备,DB2需要做的相应配置更改如下:
(1) 分别修改A、B机的/etc/inittab文件
取消机器启动时,自动执行的DB2进程,即将/etc/inittab文件中db2fmcd命令所在行注释掉:
#fmc:234:respawn:/opt/IBM/db2/V8.1/bin/db2fmcd
(2) 为A、B机建立主机信任
建立/home/db2inst1/.rhosts文件,在其中加入一行,内容为加号’+’。

通过redflag_linux控制脚本启动、停止以及做切换数据库服务器。其中与DB2相关的内容如下:

(1) DB2启动脚本
su - db2inst1 -c "db2start"

(2) DB2停止脚本
su - db2inst1 -c "db2stop force"

(3) 需要监控的DB2主进程
db2sysc
5 创建数据库
首先在其中一个节点上执行,假若是在trade1上
--挂载设备
su - root
mount /dev/sdc1 /db2data
--切换至数据库实例用户,启动实例
su - db2inst1
db2start
--建立数据库,数据库名db_name自定
db2 create database db_name on /db2data/db2
--查看数据目录是否为: /db2data
db2 list database directory
--关闭数据库实例
db2stop force
--切换至root用户,卸载磁盘/dev/sdc1
su - root
umount /dev/sdc1

最后在trade2上,编目数据库目录即可
--挂载设备
su - root
mount /dev/sdc1 /db2data
--切换至数据库实例用户,启动实例
su - db2inst1
db2start
--编目数据库目录
db2 catalog database db_name on /db2data/db2
--测试数据库联接
db2 connect to db_name
--关闭数据库实例
db2stop force
--切换至root用户,卸载磁盘/dev/sdc1
su - root
umount /dev/sdc1

注意:上述是在heartbeat服务配置启动之前建立数据库的步骤;若在heartbeat运行中要创建新的数据库,可先在两个节点上停止heartbeat服务, 再按照上述步骤创建
6 heartbeat 配置
1.安装ha-mon-db2
tar -zxvf ha-mon-db2.tgz
cd ha-mon-db2
./install
 安装完成后用下列命令,设置heartbeat在字符和图形目录下自动启动。
 ckconfig --level 35 heartbeat on
2.修改mon.cf配置文件
vi /etc/mon/mon.cf

#
# group definitions (hostnames or IP addresses)
#

#hostgroup dbserver service
hostgroup dbserver 192.168.1.10 --双机的浮动IP地址设定

hostgroup routers

watch routers
service net
interval 1m
#you can assign a net interface,default is eth0
monitor network.monitor -n eth0 --外网网卡的检测,在这里eth0为对外服务网卡,eth1为心跳网卡
allow_empty_group
period wd {Mon-Sun}
alert test.alert
alert ha_stop.alert
alert ha_start.alert
alertevery 1m

watch dbserver

service db2
interval 1m
# note: please modify suitable db2 instance name as a parameter: db2inst1 --不推荐检测数据库,会经常误检测数据死掉。若不检测,把上面的3行,下面6行语句用#注释掉。
monitor db2.monitor -f db2inst1 --数据实例检测,对应DB2数据库的实例名
allow_empty_group
period wd {Mon-Sun}
alert test.alert
alert ha_stop.alert
alert ha_start.alert
alertevery 1m
3,修改ha.cf配置文件
vi /etc/ha.d/ha.cf
bcast eth1 eth0 --指定作为心跳检测的网卡,这里eth1是心跳网卡,eth0是外网网卡,也是辅助心跳网卡
keepalive 2 --每2秒钟检测一次
deadtime 30 --30秒没有响应,表明节点dead
udpport 694 --心跳检测使用的udp端口为694
auto_failback off --off,为主主模式;on,为主从模式
node trade1 --第一个节点对应的主机名(hostname)
node trade2 --第二个节点对应的主机名(hostname)
logfile /var/log/ha-log --heartbeat日志文件存放路径

4,修改haresources配置文件
vi /etc/ha.d/haresources

trade1 192.168.1.10 Filesystem::/dev/sdc1::/db2data::ext3 db2::db2inst1 mon

trade1为主节点的主机名;192.168.1.10指的是启动双机的浮动IP地址在192.168.1.10上;Filesystem::/dev/sdc::/db2data::ext3指的是启动浮动IP后,挂载磁盘阵列,这里磁盘阵列在系统中的设备名为/dev/sdc1,挂载点为/db2data,文件系统为ext3;db2::db2inst1指的是前两步完成后使用/etc/ha.d/resource.d/db2脚本启动数据库实例db2inst1;mon,指执行/etc/ha.d/resource.d/mon脚本,启动数据库监控。

注意:在两个节点的/etc/ha.d/haresources配置文件中,内容要完全一致,即trade1和trade2上的主节点都是trade1。例如,若主节点不一致,则可能导致磁盘阵列和数据库实例在两个节点上都启动。

5.修改mon脚本文件
vi /etc/ha.d/resource.d/mon

case "$1" in
start)
echo -n "Starting mon daemon: "
sleep 60
/usr/lib/mon/mon -f -c /etc/mon/mon.cf
echo
touch /var/lock/subsys/mon
;;
stop)
echo -n "Stopping mon daemon: "
killproc mon
echo
rm -f /var/lock/subsys/mon
umount /opt/oradata --次行修改为“umount/dev/sdc1”,停止mon监控时卸载磁盘阵列。
exit 0
;;

6,测试heartbeat配置
分别在两个节点上启动heartbeat服务,并察看heartbeat启动的日志输出(可选)
service heartbeat start
tail -f /var/log/ha-log
假如heartbeat首先在node1上启动,若heartbeat配置无误的话:浮动ip会在node1上自动绑定,可通过ifcongif命令在node1上查看;磁盘阵列会在node1上挂载,可通过mount命令在node1上查看;数据库实例会在node1上启动,可发出数据库连接命令验证,su - db2inst1,db2 connect to db_name;mon会在node1上启动,可通过ps -A|grep "mon"命令查看.

网络

检测测试
拔掉node1的外网即eth0网卡的网线,30秒后heartbeat自动切换到node2上

实例检测测试
在node1上停止数据库实例,su - db2inst1 -c "db2stop force",30秒后heartbeat自动切换到node2上

停止服务测试
在node1上停止heartbeat服务,service heartbeat stop,30秒后heartbeat自动切换到node2上

关机重起测试
在node1上重起,shutdown -hr now,30秒后heartbeat自动切换到node2上



相关文档
最新文档