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許可證的註冊相對步驟會多一下,參照下面的步驟註冊即可:
用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這樣的私網地址