如何在单个Linux虚拟机上安装Db2 pureScale

1.前言

本文阐述了在Suse Linux上安装Db2 pureScale的详细过程,仅部署一个member和一个CF,主要目的是让大家在单个虚机上可以安装pureScale,不需要很多的机器和网络设备,帮助大家尽快的熟悉pureScale的安装和使用。

2.软件下载

在下面的网址中下载Db2 11.1的开发版,这个版本对使用pureScale不需要许可证文件。

https://www.ibm.com/us-en/marketplace/ibm-db2-direct-and-developer-editions

建议使用IE浏览器,在我本机使用firefox的时候有问题,可能和版本和浏览器的设置有关系。

3.如何将安装包传到虚拟机的环境

可以通过以下两种方式

      1)将本机Windows的IP设置为和虚拟机的IP在同一个网段,然后通过sftp传输安装包;

      2)通过在虚拟机中的设置/选项/Shared Folders中增加共享目录

本人在安装过程中无法使用第二种方式,因此采用了第一种方式;

4.支持的操作系统版本

请参考下面的网址:

https://www.ibm.com/support/knowledgecenter/SSEPGG_11.1.0/com.ibm.db2.luw.qb.server.doc/doc/r0057441.html

5.存储空间方面的准备工作

在开始安装之前,先准备下面的3块硬盘,在虚机的设置界面里选择增加硬盘,使用缺省配置就可以,界面如下:

这3块盘的容量和用途如下

/dev/sdb  3GB      #实例共享目录instance_shared_dir

/dev/sdc  6GB      #用户数据库的数据空间,建议不少于3GB,否则可能创建数据库失败

/dev/sdd  1GB       #用户数据库日志空间

 

执行fdisk -l将看到这3块盘,输出如下:

node01:~/Desktop # fdisk -l

 

Disk /dev/sda: 42.9 GB, 42949672960 bytes

255 heads, 63 sectors/track, 5221 cylinders, total 83886080 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x00020b25

 

   Device Boot      Start         End      Blocks   Id  System

/dev/sda1            2048     4208639     2103296   82  Linux swap / Solaris

/dev/sda2   *     4208640    83886079    39838720   83  Linux

 

WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted.

 

 

Disk /dev/sdb: 3221 MB, 3221225472 bytes

255 heads, 63 sectors/track, 391 cylinders, total 6291456 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x00000000

 

   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1               1     6291455     3145727+  ee  GPT

 

WARNING: GPT (GUID Partition Table) detected on '/dev/sdc'! The util fdisk doesn't support GPT. Use GNU Parted.

 

 

Disk /dev/sdc: 6442 MB, 6442450944 bytes

255 heads, 63 sectors/track, 783 cylinders, total 12582912 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x00000000

 

   Device Boot      Start         End      Blocks   Id  System

/dev/sdc1               1    12582911     6291455+  ee  GPT

 

WARNING: GPT (GUID Partition Table) detected on '/dev/sdd'! The util fdisk doesn't support GPT. Use GNU Parted.

 

 

Disk /dev/sdd: 1073 MB, 1073741824 bytes

255 heads, 63 sectors/track, 130 cylinders, total 2097152 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x00000000

 

   Device Boot      Start         End      Blocks   Id  System

/dev/sdd1               1     2097151     1048575+  ee  GPT

6.修改内核参数

内核参数的调整建议如下:

kernel.shmmni (SHMMNI)      256 * <size of RAM in GB>

kernel.shmmax (SHMMAX)      <size of RAM in bytes>1

kernel.shmall (SHMALL)      2 * <size of RAM in bytes> (setting is in 4 K pages) 2

kernel.sem (SEMMNI)         256 * <size of RAM in GB>

kernel.sem (SEMMSL)         250

kernel.sem (SEMMNS)         256 000

kernel.sem (SEMOPM)         32

kernel.msgmni (MSGMNI)      1 024 * <size of RAM in GB>

kernel.msgmax (MSGMAX)      65 536

kernel.msgmnb (MSGMNB)      65 536

vm.swappiness = 0

vm.overcommit_memory = 0

