DB2 DPF Install on RHEL Linux
概述
為了使單個資料庫能擴充套件到多個伺服器,需要使用 IBM 的 DB2 UDB V8.1 Enterprise Server Edition (DB2 ESE V8.1) 的資料庫分割槽功能(DPF)。此外,為了能夠使用 DB2 UDB ESE 中的 DPF,需要一個有效的 DPF 許可。DPF 提供了必要的可伸縮性,以便將大型資料庫分佈到無共享(shared-nothing)架構下的多個(邏輯和物理)分割槽。DPF 對於獨立的 SMP 伺服器和由多個伺服器組成的環境都是有利的。透過 DPF “分治(divide and conquer)” 處理,可以增強單個伺服器(向上擴充套件)和伺服器叢集(向外擴充套件)的可伸縮性。
本文的目標是提供簡單直觀的逐步說明,向您展示如何使用 db2_install 指令碼方法(而不是透過 GUI Setup 嚮導)在 Red Hat Linux Advanced Server (AS) 2.1 上安裝和配置具有 DPF 的 DB2 ESE V8.1。本文適合初學者使用者,但是對於已經熟悉這種架構的 IT 架構師和專家也有一定的用處。db2_install 實用程式可以安裝 DB2 檔案集,但是不建立例項和使用者,也不會執行任何其他由 DB2 Setup 嚮導執行的配置任務。當在有特殊需求的大型、複雜的資料庫系統上安裝 DB2 時,或者在使用 telnet 會話將 DB2 安裝到 DB2 伺服器上時,有些人喜歡使用 db2_install。
按照下面的步驟,便可以設計和設定多達 1000 個分割槽,但在我們的設定過程當中,我們使用兩個基於 Intel 的 IBM Blade Server 機器來設定兩個物理分割槽(每個物理伺服器上還有兩個邏輯分割槽)。
注意: 按照技術轉移條款,以下簡單易用的逐步說明已經在一個合作伙伴的站點上經過了測試。
作業系統
Red Hat Advanced Server 2.1 (RHAS)
硬體
基於 Intel 的雙路 IBM Blade Servers:
- HS20 Blade Server
- 2 GB RAM
- 2 x 2.4 GHz
- 一臺作為 NFS 伺服器 (ServerA)
- 另一臺作為 NFS 客戶機 (ServerB)
IBM 中介軟體
- IBM DB2 UDB Enterprise Server Edition V8.1 (+DPF Feature) Linux for Intel 32-bit —— 從 C48THML.tar 安裝
- Fixpak 5a —— 從 PSoft_10533_v81_fp5a_linuxintel_32.tar (FixPak link - ) 安裝
檔案系統配置
為 DB2 V8.1 分割槽環境而配置的兩個基於 Intel 的雙路 IBM Blade 伺服器:
- 對於分割槽環境,建議在叢集中的一臺機器上建立一個單獨的 DB2 主檔案系統,用作例項主目錄。這個檔案系統將透過 NFS —— 從 NFS 伺服器(在這裡是 ServerA)匯出的 NFS 和裝配在其他計算機(在這裡是 ServerB)上的 NFS —— 在叢集中所有的計算機之間共享。在這裡的配置中,我們建立了檔案系統 /db2home,裝配點為 ServerA 上的 /db2home,這是 DB2 Instance 屬主的主目錄。
- 對於分割槽資料庫系統,在每臺參與分割槽資料庫的計算機上都應該有一個單獨的資料庫檔案系統。在這裡的配置中,我們建立了一個名為 /data1 的檔案系統,裝配點為 ServerA 和 ServerB 上的 /data1。
- DB2 install 和 fixpak 映象必須能夠被所有參與分割槽的計算機訪問。我們簡單地在 ServerA 上的 /db2home 檔案系統中建立了一個名為 images 的目錄。這個目錄將包含 DB2 install 映象和 fixpak,並且將透過 NFS 向所有參與分割槽的計算機開放。
安裝和配置說明
下面是這裡的配置中使用的兩臺計算機:
- ServerA: 例項所在的計算機(最多隻能有一臺駐留例項的計算機),其中 ServerA 是這臺計算機的真實主機名。
- ServerB (以及叢集中其他的每一臺計算機):參與分割槽的計算機,其中 ServerB 是計算機的真實主機名。
下面是在 DPF 環境中安裝和執行 DB2 的步驟。
步驟 1 - 檢驗檔案系統的裝配情況
以 root 身份,檢驗所需的檔案系統是否裝配好。我們假設之前已建立了檔案系統(請參閱前面的“檔案系統配置”)。
ServerA:
-
檢驗之前建立的檔案系統 /db2home 是否真的裝配好了。發出以下命令,看 /db2home 是否出現在輸出的“Mounted on”列中:
- df
ServerA 和 ServerB (以及叢集中其他的每一臺計算機):
-
檢驗之前建立的檔案系統 /data1 是否真的裝配好了。發出以下命令,看 /data1 是否出現在輸出的“Mounted on”列中:
- df
步驟 2 - 必需的檔案和包
以 root 身份,使適當的 DB2 映象可用,然後檢驗 Red Hat 上是否安裝了所有必需的包。
ServerA:
- 將 Intel 32 位 Linux 上的 DB2 UDB Enterprise Server Edition V8.1 的 Install Image C48THML.tar 檔案複製到 /db2home/images 目錄。
- 將用於 FixPak 5a 的 PSoft_10533_v81_fp5a_linuxintel_32.tar 檔案複製到 /db2home/images 目錄。
ServerA 和 ServerB (以及叢集中其他每一臺計算機)
-
檢驗是否安裝了所需的 Red Hat 包,方法是發出以下命令:
- rpm -qa | grep pdksh
- rpm -qa | grep rsh
- rpm -qa | grep nfs
如果上面所說的包沒有安裝,那麼應該可以從 下載缺失的包。然後使用類似於 rpm -ivh pdkshxxxxxx.rpm 的命令安裝下載的包,其中 pdkshxxxxxx.rpm 是包的名稱。否則,與 Linux 系統管理員聯絡。
步驟 3 - 修改核心引數
以 root 身份,修改 ServerA 和 ServerB (以及叢集中所有其他的每一臺計算機)上的核心引數,即新增以下條目到預設的系統控制配置檔案/etc/sysctl.conf:
- kernel.msgmni = 1024
- kernel.sem = 250 256000 32 1024
其中 max semaphores system wide = max number of arrays x max semaphores/array。
現在需要從預設檔案 /etc/sysctl.conf 中載入剛剛更新的 sysctl 設定。為此,發出以下命令:
- sysctl -p
步驟 4 - 啟動 NFS
以 root 身份,檢驗 NFS 是否同時在 ServerA 和 ServerB (以及叢集中所有其他的每一臺計算機)上執行。發出以下命令:
- showmount -e hostname
其中 hostname 是計算機的真實主機名。在這裡的配置中,兩個主機名分別是 ServerA 和 ServerB。
在不帶 hostname 引數的情況下輸入 showmount 命令可以檢查本地系統。如果 NFS 沒有啟用,那麼將收到如下所示的訊息:
- showmount: hostname: RPC: Program not registered
這條 showmount 命令應該列出檔案系統。如果該命令失敗,那麼 NFS 伺服器可能還沒有啟動。以 root 身份執行以下命令來手動啟動伺服器:
- /etc/rc.d/init.d/nfs restart
步驟 5 - 啟用 rsh 和 配置SSH等效性
以 root 身份,啟用 ServerA 和 ServerB (以及叢集中所有其他的每一臺計算機)上的 rsh。
- 編輯 /etc/xinetd.d/rsh 檔案並將 disable 標誌改為 no。
-
輸入以下命令,重新啟動 xinetd 伺服器:
- /etc/init.d/xinetd restart
在主節點 db2inst1 使用者的主目錄下建立.ssh 目錄
mkdir ~/.ssh
chmod 700 ~/.ssh
--為 SSH 協議生成 DSA 金鑰對(公共金鑰和私有金鑰)出現提示時,接受預設的金鑰檔案位置和無口令短語設定(按 [Enter]):
[db2inst1@dpf01 .ssh]$ /usr/bin/ssh-keygen -t dsa
此命令將 DSA 公共金鑰寫入 ~/.ssh/id_dsa.pub 檔案,將私有金鑰寫入 ~/.ssh/id_dsa 檔案。
--將金鑰新增到一個公共 authorized_keys 檔案
touch ~/.ssh/authorized_keys
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
--節點上啟用 SSH 使用者等效性
如果 SSH 配置正確,您將能夠從終端對話使用 ssh 和 scp 命令,而無需提供口令或口令短語。
[db2inst1@dpf01 .ssh]$ ssh dpf02 "date;hostname"
2015年 01月 02日 星期五 16:51:28 CST
dpf02
[db2inst1@dpf01 .ssh]$ ssh dpf01 "date;hostname"
2015年 01月 02日 星期五 16:51:36 CST
dpf01
步驟 6 - 配置 NFS 伺服器
在 ServerA 上以 root 身份執行以下操作:
-
發出以下命令,確信裝配了 /db2home 目錄:
- mount /db2home
-
確保新的檔案系統將會在啟動時被裝配,這可以透過檢查 /etc/fstab 是否包含相關條目來做到。如果沒有關於 /db2home 的條目,那麼應該新增這樣的條目。在這裡的配置中,我們使用:
- /dev/hda7 /db2home ext3 defaults 1 2
-
新增一個條目到 /etc/exports 檔案,以便在啟動時自動地匯出 NFS 檔案系統。在這裡的配置中,這個條目是:
- /db2home ServerA (rw,sync,no_root_squash) ServerB (rw,sync,no_root_squash)
- /db2home ServerA (permissions) ServerB (permissions) ServerC (permissions)...
-
執行以下命令,匯出 NFS 目錄:
- /usr/sbin/exportfs -a
步驟 7 - 配置 NFS 客戶機
在 ServerB (以及叢集中所有其他的每一臺計算機)上以 root 身份執行以下操作:
-
發出以下命令,建立將對映到 NFS 共享目錄 /db2home 的新目錄:
- mkdir /db2home
-
新增一個條目到 /etc/fstab 檔案,以便在啟動時自動裝配 NFS 檔案系統。
- ServerA:/db2home /db2home nfs rw,timeo=300,retrans=5,hard,intr,bg,suid
- ServerA - NFS 伺服器的計算機名
- rw - 讀和寫訪問
- timeo=300 - 如果 nfs 伺服器在規定時間內沒有響應(以十分之一秒為單位),則允許核心超時
- retrans=5 - 設定在返回錯誤之前重複的請求數
- hard - 當伺服器掛起時,客戶機將被阻塞,直到伺服器重新處於活動狀態
- intr - 客戶機(使用者)可以中斷會導致錯誤的被阻塞的操作
- bg - 如果裝配失敗,系統繼續在後臺重試,然後繼續
- suid - 允許 set-user-identifier 或 set-group-identifier 生效
-
NFS 裝配匯出的檔案系統
- mount SereverA:/db2home /db2home
- showmount: ServerA: RPC: Program not registered
上面的 showmount 命令應該會列出檔案系統。如果該命令失敗,那麼可能是因為 NFS 伺服器還沒有啟動。以 root 身份在 NFS 伺服器上執行以下命令手動啟動該伺服器:
- /etc/rc.d/init.d/nfs restart
步驟 8 - 建立所需的組和使用者
以 root 身份在 ServerA 和 ServerB (以及叢集中所有其他的每一臺計算機)上執行以下命令,為 DB2 建立適當的 OS 使用者和組(注意: 每臺計算機上的使用者和組必須相同):
- groupadd -g 999 db2iadm1
- groupadd -g 998 db2fadm1
- groupadd -g 997 dasadm1
- useradd -u 1004 -g db2iadm1 -m -d /db2home/db2inst1 db2inst1 -p password1
- useradd -u 1003 -g db2fadm1 -m -d /db2home/db2fenc1 db2fenc1 -p password2
- useradd -u 1002 -g dasadm1 -m -d /home/dasusr1 dasusr1 -p password3
- passwd db2inst1
- passwd db2fenc1
- passwd dasusr1
步驟 9 - 在例項所在的計算機上安裝 DB2 UDB V8.1 ESE 和 FixPak
以 root 身份在 ServerA 上執行以下命令,安裝 IBM DB2 UDB Enterprise Server Edition V8.1 和 FixPak:
- cd /db2home/images/
- tar xvf C48THML.tar
- tar xvf PSoft_10533_v81_fp5a_linuxintel_32.tar
-
安裝 DB2:
- cd /db2home/images/009_ESE_LNX_32_NLV
- ./db2_install
-
當 db2_install 提示輸入產品密碼時,輸入:
- DB2.ESE
-
安裝 FixPak:
- cd /db2home/images/FP5a
- ./installFixPak
在 Linux 上 DB2 的安裝目錄是 /opt/IBM/db2/V8.1。
步驟 10 - 例項所在計算機上安裝後的任務
以 root 身份在 ServerA 上執行以下操作:
-
建立 DB2 例項:
- cd /opt/IBM/db2/V8.1/instance
- ./db2icrt -u db2fenc1 db2inst1
-
為 DB2 例項配置 TCP/IP,即更新 /etc/services 檔案,在其中指定 DB2 伺服器用於偵聽客戶機請求的服務名和埠號。之後這個檔案看上去應該是這樣的:
- db2c_db2inst1 50000/tcp # DB2 connections service port
- DB2_db2inst1 60000/tcp
- DB2_db2inst1_1 60001/tcp
- DB2_db2inst1_2 60002/tcp
- DB2_db2inst1_END 60003/tcp
-
更新伺服器上的資料庫管理器配置檔案和 .profile 檔案:
- su - db2inst1
-
透過執行 db2profile 指令碼設定例項環境
- ./db2home/db2inst1/sqllib/db2profile
為了在每次使用者登入到 Linux 系統上的時候設定使用者環境,新增以下命令到 .profile 中:
- vi /db2home/db2inst1/.profile file
- ./db2home/db2inst1/sqllib/db2profile
-
更新 DBM 配置檔案中的 SVCENAME 引數:
- db2 update dbm cfg using SVCENAME db2c_db2inst1
-
將 DB2COMM 登錄檔變數設定為 tcpip:
- db2set DB2COMM=tcpip
-
停止並重新啟動例項,以便使得這些更改生效
- db2stop
- db2start
-
以 root 身份,建立 DB2 Administration Server (DAS)
- su -
- cd /opt/IBM/db2/V8.1/instance
- ./dascrt -u dasusr1
注意: 如果您計劃使用 DB2 GUI 工具,例如 Control Center 和 Task Center,那麼必須要有 DAS。
步驟 11 - 在參與分割槽的計算機上安裝 DB2 UDB V8.1 ESE 和 FixPak
以 root 身份在 ServerB (以及叢集中所有其他的每一臺計算機)上執行以下操作,以便安裝 IBM DB2 UDB Enterprise Server Edition V8.1 和 FixPak:
-
安裝 DB2:
- cd /db2home/images/009_ESE_LNX_32_NLV
- ./db2_install
-
當 db2_install 提示輸入產品密碼時,輸入:
- DB2.ESE
-
現在安裝 FixPak:
- cd /db2home/images/FP5a
- ./installFixPak
步驟 12 - 分割槽配置
在分割槽資料庫系統中,每個資料庫分割槽伺服器必須有許可權來在參與例項的所有其他資料庫分割槽伺服器上執行遠端命令。以 root 身份在 ServerA 上執行以下操作,以使 DB2 例項能在多個分割槽上執行:
-
在一個編輯器中開啟 .rhosts 檔案:
- vi /db2home/db2inst1/.rhosts
-
新增以下兩行到 .rhosts 中並儲存:
- ServerA db2inst1
- ServerB db2inst1
-
為 root(只有 root)授予對 .rhosts 檔案的讀 (r) 和寫 (w) 許可:
- chmod 600 /db2home/db2inst1/.rhosts
-
為了定義哪些主機參與分割槽環境,必須更新 db2nodes.cfg:
- vi /db2home/db2inst1/sqllib/db2nodes.cfg
-
新增以下幾行(表示分割槽號、主機名和邏輯埠)到 db2nodes.cfg 並儲存:
- 0 ServerA 0
- 1 ServerA 1
- 2 ServerB 0
- 3 ServerB 1
-
/etc/services 檔案包含以下 DB2 條目:
- # Local services
- db2c_db2inst1 50000/tcp
- DB2_db2inst1 60000/tcp
- DB2_db2inst1_1 60001/tcp
- DB2_db2inst1_2 60002/tcp
- DB2_db2inst1_END 60003/tcp
完成所有更新後,便可以使用 db2_all 命令來檢查設定情況,該命令將查詢所有分割槽(在這裡,兩個物理伺服器上各有兩個邏輯分割槽)上的資料。以 db2inst1 身份在 ServerA 或 ServerB 上輸入:
- db2_all date
- rah date
- 如報錯Permission denied,設定DB2RSHCMD=/usr/bin/ssh
$ db2_all date Fri Jul 16 18:57:57 EDT 2004 ServerA: date completed ok Fri Jul 16 18:57:57 EDT 2004 ServerA: date completed ok Fri Jul 16 18:57:49 EDT 2004 ServerB: date completed ok Fri Jul 16 18:57:49 EDT 2004 ServerB: date completed ok $
這樣可以檢驗是否成功地用 db2_install 在 Red Hat Advanced Server 2.1 上安裝和配置了帶有 DPF 的 DB2 UDB ESE V8.1。
步驟 13 - 測試配置
現在可以使用帶有 DPF 環境的 DB2 UDB ESE V8.1 了。嘗試以下命令:
- db2stop
- db2start
- cd /db2home/db2inst1/sqllib/bin
- ./db2sampl
- db2 connect to sample
- db2 "select * from sales"
-
要驗證是否已將資料分發至資料庫分割槽伺服器,在 DB2 命令視窗中輸入下列命令:
db2 "select distinct dbpartitionnum(empno) from employee"
輸出將列示 employee 表使用的資料庫分割槽。特定輸出將取決於:- 資料庫中資料庫分割槽的數目
- 建立 employee 表的表空間所使用的資料庫分割槽組中的資料庫分割槽數
lvcreate -L 5G -n lv_db2data1 vg_db2
lvcreate -L 1G -n lv_db2path vg_db2
lvcreate -L 1G -n lv_db2plog vg_db2
lvcreate -L 1G -n lv_db2mlog vg_db2
lvcreate -L 5G -n lv_db2archive vg_db2
mkdir /db2data1
mkdir /db2path
mkdir /db2plog
mkdir /db2mlog
mkdir /db2archive
cat >> /etc/fstab <
/dev/mapper/vg_db2-lv_db2data1 /db2data1 ext3 defaults 1 2
/dev/mapper/vg_db2-lv_db2mlog /db2mlog ext3 defaults 1 2
/dev/mapper/vg_db2-lv_db2path /db2path ext3 defaults 1 2
/dev/mapper/vg_db2-lv_db2plog /db2plog ext3 defaults 1 2
EOF
mkfs.ext3 /dev/mapper/vg_db2-lv_db2archive
mkfs.ext3 /dev/mapper/vg_db2-lv_db2data1
mkfs.ext3 /dev/mapper/vg_db2-lv_db2mlog
mkfs.ext3 /dev/mapper/vg_db2-lv_db2path
mkfs.ext3 /dev/mapper/vg_db2-lv_db2plog
chown -R db2inst1:db2iadm1 /db2data1
chown -R db2inst1:db2iadm1 /db2path
chown -R db2inst1:db2iadm1 /db2plog
chown -R db2inst1:db2iadm1 /db2mlog
chown -R db2inst1:db2iadm1 /db2archive
should be used. SQLSTATE=01539
SQL0332N Character conversion from the source code page "1386" to the target
code page "819" is not supported. SQLSTATE=57017
connect to address 192.168.2.71 port 544: Connection refused
trying normal rsh (/usr/bin/rsh)
2015?ê 01?? 20?? ?????? 18:49:56 CST
dpf01: date completed ok
rexec
rsh
rlogin
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22661144/viewspace-1477266/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- AIX 5.3 安裝 DB2 9.7 DPFAIDB2
- Suse 11 安裝 DB2 10.1 DPFDB2
- db2 v9.7_install_on_linuxDB2Linux
- Oracle 10g RAC Install for rhel 5.8Oracle 10g
- RHEL 6.3 x86_64 install oracle 12c dbOracle
- Linux Install MemcachedLinux
- Samba Install in linuxSambaLinux
- RHEL6.5下DB2 V10.1 安裝DB2
- rhel Linux 網路配置Linux
- Mysql 5.7.21 install for LinuxMySqlLinux
- linux install oracle jdkLinuxOracleJDK
- install flash player for linuxLinux
- 10gR2 RAC Install issues on Oracle EL5 or RHEL5Oracle
- Linux_NetworkManager_RHEL7Linux
- linux之--install超時Linux
- 02. Install redis on LinuxRedisLinux
- Install Bugzilla on Linux 01Linux
- Install Bugzilla on Linux 02Linux
- Install Bugzilla on Linux 03Linux
- linux下install vmware toolsLinux
- Install Oracle 10gR2 64bit on RHEL5 x64Oracle 10g
- [DB2]linux下安裝db2 v9.7DB2Linux
- How to install 64-bit Google Chrome 28+ on 64-bit RHEL/CentOS 6 or 7GoChromeCentOS
- rhel Linux系統yum的配置Linux
- linux mint 18.2 install erlangLinux
- linux mint 18.2 install postgresqlLinuxSQL
- mysql 5.6 for linux install(three types)MySqlLinux
- install oracle 11g for linuxOracleLinux
- oracle10g Install on linuxOracleLinux
- linux下安裝db2LinuxDB2
- Install Google Chrome on Fedora 28/27, CentOS/RHEL 7.5 (在 fedora 28 等 上 安裝 chrome)GoChromeCentOS
- [Python] Linux下python installPythonLinux
- Linux-chromium(谷歌) install flash playerLinux谷歌
- Install Oracle Instant Client on Linux and WindowsOracleclientLinuxWindows
- oracle 11g rac install for linuxOracleLinux
- oracle 10g rac install for linuxOracle 10gLinux
- Rac11gR2 install On LinuxLinux
- linux(ubuntu) install xen-3.4.2薦LinuxUbuntu