参考: Correct Method of Changing the IP Address in 11i & R12 (文档 ID 751328.1)
EBS中一般不会存储IP地址,而是使用Host name, 但是在数据库表 FND_NODES 中的SERVER_ADDRESS 字段还确实存储的是 IP 地址。
解决方案: 应用层(Middle Tier):
1. 修改在应用服务器上的IP地址,注意检查所有需要更改的地方,比如linux下的网卡配置,/etc/hosts等.
2. 确认修改在DNS lookup表中为hostname修改了对应的内容,比如在DNS SERVER上指定新的IP地址,并使用nslookup命令检查。
$ nslookup 域名 或 $ nslookup IP
3. 关闭应用层服务。
4. 运行如下的命令从 Oracle Applications tables中删除旧的IP地址。
perl $AD_TOP/bin/adgentns.pl appspass= contextfile=$INST_TOP/appl/admin/_.xml -removeserve
备注: 使用$APPL_TOP/admin目录下正确的context file文件代替其中的_hostname.xml ,在R12中,context file
是在 $INST_TOP/appl/admin/_.xml。
adgentns.pl -- The API generates seeds the entry in to the data model and generates the tnsnames.ora .
removeserver -- Remove the current server (node) from the Net Service data model .
5. 以apps用户连接到数据库并运行:
begin
FND_NET_SERVICES.remove_server('', '');
end;
/
commit;
/
备注: 其中的SID, hostname以环境中的值代替(这里hostname是应用服务器),两个值必须都是大写。