DB2數(shù)據(jù)庫(kù)服務(wù)器主機(jī)名如何修改
本文將為您介紹在DB2服務(wù)器使用過(guò)程中,修改DB2數(shù)據(jù)庫(kù)服務(wù)器主機(jī)名的詳細(xì)步驟,以及出現(xiàn)問(wèn)題相應(yīng)的辦法,供您參考,希望能對(duì)您有所幫助。
產(chǎn)品:DB2 UDB
平臺(tái):AIX,Solaris,HP-UX,Linux,Windows
版本:V8 V9.1V9.5
問(wèn)題描述:
出于各種各樣的原因,在DB2服務(wù)器使用過(guò)程中,用戶有可能需要修改DB2數(shù)據(jù)庫(kù)服務(wù)器的主機(jī)名,那么DB2需要做哪些相應(yīng)的修改呢?
問(wèn)題解答:
為了修改DB2服務(wù)器的主機(jī)名,我們可以在DB2數(shù)據(jù)庫(kù)服務(wù)器上執(zhí)行以下步驟來(lái)實(shí)現(xiàn):
1) 停止DB2管理服務(wù)器(DAS)?/SPAN>DB2實(shí)例
a)db2admin stop
在Windows上,您可以直接執(zhí)行命令來(lái)停止DAS,在Linux和UNIX上,您可以執(zhí)行命令來(lái)獲取DAS實(shí)例的名稱,然后再停止DAS,如
db2set -all |grep DB2ADMINSERVER
[g] DB2ADMINSERVER=das91
然后su – das91后執(zhí)行命令“db2admin stop”
b) db2stop
如果有多個(gè)實(shí)例,需要全部停止。可以用db2ilist命令列出該主機(jī)上所有的實(shí)例,然后一一停止
如果是Windows系統(tǒng),您可以#p#
set DB2INSTANCE=INST1
db2stop
這樣來(lái)停止實(shí)例
如果是Linux或UNIX系統(tǒng),您可以分別登錄實(shí)例用戶來(lái)執(zhí)行”db2stop”
2)修改服務(wù)器主機(jī)名(各種操作系統(tǒng)如何修改主機(jī)名,請(qǐng)參閱相關(guān)操作系統(tǒng)文檔)
3)以DB2實(shí)例用戶登錄后,執(zhí)行
db2set -g DB2SYSTEM=<new hostname>
db2 terminate
上述命令,在Windows上,應(yīng)該不會(huì)遇到問(wèn)題,但是如果您的操作系統(tǒng)是Linux或者是UNIX的話,有可能此時(shí)遇到錯(cuò)誤,如:
如果是V8、V9.1,您將遇到如下錯(cuò)誤信息:
$ db2set –g DB2SYSTEM=pirates
DB2SET processing complete, rc = -2029059830, SQLCODE = 0
如果是V9.5,您將遇到如下錯(cuò)誤信息:
$ db2set -g DB2SYSTEM=privates
DBI1309E System error.#p#
Explanation:
The tool encountered an operating system error.
User response:
A system error was encountered during registry access. Ensure that there
is enough space on the file system where the registry is located, and
that there is a valid LAN connection if the registry is remote.
上述錯(cuò)誤的原因是因?yàn)槿肿兞康牟僮魃婕暗较到y(tǒng)級(jí)別的文件,實(shí)例用戶并無(wú)相應(yīng)權(quán)限來(lái)修改文件,而是需要root權(quán)限。我們可以用以下方法來(lái)完成該命令的執(zhí)行:
$ su root
root's Password:
$ db2set -g db2system=privates
$ db2 terminate
注意:上述su命令用不帶- 的,使得root具有實(shí)例用戶的環(huán)境變量
如果有多個(gè)實(shí)例,上述命令只需執(zhí)行一次
用實(shí)例用戶檢查修改情況,可以確認(rèn)已經(jīng)修改完成。
$ db2set –all |grep DB2SYSTEM#p#
[g] DB2SYSTEM= privates
4)編輯db2nodes.cfg文件
該文件位于
** Linux和UNIX: <db2 instance home directory>/sqllib/db2nodes.cfg
** Windows: <db2 install directory>\IBM\SQLLIB\DB2\db2nodes.cfg
把主機(jī)名修改為新的主機(jī)名,如db2node.cfg原內(nèi)容為
0 red01 0
改為新的主機(jī)名
0 privates 0
如果有多個(gè)實(shí)例,請(qǐng)一并修改
5) 更新DB2管理服務(wù)器的配置信息
a) db2 list admin node directory show detail
b) db2 uncatalog node <old_hostname>
c) db2 catalog admin tcpip node <new hostname> remote <new hostname> system <new hostname>
d) db2 update admin cfg using DB2SYSTEM <new hostname>
e) db2 update admin cfg using SMTP_SERVER <new hostname>#p#
a)db2admin start
在Windows上,您可以直接執(zhí)行命令來(lái)啟動(dòng)DAS,在Linux和UNIX上,您可以執(zhí)行命令來(lái)獲取DAS實(shí)例的名稱,然后再停止DAS,如
db2set -all |grep DB2ADMINSERVER
[g] DB2ADMINSERVER=das91
然后su – das91后執(zhí)行命令“db2admin start”
b)db2start
如果有多個(gè)實(shí)例,需要全部運(yùn)行??梢杂胐b2ilist命令列出該主機(jī)上所有的實(shí)例,然后一一啟動(dòng)
如果是Windows系統(tǒng),您可以
set DB2INSTANCE=INST1
db2start
這樣來(lái)啟動(dòng)實(shí)例。
如果是Linux或UNIX系統(tǒng),您可以分別登錄實(shí)例用戶來(lái)執(zhí)行”db2start”#p#
7) 從服務(wù)器上的DB2控制中心刪除舊主機(jī)名的條目,然后單擊“添加系統(tǒng)”菜單,用新主機(jī)名發(fā)現(xiàn)新的主機(jī)名來(lái)添加。如果您從來(lái)不使用控制中心等GUI工具,此步驟可以忽略。而且,從DB2 V9.1開(kāi)始,在UNIX系統(tǒng)上將不再提供控制中心等GUI工具。
注意:
從DB2 V9.1 FP2開(kāi)始,DB2支持用域用戶組作為擴(kuò)展Windows安全性。因此,當(dāng)您要更改計(jì)算機(jī)名的時(shí)候,計(jì)算機(jī)用戶組DB2ADMNS和DB2USERS是本地用戶組,您必須更新全局注冊(cè)表變量DB2_ADMINGROUP和DB2_USERSGROUP。當(dāng)計(jì)算機(jī)主機(jī)名修改并且重啟后,用以下步驟來(lái)修改注冊(cè)表變量:
1. 打開(kāi)一個(gè)命令行
2. 執(zhí)行db2extsec命令來(lái)更新安全設(shè)置
db2extsec -a <new computer name>\DB2ADMNS -u <new computer name>\DB2USERS