如何在單個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這樣的私網地址

 

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