DB2 for Linux HADR TSA配置步骤
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DB2 HADR+TSA for Linux实施步骤前言
本文描述了DB2 for Linux HADR和TSA的安装和配置过程。
安装步骤
HADR安装
系统环境说明
操作系统版本:RHLE5.5 64bit
内核版本:2.6.18-194.el5 #1 SMP Tue Mar 16 21:52:39 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux
机器硬件配置:CPU 2G*1,Memory 2G
数据库版本:V9.7 fp8
准备工作
hosts文件设置
DB2和TSA软件对主机名是非常敏感的,在配置主机名的时候需要注意如下几点:
1. 主机名的命名分为短名称(lab_db01)和长名称(lab_db01.local),对于DB2和TSA来说,主
机名的设置一定要统一。
如果在/etc/hosts文件中使用短名称,在配置数据库和TSA的时候一 定也要使用短名称。
例如:在/etc/hosts文件中这样设置
172.16.89.15 lab_db01
172.16.89.16 lab_db02
在配置HADR环境和TSA环境的时候指定主机名就要指定成lab_db01 和lab_db02。
千万
要设置成其它的名称。
操作系统网络参数调优
1.编辑文件:/etc/sysctl.conf
用root用户登录,编辑/etc/sysctl.conf文件,修改需调整的内核参数,增加如下:kernel.shmmax=268435456
kernel.shmall=8388608
kernel.msgmax=65535
kernel.msgmnb=65535
kernel.sem、 kernel.shmmax、kernel.shmall参数值有冲突,以上面的为准,可以根据实际情况调整
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem=250 256000 32 1024
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
net.core.rmem_max=262144
net.core.wmem_default=262144
net.core.wmem_max=262144
执行sysctl -p,从/etc/sysctl.conf文件装入sysctl设置。
运行ipcs –l命令显示验证当前的内核参数设置
# ipcs -l
------ Shared Memory Limits --------
max number of segments = 4096 // SHMMNI
max seg size (kbytes) = 32768 // SHMMAX
max total shared memory (kbytes) = 8388608 // SHMALL
min seg size (bytes) = 1
------ Semaphore Limits --------
max number of arrays = 1024 // SEMMNI
max semaphores per array = 250 // SEMMSL
max semaphores system wide = 256000 // SEMMNS
max ops per semop call = 32 // SEMOPM
semaphore max value = 32767
------ Messages: Limits --------
max queues system wide = 1024 // MSGMNI
max size of message (bytes) = 65536 // MSGMAX
default max size of queue (bytes) = 65536 // MSGMNB
2.用户资源限制调整
设置DB2实例用户Data,nofiles,fsize资源的操作系统硬限制为无限制。
可通过修改文件/etc/security/limits.conf 设置
* soft nproc 3000
* hard nproc 16384
* soft nofile 65536
* hard nofile 65536
配置时间校正服务
1.配置主服务器,设置为主时钟服务器
时间校正服务是为了保证主数据库服务器和备用数据库服务器上的系统时间是一致的,如果时间不一致会造成数据同步出现错误,数据库无法启动的情况发生。
编辑文件:/etc/ntp.conf,设置图中高亮部分内容:
启动ntp服务,service ntpd start
2.备用数据库服务器与时间源服务器同步时间
用root用户执行如下命令编辑定时任务:
# crontab -e
编辑root用户的定时任务,内容如下 :
*/5 * * * * /sbin/ntpdate 192.168.100.32 ------此处配置为主时钟服务器,每5分钟同步一次配置双节点等价性
DB2数据库在配置Tivoli SAMP软件组成高可用环境的时候需要用到双节点等价性。
本章节说明如何在红帽子v5.x系统上配置双节点等价性。
1.安装rsh-server软件
2.编辑配置文件
用root用户创建配置文件/etc/hosts.equiv,文件的内容为
+lab_db01 db2inst1
+lab_db02 db2inst1
主备服务器都要配置
3.重命名文件
在主数据库服务器和备用数据库服务器上修改相关命令的名称。
执行如下操作
# cd /usr/kerberos/bin
# mv rsh rsh.bak
# mv rcp rcp.bak
# mv rlogin rlogin.bak
4.启动服务
设置rsh服务自启动,命令如下:
# chkconfig rsh on
# chkconfig rlogin on
# service xinetd reload
安装DB2数据库产品
用命令行交互方式安装DB2 V9.7,完成后安装补丁fp8
配置HADR
创建数据库实例
1.创建用户组
groupadd -g 501 db2iadm1
groupadd -g 502 db2fadm1
groupadd -g 503 dasadm1
2.创建用户
useradd -g 501 -u 501 -m -d /home/db2inst1 db2inst1
useradd -g 502 -u 502 -m -d /home/db2fenc1 db2fenc1
useradd -g 503 -u 503 -m -d /home/dasusr1 dasusr1
3.创建实例
/opt/ibm/db2/V9.7/instance/db2icrt -p 50000 -a server -s ese -u db2fenc1 db2inst1
4.创建管理服务器实例
/opt/ibm/db2/V9.7/instance/dascrt -u dasusr1
配置HADR服务和监听端口对应关系
在红帽子系统中/etc/services文件记录了服务名称和端口的对应关系,需要在此文件中加入两行新的配置以保证可以解析到相应服务的端口。
新追加的内容是:
db2c_db2inst1 50000/tcp
DB2_HADR_1 55001/tcp
DB2_HADR_2 55002/tcp
配置DB2v9.7数据库参数
1.在主数据库服务器上创建数据库
在DB2实例用户db2inst1环境下执行如下命令创建数据库:
$ db2 CREATE DATABASE MACRODB AUTOMATIC STORAGE YES USING CODESET GBK TERRITORY CN PAGESIZE 16 K
创建一个叫做macrodb的数据库,此数据库采用自动存储管理,使用GBK编码中文,页大小为16K。
数据库创建时没有特殊的要求,具体的参数根据业务情况而定。
2.修改主数据库的参数
在配置数据库参数之前需要了解一下HADR着重要配置哪些参数,这些参数都起到 了什么作用。
索引的创建、重建和重组也是HADR环境中需要考虑的一个方面,DB2通过数据库配置参数LOGINDEXBUILD和CREATE TABLE 或ALTER TABLE语句中的LOG INDEX BUILD选项来控制是否对索引的相关操作进行详细的日志记录。
我们在上面的HADR配置实例中将LOGINDEXBUILD数据库参数配置为ON,意味让DB2记录索引创建、重建和重组的完整日志。
这显然会降低主数据库的运行效率并占用更多的日志空间。
但因为备用数据库可以通过重放日志来重新构建索引,所以当主数据库发生故障,备用数据库的索引仍然可用。
用户可以通过CREATE TABLE或者ALTER TABLE语句的LOG INDEX BUILD选项来
对单个标设定所以日志记录级别。
LOG INDEX BUILD选线有三个可选参数:
NULL:这是缺省值,当使用此参数时,表的索引日志记录级别由数据库配置参数LOGINDEXBUILD的值决定。
ON:使用此参数,数据库配置参数LOGINDEXBUILD的值将被忽略,DB2将记录这个表上所有索引维护的详细日志。
OFF:使用此参数,数据库配置参数LOGINDEXBUILD的值将被忽略。
DB2将不记录这个表上索引维护的日志。
如果表选项LOG INDEX BUILD设置为OFF。
或者LOG INDEX BUILD设置为NULL但是数据库配置参数LOGINDEXBUILD设置为OFF,DB2将不记录这些表的索引维护日志,备用数据库也就无法重新索引维护操作,致使这些索引在备用数据库上变为无效状态。
当主数据库发生故障时,备用数据库切换为主数据库后,这些无效的索引必须重建才能被使用。
DB2通过数据库配置参数INDEXREC来指定在什么时候检查并重建无效索引。
INDEXREC参数有三个可选值:
RESTARE:DB2将在显示或隐士重启数据库的时候检查并重新构建无效索引。
ACCESS:DB2将在无效索引第一次被访问的时候才会重新构建它。
SYSTEM:使用数据库管理器配置参数INDEXREC的值。
这里主要是把数据库修改成归档日志模式,用到的命令如下:
$ db2 UPDATE DATABASE CFG FOR MACRODB USING LOGARCHMETH1 'Disk:/db2home/archlogs'
注意:如果LOGARCHMETH1的值为LOGRETAIN,则LOGARCHMETH2的值就必须是OFF。
打开日志的归档只需要修改LOGARCHMETH1参数即可。
$ db2 UPDATE DATABASE CFG FOR MACRODB USING LOGARCHMETH2 'Disk:/db2data/archlog2'
注意:此步为可选。
$ db2 UPDATE DATABASE CFG FOR MACRODB USING TRACKMOD ON
$ db2 UPDATE DATABASE CFG FOR MACRODB USING LOGINDEXBUILD ON
$ db2 UPDATE DATABASE CFG FOR MACRODB USING INDEXREC RESTART
配置重新链接数据库后重建索引功能,如果不配置此参数在启动HADR的时候会提示需要修改。
不修改不影响到sHADR的功能。
创建样例数据库:db2sampl
db2UPDATE DB CFG FOR sample USING INDEXREC RESTART LOGINDEXBUILD ON LOGARCHMETH1 DISK:/db2home/archlogs LOGPRIMARY 20 LOGSECOND 20 AUTORESTART OFF TRACKMOD ON
备份主服务器上的数据库
在打开归档日志后,数据库处在一个备份挂起状态。
为了解除这个状态应该完整备份一次数据库,如下所示:
$ db2 BACKUP DATABASE MACRODB
备份完成后在实例用户db2inst1的家目录中就多了一个备份文件,假设备份文件的
名称为: MACRODB.0.db2inst1.NODE0000.CATN0000.20140304103142.001
传输主数据库备份文件到备用服务器
备份数据库服务器上的数据库是从主数据库服务器的备份文件回复来的,所以先把主数据库服务器上的备份文件拷贝到备份数据库服务器上。
命令如下所示:
$scp MACRODB.0.db2inst1.NODE0000.CATN0000.20140304103142.001 db2inst1@172.16.89.16:/db2 data/backup/20140304/
将备份文件拷贝到备份数据库服务器中。
在备用服务器上恢复数据库
在把数据库备份文件拷贝到备份数据库服务器中后就需要恢复数据库,命令如下所示:$ db2 RESTORE DATABASE MACRODB from /db2data/backup/20140304 REPLACE HISTORY FILE WITHOUT PROMPTING
恢复完成后不要做任何操作,使数据库处于ROLLING FORWARD状态。
千万不要前滚数据库。
配置主服务器上数据库的参数
待主数据库和备用数据库都可用后需要配置数据库级别的HADR参数,主数据的参数为:
$ db2 UPDATE DB CFG FOR MACRODB USING HADR_LOCAL_HOST lab_db01
$ db2 UPDATE DB CFG FOR MACRODB USING HADR_LOCAL_SVC DB2_HADR_1
$ db2 UPDATE DB CFG FOR MACRODB USING HADR_REMOTE_HOST lab_db02
$ db2 UPDATE DB CFG FOR MACRODB USING HADR_REMOTE_SVC DB2_HADR_2
$ db2 UPDATE DB CFG FOR MACRODB USING HADR_REMOTE_INST db2inst1
$ db2 UPDATE DB CFG FOR MACRODB USING HADR_SYNCMODE NEARSYNC
$ db2 UPDATE DB CFG FOR MACRODB USING HADR_TIMEOUT 120
$ db2 UPDATE DB CFG FOR MACRODB USING HADR_PEER_WINDOW 300
$ db2 CONNECT TO MACRODB
$ db2 QUIESCE DATABASE IMMEDIATE FORCE CONNECTIONS
$ db2 UNQUIESCE DATABASE
$ db2 CONNECT RESET
配置备用服务器上数据库的参数
修改备用数据库的参数,修改命令为:
$ db2 UPDATE DB CFG FOR MACRODB USING HADR_LOCAL_HOST lab_db02
$ db2 UPDATE DB CFG FOR MACRODB USING HADR_LOCAL_SVC DB2_HADR_2
$ db2 UPDATE DB CFG FOR MACRODB USING HADR_REMOTE_HOST lab_db01
$ db2 UPDATE DB CFG FOR MACRODB USING HADR_REMOTE_SVC DB2_HADR_1
$ db2 UPDATE DB CFG FOR MACRODB USING HADR_REMOTE_INST db2inst1
$ db2 UPDATE DB CFG FOR MACRODB USING HADR_SYNCMODE NEARSYNC
$ db2 UPDATE DB CFG FOR MACRODB USING HADR_TIMEOUT 120
$ db2 UPDATE DB CFG FOR MACRODB USING HADR_PEER_WINDOW 300
注:
在配置HADR参数时会碰到两个跟主机名相关的参数HADR_LOCAL_HOST和HADR_REMOTE_HOST这两个参数可以指定IP地址也可以指定成主机名,不过推荐使用主机名的形式。
启动HADR
1.HADR管理说明
本部分主要起到描述的作用,说明HDAR的启动和停止的操作注意内容: 启动和停止DB2 HADR:使用START HADR命令启动主数据库和备用数据库的HADR。
启动主数据库使用AS PRIMARY子句,启动备用数据库使用AS STANDBY子句。
如果想以其他用户启动HADR,可以通过USER username USING password子句指定用户名和密码。
在启动主数据库的HADR 时,如果在数据库HADR_TIMEOUT所指定的时间内未能建立与备用数据库HADR的连接,启动将失败。
这时候你可以等排除故障并成功启动备用数据库HADR后再启动主数据库HADR,也可以通过指定BY FORCE子句强行启动主数据库HADR。
使用STOP HADR语句停止主数据库和备用数据库的HADR功能。
如果在活动的主数据库上发出此命令,所有的数据库连接都被断开,数据库恢复为标准数据库,并保持联机装套。
如果在活动的备用数据库上发出此命令,将停止失败。
必须先用DEACTIVATEDATABASE命令取消激活,然后再停止HADR。
如:db2 deactivate db sample , stop hadr on db sample
2.启动备用数据库服务器的HADR
执行如下命令启动备用数据库服务器的HADR:
$ db2 DEACTIVATE DATABASE MACRODB
$ db2 START HADR ON DATABASE MACRODB AS STANDBY
3.启动主数据库服务器的HADR
执行如下命令启动主数据库服务器的HADR:
$ db2 DEACTIVATE DATABASE MACRODB
$ db2 START HADR ON DATABASE MACRODB AS PRIMARY
HADR验证
1.在主服务器上创建测试环境
在主数据库服务器上创建测试表t1,并插入几条测试数据。
命令如下所示:
$ db2 CONNECT TO MACRODB
$ db2 “create table t1(a1 int)”
$ db2 “insert into t1 values(1)”
$ db2 “commit”
2.备用数据库接管主数据库
输入如下命令使备用数据库接管主数据库:
$ db2 TAKEOVER HADR ON DATABASE MACRODB user db2inst1 using 12345678
$ db2pd -d macrodb -hadr
如果切换成功,可以使用db2pd命令查看数据库的状态。
3.连接到新的主数据库并检测状态
使用如下命令测试是否存在t1表,并且表的数据都存在:
$ db2 CONNECT TO MACRODB
$ db2 “select * from t1”
配置TSA
配置前环境要求
1.在配置高可用集群之前首先要确认/etc/services文件已经修改完成。
2.确认/etc/hosts文件是否已经添加两节点的主机名和IP地址的对应关系。
3.在所有即将加入集群域的节点上运行db2start启动实例。
确认所有的HADR节点数据库都被启动并且状态正确。
主数据库和备用数据库都要有Peer状态信息。
4.确认HADR中所有节点的数据库参数HADR_PEER_WINDOW被正确设定:
$ db2 update db cfg for macrodb using HADR_PEER_WINDOW 120
配置过程
TSA环境要求
以上所述的内容都符合要求后还需要做下面操作。
满足网络通讯的要求。
# /usr/sbin/rsct/install/bin/recfgct
注意:需要用root用户执行这个操作。
这个命令用来重新设置节点,生成每个节点的唯一标识。
# /usr/sbin/rsct/bin/preprpnode lab_db01 lab_db02
这个操作需要在每个节点上都执行一边,此操作用来把节点加入到集群中
安装TSA
略。
在安装DB2 V9.7 过程中已经缺省安装
具体步骤可以参考如下:
1.在REDHAT系列系统中可以用如下命令查看TSA是 否已经被安装。
$ rpm -qa|grep sam
sam-2.2.0.7-08170
sam.adapter-2.2.0.7-08170
samba-common-3.0.33-3.37.el5
samba-client-3.0.33-3.37.el5
$ rpm -qa|grep rsct
rsct.core-2.5.1.2-08141
rsct.core.utils-2.5.1.2-08141
rsct.opt.storagerm-2.5.1.2-08141
rsct.basic-2.5.1.2-08141
$ rpm -qa|grep src
src-1.3.0.4-08141
根据环境的不同,软件版本会有 不同。
2.安装前检查
在安装TSA之前需要运行检查脚本确认当前系统是否适合当前版本的TSA软件。
步 骤如下:# ./prereqSAM
3.安装TSA
在检查步骤通过后就可以进行TSA软件的安装。
安装步骤如下所示:
# ./installSAM
4.安装后检查
根据安装最后的警告提示,设定用户环境变量CT_MANAGEMENT_SCOPE。
设定方法如下所示:
$ echo export CT_MANAGEMENT_SCOPE=2 >>~/.bashrc
配置TSA高可用性
注:配置TSA高可用性需要首先在备节点上执行,然后在主节点上执行
1.在备数据库上执行
$db2haicu
给集群取个名字
定义集群的成员数量
选择一个仲裁设备(网络)
定义仲裁设备的IP
创建集群成员网络设备
选择高可用性模式(TSA)
2.在主数据库上执行:$db2haicu
3.查看ha状态:
$lssam
TSA日常维护操作
1.查看当前的高可用域: $lsrpdomain
2.查看添加到域中的节点
$ lsrpnode
3.启动停止域中节点
1)在备机上执行如下命令
# id 确认当前登陆的是root用户2)# ps -ef|grep rsct
查看rsct相关进程
3)# lssam
查看被管理和启动的资源
4)# lsrg
查看资源组
5)在节点2上停止资源组
#chrg-o offline db2_db2inst1_db2inst1_SAMPLE-rg db2_db2inst1_lab_db01_0-rg db2_db2inst1_lab_db02_0-rg
6)查看被管理和下线的资源
# lssam
7)查看节点信息
# lsrpnode
8)停止备机节点
# stoprpnode lab_db02
9)在备机上查看节点信息
# lsrpnode
10)查看被管理的资源信息
# lssam
11)在主机上启动备机节点
# startrpnode lab_db02
12)在备机上启动资源组
#chrg-o online db2_db2inst1_db2inst1_SAMPLE-rg db2_db2inst1_lab_db01_0-rg db2_db2inst1_lab_db02_0-rg。