kernel.randomize_va_space = 0

本人在安装虚机时,设置是使用4.5GB的内存,因此在调整这些参数时,按4GB内存进行调整;调整的方式是编辑/etc/sysctl.conf文件,加入下面的内容:

#Example for a computer with 4GB of RAM:

kernel.shmmni=1024

kernel.shmmax=4294967296

kernel.shmall=2097152

#kernel.sem=<SEMMSL> <SEMMNS> <SEMOPM> <SEMMNI>

kernel.sem=250 256000 32 1024

kernel.msgmni=4096

kernel.msgmax=65536

kernel.msgmnb=65536

然后执行sysctl -p就可以生效,不需要重启操作系统。

7.确认操作系统版本和补丁

解压产品包后,执行db2prereqcheck -p确认操作系统满足pureScale的安装要求,如果缺少某个包或者版本太低,都会影响pureScale的安装;

关于pureScale在linux上的安装和规划,请参考下面的网址:

https://www.ibm.com/support/knowledgecenter/SSEPGG_11.1.0/com.ibm.db2.luw.qb.server.doc/doc/r0061535.html

8.创建用户和组

运行groupadd --gid选项以使用组标识符999和998创建组db2iadm1和db2fadm1:

groupadd --gid 999 db2iadm1

groupadd --gid 998 db2fadm1

运行useradd创建每个用户,分配用户ID,组,并为用户创建主目录:

useradd --uid 1004 -g db2iadm1 -m -d /home/db2sdin1 db2sdin1

useradd --uid 1003 -g db2fadm1 -m -d /home/db2sdfe1 db2sdfe1

passwd db2sdin1

passwd db2sdfe1

9.配置root用户和db2sdin1用户的ssh信任关系

以root用户为例

mkdir ~/.ssh

cd .ssh

ssh-keygen -t dsa

此操作在~/ .ssh目录中生成两个新文件,id_dsa(私钥)和id_dsa.pub(公钥)用于DSA加密

cat id_dsa.pub >> authorized_keys

chmod 644 authorized_keys

10.安装Db2产品包

执行db2setup程序。

使用典型安装,选择不创建实例。

在Host list的界面中,只有一台机器,就是虚机的hostname node01。

11.创建GPFS文件系统

通过db2cluster_prepare命令,创建将来创建实例要使用的instance shared dir:

node01:/opt/ibm/db2/V11.1/instance # ./db2cluster_prepare  -instance_shared_dev /dev/sdb -instance_shared_mount /db2sd -t /tmp/sd_prepare.trc -l /tmp/sd_prepare.log

 

DB2 installation is being initialized.

 

 Total number of tasks to be performed: 1

Total estimated time for all tasks to be performed: 60 second(s)

 

Task #1 start

Description: Creating IBM General Parallel File System (GPFS) Cluster and Filesystem

Estimated time 60 second(s)

Task #1 end

 

The execution completed successfully.

 

For more information see the DB2 installation log at "/tmp/sd_prepare.log".

DBI1070I  Program db2cluster_prepare completed successfully.

 

12.创建实例

cd /opt/ibm/db2/V11.1/instance

./db2icrt   -m node01 -mnet node01    -cf node01 -cfnet node01   -instance_shared_dir  /db2sd  -tbdev node01 -u db2sdfe1  -d db2sdin1

在安装中出现下面的两个警告,并不影响安装:

Operating system information: Linux 3.0.101-63-default.#1 SMP Tue Jun 23 16:02:31 UTC 2015 (4b89d0c) x86_64

WARNING: DBI20167W  The DB2 pureScale instance was set to use the TCP/IP network protocol because the network is not configured for the RDMA network protocol.

 

WARNING: The DB2 installer detected there is "2331MB" space available in instance shared directory "/db2sd". It recommends there is "10240MB" free space in the instance shared directory.

 

13.在安装结束后,提示要修改文件/var/ct/cfg/netmon.cf ,此文件用户pureScale的网络监控

cat /var/ct/cfg/netmon.cf

!REQD eth1 192.168.1.2

!IBQPORTONLY !ALL

 

