DB2 v9.5 on Win03 x64 主机改名后导致SQL1042C

ccnp_Server 2011-05-15 06:59:26
各位,


我按照下述方法修改DB2服务器名称,结果遇到SQL1042C;我的数据库是空的,刚装的,不过里面已经被SAP定义出一个节点,但里面依旧是空。


停止数据库
db2admin stop
db2stop
服务器改名
Change the server's hostname.
生效配置
db2set -g DB2SYSTEM=<new hostname>
更改db2notes配置文件
Documents and Settings\All Users\Application Data\IBM\DB2\<DB2COPY>\DB2\db2nodes.cfg
In the db2nodes.cfg file change <current hostname> to <new hostname>.

执行生效定义,不过印象中,我没有SMTP_SERVER
db2cmd.exe
db2 list admin node directory show detail
db2 update admin cfg using DB2SYSTEM <new hostname>
db2 update admin cfg using SMTP_SERVER <new hostname>

至此,SQL ERROR了。我哪步没做? 我记得IBM官方有说什么USERGROUP的事情,但是没看太懂。



...全文
808 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccnp_Server 2011-05-23
  • 打赏
  • 举报
回复
这个方法已经没有意义了,太早版本了
WWWWA 2011-05-16
  • 打赏
  • 举报
回复
步骤基本没有什么问题,转:
为了修改DB2服务器的主机名,我们可以在DB2数据库服务器上执行以下步骤来实现:

1) 停止DB2管理服务器(DAS)?/SPAN>DB2实例

a)db2admin stop

在Windows上,您可以直接执行命令来停止DAS,在Linux和UNIX上,您可以执行命令来获取DAS实例的名称,然后再停止DAS,如

db2set -all |grep DB2ADMINSERVER

[g] DB2ADMINSERVER=das91

然后su – das91后执行命令“db2admin stop”



b) db2stop

如果有多个实例,需要全部停止。可以用db2ilist命令列出该主机上所有的实例,然后一一停止

如果是Windows系统,您可以

set DB2INSTANCE=INST1

db2stop

这样来停止实例

如果是Linux或UNIX系统,您可以分别登录实例用户来执行”db2stop”



2) 修改服务器主机名(各种操作系统如何修改主机名,请参阅相关操作系统文档)



3) 以DB2实例用户登录后,执行

db2set -g DB2SYSTEM=<new hostname>

db2 terminate



上述命令,在Windows上,应该不会遇到问题,但是如果您的操作系统是Linux或者是UNIX的话,有可能此时遇到错误,如:

如果是V8、V9.1,您将遇到如下错误信息:

$ db2set –g DB2SYSTEM=pirates

DB2SET processing complete, rc = -2029059830, SQLCODE = 0



如果是V9.5,您将遇到如下错误信息:

$ db2set -g DB2SYSTEM=privates



DBI1309E System error.



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.



上述错误的原因是因为全局变量的操作涉及到系统级别的文件,实例用户并无相应权限来修改文件,而是需要root权限。我们可以用以下方法来完成该命令的执行:

$ su root

root's Password:

$ db2set -g db2system=privates

$ db2 terminate

注意:上述su命令用不带- 的,使得root具有实例用户的环境变量

如果有多个实例,上述命令只需执行一次

用实例用户检查修改情况,可以确认已经修改完成。

$ db2set –all |grep DB2SYSTEM

[g] DB2SYSTEM= privates





4) 编辑db2nodes.cfg文件

该文件位于

** Linux和UNIX: <db2 instance home directory>/sqllib/db2nodes.cfg
** Windows: <db2 install directory>\IBM\SQLLIB\DB2\db2nodes.cfg
把主机名修改为新的主机名,如db2node.cfg原内容为

0 red01 0

改为新的主机名

0 privates 0



如果有多个实例,请一并修改



5) 更新DB2管理服务器的配置信息

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>


6) 启动DB2管理服务器(DAS)和DB2实例

a)db2admin start

在Windows上,您可以直接执行命令来启动DAS,在Linux和UNIX上,您可以执行命令来获取DAS实例的名称,然后再停止DAS,如

db2set -all |grep DB2ADMINSERVER

[g] DB2ADMINSERVER=das91

然后su – das91后执行命令“db2admin start”



b) db2start

如果有多个实例,需要全部运行。可以用db2ilist命令列出该主机上所有的实例,然后一一启动

如果是Windows系统,您可以

set DB2INSTANCE=INST1

db2start

这样来启动实例。

如果是Linux或UNIX系统,您可以分别登录实例用户来执行”db2start”





7) 从服务器上的DB2控制中心删除旧主机名的条目,然后单击“添加系统”菜单,用新主机名发现新的主机名来添加。如果您从来不使用控制中心等GUI工具,此步骤可以忽略。而且,从DB2 V9.1开始,在UNIX系统上将不再提供控制中心等GUI工具。



注意:

从DB2 V9.1 FP2开始,DB2支持用域用户组作为扩展Windows安全性。因此,当您要更改计算机名的时候,计算机用户组DB2ADMNS和DB2USERS是本地用户组,您必须更新全局注册表变量DB2_ADMINGROUP和DB2_USERSGROUP。当计算机主机名修改并且重启后,用以下步骤来修改注册表变量:

1. 打开一个命令行

2. 执行db2extsec命令来更新安全设置

db2extsec -a <new computer name>\DB2ADMNS -u <new computer name>\DB2USERS

请看如下URL作为如何修改的教程:

http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp?topic=/com.ibm.db2.udb.admin.doc/doc/c0023391.htm







关于如何使用db2set命令,请参阅:

http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.doc/admin/t0004954.htm









2009-04-17补充:

如果您在WINDOWS上改名后,仍然在DB2START的时候遇到SQL1042C,日志显示如下:

2009-04-09-14.56.38.187000+480 I536816H287 LEVEL: Severe
PID : 5252 TID : 5268 PROC : db2syscs.exe
INSTANCE: DB2 NODE : 000
FUNCTION: DB2 UDB, oper system services, sqloCacheNodeInfo, probe:15
MESSAGE : ZRC=0x83000534=-2097150668

2009-04-09-14.56.38.187000+480 I537105H275 LEVEL: Severe
PID : 5252 TID : 5268 PROC : db2syscs.exe
INSTANCE: DB2 NODE : 000
FUNCTION: DB2 UDB, base sys utilities, DB2StartMain, probe:200
MESSAGE : ZRC=0xFFFFFBEE=-1042

2009-04-09-14.56.38.203000+480 E537382H380 LEVEL: Error (OS)
PID : 5252 TID : 5268 PROC : db2syscs.exe
INSTANCE: DB2 NODE : 000
FUNCTION: DB2 UDB, oper system services, sqloGetAccountSID, probe:30
MESSAGE : ZRC=0x83000534=-2097150668
CALLED : OS, -, LookupAccountName
OSERR : 1332 "帐户名与安全标识间无任何映射完成。"



那么,就是这个问题基本上就是上文中

您必须更新全局注册表变量DB2_ADMINGROUP和DB2_USERSGROUP

如:

HKEY_LOCAL_MACHINE\SOFTWARE\IBM\DB2\GLOBAL_PROFILE
Mr_Bean 2011-05-15
  • 打赏
  • 举报
回复
按照这个步骤没有什么问题啊 你具体脚本是什么?

5,889

社区成员

发帖
与我相关
我的任务
社区描述
IBM DB2 是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本
社区管理员
  • DB2
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