在DB2的管理工作中,有时可能需要修改DB2数据库服务器的主机名,笔者将指导您修改DB2服务器的主机名。
产品:DB2 UDB
平台:AIX,Solaris,HP-UX,Linux,Windows
版本:V8 V9.1V9.5
为了修改服务器的主机名,我们可以在DB2数据库服务器上执行以下步骤来实现:
1) 停止DB2管理服务器(DAS)和DB2实例
a)db2admin stop
在Windows上,您可以直接执行命令来停止DAS,在Linux和UNIX上,您可以执行命令来获取DAS实例的名称,然后再停止DAS,如
 
  
  1. db2set-all|grepDB2ADMINSERVER   
  2. [g]DB2ADMINSERVER=das91 
然后su – das91后执行命令“db2admin stop”
b) db2stop
如果有多个实例,需要全部停止。可以用db2ilist命令列出该主机上所有的实例,然后一一停止
如果是Windows系统,您可以
 
  
  1. setDB2INSTANCE=INST1   
  2. db2stop 
这样来停止实例
如果是Linux或UNIX系统,您可以分别登录实例用户来执行”db2stop”
2) 修改服务器主机名(各种操作系统如何修改主机名,请参阅相关操作系统文档)
3) 以DB2实例用户登录后,执行
 
  
  1. db2set-gDB2SYSTEM=db2terminate 
上述命令,在Windows上,应该不会遇到问题,但是如果您的操作系统是Linux或者是UNIX的话,有可能此时遇到错误,如:如果是V8、V9.1,
您将遇到如下错误信息:
 
  
  1. $db2set–gDB2SYSTEM=pirates   
  2. DB2SETprocessingcomplete,rc=-2029059830,SQLCODE=0 
如果是V9.5,您将遇到如下错误信息:
 
  
  1. $db2set-gDB2SYSTEM=privates   
  2. DBI1309ESystemerror.   
  3. Explanation:   
  4. Thetoolencounteredanoperatingsystemerror.   
  5. Userresponse:   
  6. Asystemerrorwasencounteredduringregistryaccess.Ensurethatthere   
  7. isenoughspaceonthefilesystemwheretheregistryislocated,and   
  8. thatthereisavalidLANconnectioniftheregistryisremote. 
上述误的原因是因为全局变量的操作涉及到系统级别的文件,实例用户并无相应权限来修改文件,而是需要root权限。我们可以用以下方法来完成该命令的执行:
 
  
  1. $suroot   
  2. root'sPassword:   
  3. $db2set-gdb2system=privates   
  4. $db2terminate 
注意:上述su命令用不带- 的,使得root具有实例用户的环境变量
如果有多个实例,上述命令只需执行一次
用实例用户检查修改情况,可以确认已经修改完成。
 
  
  1. $db2set–all|grepDB2SYSTEM   
  2. [g]DB2SYSTEM=privates 
4) 编辑db2nodes.cfg文件,该文件位于
 
  
  1. ** Linux和UNIX: /sqllib/db2nodes.cfg   
  2. ** Windows: IBMSQLLIBDB2db2nodes.cfg 
把主机名修改为新的主机名,如db2node.cfg原内容为 0 red01 0
改为新的主机名 0 privates 0
如果有多个实例,请一并修改
5) 更新DB2管理服务器的配置信息
 
  
  1. a)db2listadminnodedirectoryshowdetail   
  2. b)db2uncatalognode   
  3. c)db2catalogadmintcpipnoderemotesystem   
  4. d)db2updateadmincfgusingDB2SYSTEM   
  5. e)db2updateadmincfgusingSMTP_SERVER 
6) 启动DB2管理服务器(DAS)和DB2实例
a)db2admin start
在Windows上,您可以直接执行命令来启动DAS,在Linux和UNIX上,您可以执行命令来获取DAS实例的名称,然后再停止DAS,如
 
  
  1. db2set-all|grepDB2ADMINSERVER   
  2. [g]DB2ADMINSERVER=das91 
然后su – das91后执行命令“db2admin start”
b) db2start
如果有多个实例,需要全部运行。可以用db2ilist命令列出该主机上所有的实例,然后一一启动
如果是Windows系统,可以
 
  
  1. setDB2INSTANCE=INST1   
  2. db2start 
这样来启动实例。
如果是Linux或UNIX系统,您可以分别登录实例用户来执行”db2start”
7) 从服务器上的DB2控制中心删除旧主机名的条目,然后单击“添加系统”菜单,用新主机名发现新的主机名来添加。如果您从来不使用控制中心等GUI工具,此步骤可以忽略。而且,从DB2 V9.1开始,在UNIX系统上将不再提供控制中心等GUI工具。