!LINK_STATE_REQD_ONLY !ALL

!IBQPORTONLY !ALL

 

For more details see sections "Setting up the netmon.cf file on a TCP/IP network" or "Setting up the netmon.cf file on a RoCE network" in the DB2 Information Center  based on the choice of your host network.

有关更多详细信息,请参阅DB2信息中心中的“Setting up the netmon.cf file on a TCP/IP network" or "Setting up the netmon.cf file on a RoCE network”部分,具体取决于主机网络的选择。

另外由于使用的是tcpip网络,

还需要设置Db2的注册变量DB2_SD_ALLOW_SLOW_NETWORK ,否则实例不能正常启动。

db2sdin1@node01:~> db2set DB2_SD_ALLOW_SLOW_NETWORK=ON

在正常启动之后,应该能看到管理器参数CF_TRANSPORT_METHOD为TCP

Transport method to CF          (CF_TRANSPORT_METHOD) = TCP

在DB2 pureScale环境中,cf_transport_method配置参数控制用于DB2成员与集群高速缓存设施(CF)之间通信的方法。

默认[范围]

     RDMA [RDMA,TCP]

当cf_transport_method设置为RDMA时,DB2成员必须使用远程直接内存访问(RDMA)与CF通信。 要使用RDMA协议网络,必须使用的硬件配置是安装了相应InfiniBand硬件的InfiniBand网络或使用RoCE适配卡的以太网网络。

当cf_transport_method参数设置为TCP时,DB2成员使用TCP / IP协议网络与CF通信。

 

14.数据库创建

创建存放表空间的目录

node01:/opt/ibm/db2/V11.1/bin # ./db2cluster -CFS -CREATE -FILESYSTEM db2data -DISK /dev/sdc -MOUNT /db2/db2data

创建存放日志的目录

node01:/opt/ibm/db2/V11.1/bin # ./db2cluster -CFS -CREATE -FILESYSTEM db2log -DISK /dev/sdd -MOUNT /db2/db2log

创建数据库

db2 "create db psdb on /db2/db2data using codeset gbk territory cn"

将日志路径移动到/db2/db2log目录中

db2 connect to psdb

db2 get db cfg | grep -i LOG

db2 update db cfg using newlogpath /db2/db2log

db2 terminate

db2 deactivate db psdb

db2 activate db psdb

15.如果你安装的是Db2企业版或者超级企业版,还需要注册Db2和TSA的许可证,否则只能使用90天.

注册Db2许可证的方法比较简单,执行下面的命令;

/opt/IBM/db2/V11.1/adm/db2licm -a filename

 

TSA许可证的注册相对步骤会多一下,参照下面的步骤注册即可:

https://www.ibm.com/support/knowledgecenter/SSEPGG_11.1.0/com.ibm.db2.luw.qb.server.doc/doc/t0056874.html

 

用root用户执行:

 

# samlicm -i ./sam41.lic

在对群集中的主机上的操作系统或硬件进行更新时,可以将群集置于维护模式。

 

要执行此任务,您必须是Db2集群服务管理员。

操作过程

 

    作为实例用户,请执行以下步骤:

        通过在单个主机上发出以下命令来停止所有主机上的数据库管理器:

        su – db2sdin1

        db2sotp

        在每台主机上,通过发出以下命令来停止Db2实例:

db2stop instance on <hostname>

其中hostname表示给定成员或CF的主机名,并且对集群中的每个主机运行hostname命令上的db2stop实例。

     作为Db2群集服务管理员,请执行以下步骤:

        通过发出以下命令,将集群管理器置于所有主机上的维护模式:

 

        DB2DIR / bin / db2cluster -cm -enter -maintenance -all

 

        其中DB2DIR表示Db2副本的安装位置。

        通过发出以下命令将主机上的群集文件系统服务置于维护模式:

 

        DB2DIR / bin / db2cluster -cfs -enter -maintenance -all

 

        其中DB2DIR表示Db2副本的安装位置。

      

接下来做什么

