1. 程式人生 > >Redhat安裝db2資料庫(伺服器)

Redhat安裝db2資料庫(伺服器)

博主的安裝包是IBM_DB2_SERVER_11.1_LNX_64.tar.gz,使用命令列安裝,以下為教程(1~6均是使用root使用者):
1、在/home目錄下建立資料夾db2install,將安裝包拷到該資料夾中。
2、以root使用者登入,解壓該安裝包,命令為:
tar -zxvf IBM_DB2_SERVER_11.1_LNX_64.tar.gz
3、解壓後會在該目錄下生成一個server資料夾,進入該資料夾下,執行安裝指令碼:
./db2_install
途中讓我選擇是否安裝到預設目錄(/opt/ibm/db2/V11.1,我的版本是11.1),選擇安裝版本,我選的SERVER(可能低版本的需要選擇ESE),以及是否需要安裝pureScale Feature,我因為感覺用不到所以選擇了否,大家自行決定。選完後就是需要等待了,如果最後彈出安裝失敗,可以看安裝日誌,如果安裝成功後,發現有些小錯誤也不影響(就像64位的系統缺少一些包也不會影響安裝和使用,最多就是安裝的時候會有些提示)。
4、安裝licen,命令如下:

cd /opt/ibm/db2/V11.1/adm
./db2licm –a/home/db2install/server/db2/license/db2ese_c.lic

其中,db2ese_c.lic是你的license檔案,自帶的db2ese.lic並不能成功,我這個db2ese_c.lic是公司給我的。
5、建立使用者組和使用者:
db2需要三種使用者:

DAS使用者(管理伺服器)
fence使用者
例項使用者

具體資料大家可以上網搜,博主也不是很清楚。
因此,我們可以建立三個使用者組和三個使用者,命令為:

groupadd db2grp
groupadd db2fgrp
groupadd dasadm
useradd -m
-g db2grp -d /home/db2inst1 -s /bin/bash db2inst1 useradd -m -g db2fgrp -d /home/db2fenc -s /bin/bash db2fenc useradd -m -g dasadm -d /home/dasusr -s /bin/bash dasusr

設定密碼:

passwd db2inst1
passwd db2fenc
passwd dasusr

其中,建立db2inst1使用者,是因為db2好像有預設db2inst這個例項,因此博主第一次建立db2inst時,執行到後面的操作總是報錯,因此改成了db2inst1這個使用者。
6、建立DAS和資料庫例項:
進入目錄/opt/ibm/db2/V11.1/instance:

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

建立DAS:

./dascrt -u dasusr

-u dasusr表示指定DAS使用者名稱,dasusr為之前建立的dasusr使用者。
建立資料庫例項:

./db2icrt -p 50000 -u db2fenc db2inst1

-p 50000引數表示指定DB2例項對外服務埠
-u db2fenc表示指定此例項使用的fence使用者名稱
db2inst1表示指定此例項名和所有者名(二者相同)

7、設定資料庫例項自動啟動:
切換至db2inst1使用者:

su - db2inst1

執行命令:

db2iauto –on db2inst

8、驗證DB2資料庫的安裝:
以db2inst1使用者ID登入系統,啟動資料庫DB2:

db2start

連線db2:

db2

建立sample資料庫:

create database sample

連線sample資料庫

connect to sample

建立表空間TS_TEST:

create tablespace TS_TEST

建立表test(含有一個id欄位):

create table test(id varchar(32)) in TS_TEST

接下你就可以操作這個表了,自行操作即可。
退出db2命令是:Ctrl+c,再按回車即可。

停掉db2命令:

db2stop

或者是:

db2stop force

9、檢視並修改db2連線協議:
以db2inst1登入,執行命令:

db2set -all

其中,DB2COMM決定了連線協議,如果不是TCPIP的話就無法在其他電腦上遠端連線資料庫了,此時可以通過命令:

db2set DB2COMM=tcpip
db2stop
db2start

10、檢視並修改db2的埠號:
以db2inst1登入,執行命令:

db2 get dbm cfg | grep -i service

如果(SVCENAEM) =後面直接是數字的號,即為db2的埠號,如果是另一個名稱話(例如db2c_db2inst1),再執行命令:

grep db2c_db2inst1 /etc/services 

輸出結果即為埠號。
如果想更改,例如更改到50001,先檢視該埠號是否被佔用。
在root使用者下執行命令:

netstat -ntlp | grep 50001

沒有返回結果證明該埠號沒有被佔用。
再登入db2inst1,執行命令:

db2 update dbm cfg using SVCENAME 50001
db2stop
db2start

修改成功。

希望大家都能夠順利安裝,如果有什麼疑問,也歡迎留言,雖然博主在這方面也是小白,但也可以幫大家參考參考。