linux db2配置实例用户,[DB2]原创--新建实例与网络通信配置
最近白天上DB2課程,晚上準備OCP考試復(fù)習,有一段時間沒寫博客了?,F(xiàn)在先將今晚的實驗給總結(jié)一下,有空再將前些日子的實驗進行整理。
本實驗分為上下兩部分,第一部分:創(chuàng)建一個DB2實例;第二部分,進行了DB2網(wǎng)絡(luò)通信配置(Server驗證模式)的詳解,演示了使用DB2命令行客戶端(windows環(huán)境下),連接遠端數(shù)據(jù)庫的配置過程,這其中涉及到服務(wù)器端的配置、客戶端的編目節(jié)點目錄和編目數(shù)據(jù)庫的內(nèi)容。
第一部分:新建實例
1、欲使用db2icrt命令來創(chuàng)建實例,卻發(fā)現(xiàn)找不到該命令:
[db2inst1@localhost ~]$ db2icrt
-bash: db2icrt: command not found
2、查找該命令工具的路徑,并嘗試執(zhí)行,發(fā)現(xiàn)權(quán)限不足,需要在root用戶下執(zhí)行該命令:
[db2inst1@localhost ~]$ find /opt/ibm/ -name db2icrt
/opt/ibm/db2/V9.7/instance/db2icrt
[db2inst1@localhost ~]$ /opt/ibm/db2/V9.7/instance/./db2icrt
-h
-bash:
/opt/ibm/db2/V9.7/instance/./db2icrt: Permission denied
3、切換到root用戶,使用-h來查看幫助:
[root@localhost instance]# su - db2inst2
[db2inst2@localhost ~]$ su - root
Password:
[root@localhost ~]# cd /opt/ibm/db2/V9.7/instance
[root@localhost instance]# ./db2icrt -h
DBI1001IUsage:
db2icrt [-h|-?]
[-d]
[-a AuthType]
[-p PortName]
[-s InstType]
-u FencedID InstName
4、發(fā)現(xiàn)需要指定FencedID和InstName參數(shù),而這兩個參數(shù),實際上就是要指定兩個用戶名,FencedID用戶主要管理用戶定義的函數(shù)(UDF)和受防護存儲過程。而InstName是新實例的名稱,也是我們新實例的管理員的用戶名。下面我們,分別新建這兩個用戶:
[root@localhost
~]# useradd inst2Fence
[root@localhost ~]# passwd inst2Fence
Changing password for user inst2Fence.
New UNIX password:
BAD PASSWORD: it is based on a dictionary
word
Retype new UNIX password:
passwd: all authentication tokens updated
successfully.
[root@localhost
~]# useradd db2inst2
[root@localhost ~]# passwd db2inst2
Changing password for user db2inst2.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated
successfully.
5、現(xiàn)在是最關(guān)鍵的步驟,使用如下命令來創(chuàng)建實例,客戶驗證的方式采用server(-a參數(shù)),指定端口號為55555(-p參數(shù)),結(jié)果因Fenced用戶名過長,創(chuàng)建失敗:
[root@localhost instance]#./db2icrt -a server -p
55555 -s ese -u inst2Fence db2inst2
ERROR: The length of the fenced user name
inst2Fence is invalid. It must not be longer than 8.
我們再創(chuàng)建一個名字較短的用戶,以滿足要求:
[root@localhost instance]# ./db2icrt -a server -p
55555 -s ese -u Fence2 db2inst2
DBI1070IProgram db2icrt completed successfully.
6、切換用戶登陸,查看下系統(tǒng)當前的默認實例:
[root@localhost instance]# su - db2inst2
[db2inst2@localhost ~]$ db2 get instance
The
current database manager instance is:db2inst2
查看所有實例:
[db2inst2@localhost ~]$ db2ilist
db2inst2
db2inst1
總結(jié):
1、創(chuàng)建實例使用的是db2icrt命令,由于版本的原因,默認是找不到該命令工具的路徑。2、在創(chuàng)建實例之前,需要先創(chuàng)建好FencedID用戶和InstName用戶。
第二部分
此部分實驗,演示了如何使用命令行客戶端如何與db2服務(wù)器進行通信。
首先,在服務(wù)端需要配置好服務(wù)名、監(jiān)聽端口、通信協(xié)議,并且需要創(chuàng)建一個數(shù)據(jù)庫,供客戶端連接:
1、配置服務(wù)名
1.1、查看一下服務(wù)名,發(fā)現(xiàn)創(chuàng)建實例時指定的-p參數(shù)(端口名或端口號),成為了服務(wù)名:
[db2inst2@localhost ~]$ db2 get dbm cfg | grep SVC
TCP/IP Service name(SVCENAME) = 55555
SSL
service name(SSL_SVCENAME) =
1.2、指定實例的服務(wù)名為db2c_db2inst2:
[db2inst2@localhost ~]$ db2 update dbm cfg using
SVCENAME db2c_db2inst2
DB20000IThe UPDATE DATABASE MANAGER CONFIGURATION command completed
successfully.
[db2inst2@localhost ~]$ db2 get dbm cfg | grep
SVC
TCP/IP Service name(SVCENAME) =
db2c_db2inst2
SSL
service name(SSL_SVCENAME) =
2、指定監(jiān)聽客戶端請求的端口,修改service文件:
[root@localhost instance]# vi /etc/services
db2c_db2inst255555/tcp
3、確認好通信協(xié)議是tcpip:
[db2inst2@localhost ~]$ db2set
DB2COMM=tcpip
4、重啟db2實例(運行db2stop和db2start兩條命令),查看監(jiān)聽是否開啟:
[root@localhost instance]#netstat -a | grep db2c_db2inst2
tcp00 *:db2c_db2inst2*:*LISTEN
5、新建一個數(shù)據(jù)庫,供客戶端連接:
db2 => create database demo
DB20000IThe CREATE DATABASE command completed successfully.
以下部分是在客戶端進行配置的操作過程:
1、編目節(jié)點目錄:
回到我們的客戶端機器,打開windows的開始菜單,選擇“IBM DB2”--“命令行工具”--“命令窗口”:
db2 => catalog TCPIP node n1 remote
192.168.102.163 server db2c_db2inst2
DB20000ICATALOG TCPIP NODE命令成功完成。
DB21056W只有在刷新目錄高速緩存以后,目錄更改才會生效。
如何才能夠“刷新”呢?使用如下命令,來查看幫助:
db2 => ? DB21056W
DB21056W直到刷新目錄高速緩存之后,目錄更改才生效。
解釋:
若啟用了目錄高速緩存(DBM CFG dir_cache),數(shù)據(jù)庫、節(jié)點和DCS目錄文件都高速緩存在內(nèi)存中。直到刷新該目錄高速緩存之后,目錄更改才開始生效。參閱“管理指南”中的dir_cache配置參數(shù)以獲取有關(guān)目錄高速緩存的描述。
用戶響應(yīng):
要刷新CLP的目錄高速緩存,發(fā)出db2TERMINATE。要刷新另一個應(yīng)用程序的目錄信息,停止該應(yīng)用程序,然后重新啟動它。要刷新該數(shù)據(jù)庫的目錄信息,停止(db2stop)該應(yīng)用程序,然后重新啟動(db2start)它。
查看幫助后,發(fā)現(xiàn)使用terminate即可:
db2 => terminate
DB20000ITERMINATE命令成功完成。
D:\Program Files\IBM\SQLLIB\BIN>
2、在客戶端上編目數(shù)據(jù)庫,可以給數(shù)據(jù)庫名在本地取一個“別名”,以防止不同實例下的數(shù)據(jù)庫出現(xiàn)同名的情況:
db2 => catalog database demo as demo2 at node n1
authentication server
DB20000ICATALOG DATABASE命令成功完成。
DB21056W只有在刷新目錄高速緩存以后,目錄更改才會生效。
db2 => terminate
DB20000ITERMINATE命令成功完成。
3、連接到數(shù)據(jù)庫時出錯,提示找不到服務(wù):
db2 => connect to demo2 user db2inst2 using passwd
SQL1337N找不到服務(wù)"db2c_db2inst2"。
4、分析:建立節(jié)點時,指定的最后一個參數(shù)可能有問題,因為我們新建實例的時候,指定的是端口號;與之對應(yīng)得,客戶端的在進行節(jié)點編目時也應(yīng)該指定端口號,而不是服務(wù)名:
刪除數(shù)據(jù)庫編目和節(jié)點目錄,為重新配置,做準備:
db2 => uncatalog db demo2
DB20000IUNCATALOG DATABASE命令成功完成。
DB21056W只有在刷新目錄高速緩存以后,目錄更改才會生效。
db2 => uncatalog node n1
DB20000IUNCATALOG NODE命令成功完成。
DB21056W只有在刷新目錄高速緩存以后,目錄更改才會生效。
db2 => terminate
DB20000ITERMINATE命令成功完成。
D:\Program Files\IBM\SQLLIB\BIN>db2
5、重建節(jié)點目錄和數(shù)據(jù)庫編目:
db2 => catalog TCPIP node n1 remote
192.168.102.163 server 55555
DB20000ICATALOG TCPIP NODE命令成功完成。
DB21056W只有在刷新目錄高速緩存以后,目錄更改才會生效。
db2 => terminate
DB20000ITERMINATE命令成功完成。
db2 => catalog database demo as demo2 at node n1
authentication server
DB20000ICATALOG DATABASE命令成功完成。
DB21056W只有在刷新目錄高速緩存以后,目錄更改才會生效。
db2 => terminate
DB20000ITERMINATE命令成功完成。
6、成功登陸
db2 => connect to demo2 user db2inst2 using passwd
數(shù)據(jù)庫連接信息
數(shù)據(jù)庫服務(wù)器= DB2/LINUX 9.7.1
SQL授權(quán)標識= DB2INST2
本地數(shù)據(jù)庫別名= DEMO2
db2 => list node directory
節(jié)點目錄
目錄中的條目數(shù)= 2
節(jié)點1條目:
節(jié)點名= N1
注釋=
目錄條目類型= LOCAL
協(xié)議= TCPIP
主機名= 192.168.102.163
服務(wù)名稱= 55555
節(jié)點2條目:
節(jié)點名= NDE5C9F6
注釋=
目錄條目類型= LOCAL
協(xié)議= TCPIP
主機名= 192.168.102.163
服務(wù)名稱= db2c_db2inst1
總結(jié):1、在本實驗中,端口號和通信協(xié)議是服務(wù)器配置的重要參數(shù),服務(wù)名的作用沒有體現(xiàn)出來(使用圖形化工具配置時,服務(wù)名作用十分重要);
2、客戶端的配置,比較關(guān)鍵的步驟是節(jié)點目錄和數(shù)據(jù)庫編目的創(chuàng)建。
總結(jié)
以上是生活随笔為你收集整理的linux db2配置实例用户,[DB2]原创--新建实例与网络通信配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android平台GB28181设备接入
- 下一篇: linux 其他常用命令