作为Db2群集服务管理员,请执行以下步骤:

        执行计划的任何维护活动。例如,安装修订包更新,或对Db2pureScale环境进行网络拓扑更改。

        通过发出以下命令退出主机上的集群管理器维护模式:

 

        DB2DIR / bin / db2cluster -cm -exit -maintenance -all

 

        其中DB2DIR表示Db2副本的安装位置。

        通过发出以下命令确保所有成员和域都处于活动状态:

 

        DB2DIR / bin / db2cluster -cm -list -host -state

 

        其中DB2DIR表示Db2副本的安装位置。

        通过发出以下命令在主机上退出群集文件系统维护模式:

 

        DB2DIR / bin / db2cluster -cfs -exit -maintenance -all

 

        其中DB2DIR表示Db2副本的安装位置。如果超时,请通过发出DB2DIR / bin / db2cluster -cfs -list -host -state命令来检查集群文件系统的状态。

    作为实例用户,请执行以下步骤:

        在每台主机上,通过发出以下命令启动Db2实例:

        db2start instance on <hostname>

 其中hostname表示给定成员或CF的主机名,并且对集群中的每个主机运行hostname命令上的db2start实例。

        通过发出以下命令启动数据库管理器:

 

        su – db2sdin1

        db2start

通过检查以下两个命令在每个节点上返回0来验证是否已应用Tivoli SA MP许可证

samlicm -p; echo $?

samlicm -t; echo $?

通过samlicm -s命令确认许可证注册成功

 

16.注册结束之后,重新启动实例

db2start instance on node01

db2sdin1@node01:~> db2start instance on node01

SQL1063N  DB2START processing was successful.

db2sdin1@node01:~> db2start cf 128

SQL1063N  DB2START processing was successful.

db2sdin1@node01:~> ps -u db2sdin1

  PID TTY          TIME CMD

 5281 pts/0    00:00:00 db2bp

13593 ?        00:00:00 ca-mgmnt-lwd

13601 ?        00:00:01 ca-server

13617 pts/1    00:00:00 bash

17006 pts/0    00:00:00 ps

25534 pts/0    00:00:00 bash

db2sdin1@node01:~> db2start

04/21/2019 22:01:45     0   0   SQL1063N  DB2START processing was successful.

SQL1063N  DB2START processing was successful.

 

 

db2sdin1@node01:~> ps -u db2sdin1

  PID TTY          TIME CMD

 5281 pts/0    00:00:00 db2bp

13593 ?        00:00:00 ca-mgmnt-lwd

13601 ?        00:00:03 ca-server

13617 pts/1    00:00:00 bash

19980 ?        00:00:00 db2sysc

19981 ?        00:00:00 db2sysc

19989 ?        00:00:00 db2sysc

20835 ?        00:00:03 db2sysc

21140 ?        00:00:00 db2vend

21851 ?        00:00:00 db2fmp

24244 pts/0    00:00:00 ps

25534 pts/0    00:00:00 bash

 

db2sdin1@node01:~> db2 activate db psdb

DB20000I  The ACTIVATE DATABASE command completed successfully.

db2sdin1@node01:~>

 

17.在安装过程中遇到的问题

1)没有设置DB2_SD_ALLOW_SLOW_NETWORK注册变量导致在执行db2start时报错。

2)在异常关闭虚机后,在连接数据库时报下面的错误

SQL1015N  The database is in an inconsistent state.

   解决办法如下:

   降低numdb参数,从而增加分配给单个数据库的CF内存;

      db2 update dbm cfg using numdb 2 immediate    #如果不修改,后面的数据库恢复命令restart database将失败;

     db2stop force

    db2start

    db2 restart database psdb  

  


 

3)Windows操作系统和虚拟机的网络不通,无法传输Db2安装包

通过图形化界面控制中心中的网络设置将虚拟机的网络IP设置为和Windows上VMnet8的地址在同一个网段;如VMnet8的IP地址是169.254.196.181 ,你可以将虚拟机的IP地址设置为169.254.196.180 ;

但需要注意的是169.254.196.180 这种地址,在安装时pureScale并不能识别这种私网地址,因此在安装之前,需要先将IP地址修改为类似192.168.1.2这样的私网地址

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章