主机名变动后不能启动Oracle DBConsole服务的处理
2007-03-09 12:06
465 查看
问题描述:
在XP HOME上安装完ORACLE 10G后, oracledbconsoleorcl 服务起不来。ORACLE_SID=orcl。用
EMCLT START DBCONSOLE命令报错如下:D:/oracle/product/10.1.0/db_1/oc4j/j2ee/OC4J_DBConsole_ACER-LEO.mshome.net_orcl not found。
问题分析与解决:
主机名为:ACER-LEO.mshome.net,PING主机IP地址显示192.168.0.219。查看%ORACLE_HOME%目录,发现确实不存在D:/oracle/product/10.1.0/db_1/oc4j/j2ee/OC4J_DBConsole_ACER-LEO.mshome.net_orcl。只存在D:/oracle/product/10.1.0/Db_1/192.168.0.219_orcl和D:/oracle/product/10.1.0/Db_1/oc4j/j2ee/OC4J_DBConsole_192.168.0.219_orcl。查看其它机子上装的ORACLE,发现其它机子用的是主机名而不是IP地址,如:D:/oracle/product/10.1.0/Db_1/FJTA-PC203_orcl和D:/oracle/product/10.1.0/Db_1/oc4j/j2ee/OC4J_DBConsole_FJTA-PC203_orcl。可见问题在于ACER-LEO.mshome.net与192.168.0.219的对应上。
经查该服务启动时执行了D:/oracle/product/10.1.0/db_1/BIN/EmctlCommon.pm文件,其中用到getLocalHostName函数生成主机名。本问题取巧的解决办法是让该函数返回值为IP址“192.168.0.219”,如此oracledbconsoleorcl服务就会去寻找D:/oracle/product/10.1.0/db_1/oc4j/j2ee/OC4J_DBConsole_192.168.0.219_orcl而不是D:/oracle/product/10.1.0/db_1/oc4j/j2ee/OC4J_DBConsole_ACER-LEO.mshome.net_orcl。
getLocalHostName函数修改如下:
sub getLocalHostName
{
my $localHost;
if(defined($ENV{EMHOSTNAME}))
{
$localHost = $ENV{EMHOSTNAME};
}
else
{
my $localHostCmd;
$localHostCmd = "$JAVA_HOME/bin/java ".
"-jar $ORACLE_HOME/jlib/emConfigInstall.jar ".
"getlocalhost";
$localHost = `$localHostCmd`;
$localHost=~ s/^/s+|/s+$//;
}
#add here
$localHost='192.168.0.219';
return $localHost;
}
结论:
WINDOWS下ORACLE安装时使用主机名建立相应的目录,有时候甚至用的是IP地址。如果机器名修改了或者其它原因导致目录名与实际情况不一致,也就找不到服务文件所在目录,所以会出错。
在XP HOME上安装完ORACLE 10G后, oracledbconsoleorcl 服务起不来。ORACLE_SID=orcl。用
EMCLT START DBCONSOLE命令报错如下:D:/oracle/product/10.1.0/db_1/oc4j/j2ee/OC4J_DBConsole_ACER-LEO.mshome.net_orcl not found。
问题分析与解决:
主机名为:ACER-LEO.mshome.net,PING主机IP地址显示192.168.0.219。查看%ORACLE_HOME%目录,发现确实不存在D:/oracle/product/10.1.0/db_1/oc4j/j2ee/OC4J_DBConsole_ACER-LEO.mshome.net_orcl。只存在D:/oracle/product/10.1.0/Db_1/192.168.0.219_orcl和D:/oracle/product/10.1.0/Db_1/oc4j/j2ee/OC4J_DBConsole_192.168.0.219_orcl。查看其它机子上装的ORACLE,发现其它机子用的是主机名而不是IP地址,如:D:/oracle/product/10.1.0/Db_1/FJTA-PC203_orcl和D:/oracle/product/10.1.0/Db_1/oc4j/j2ee/OC4J_DBConsole_FJTA-PC203_orcl。可见问题在于ACER-LEO.mshome.net与192.168.0.219的对应上。
经查该服务启动时执行了D:/oracle/product/10.1.0/db_1/BIN/EmctlCommon.pm文件,其中用到getLocalHostName函数生成主机名。本问题取巧的解决办法是让该函数返回值为IP址“192.168.0.219”,如此oracledbconsoleorcl服务就会去寻找D:/oracle/product/10.1.0/db_1/oc4j/j2ee/OC4J_DBConsole_192.168.0.219_orcl而不是D:/oracle/product/10.1.0/db_1/oc4j/j2ee/OC4J_DBConsole_ACER-LEO.mshome.net_orcl。
getLocalHostName函数修改如下:
sub getLocalHostName
{
my $localHost;
if(defined($ENV{EMHOSTNAME}))
{
$localHost = $ENV{EMHOSTNAME};
}
else
{
my $localHostCmd;
$localHostCmd = "$JAVA_HOME/bin/java ".
"-jar $ORACLE_HOME/jlib/emConfigInstall.jar ".
"getlocalhost";
$localHost = `$localHostCmd`;
$localHost=~ s/^/s+|/s+$//;
}
#add here
$localHost='192.168.0.219';
return $localHost;
}
结论:
WINDOWS下ORACLE安装时使用主机名建立相应的目录,有时候甚至用的是IP地址。如果机器名修改了或者其它原因导致目录名与实际情况不一致,也就找不到服务文件所在目录,所以会出错。
相关文章推荐
- OracleOraHome92Agent 服务不能启动处理方法
- Oracle 11g 分布式事务 无法加载 DLL“oramts.dll” ;不能启动 distributed Transaction coordinator 服务;事务处理的分支长度 82 非法;
- Oracle 监听服务不能启动处理方法
- vCenter服务不能启动的处理过程
- ORA-01251错误oracle服务启动无法连接误删非法删除数据文件导致数据库不能打开ORA-01122 ORA-01251
- 关于更改ip后dbconsole服务不能启动(em不能使用)问题的根本解决方法
- oracle 10g 更换主机名或者IP后引起EM (dbconsole) 启动失败的解决方法
- 关于更改ip后dbconsole服务不能启动(em不能使用)问题的根本解决方法
- 网络断掉,不能启动DBConsole服务的解决。
- OracleDBConsole服务不能启动原因与解决
- oracle 10g的OracleDBConsoleorcl服务不能启动的解决
- 一个MySQL数据库服务不能正常启动的故障处理过程
- Oracle监听器服务不能启动的解决方法
- ORACLE监听器TNS服务不能启动的问题解决(转自:http://www.cnweblog.com/sunGIS/archive/2006/08/21/124117.html)
- OracleDBConsole服务不能启动原因与解决
- 批处理文件来启动或者停止oracle服务 10g,9i
- 不能正常启动OracleOraHome92ManagementServer服务解决啦
- Oracle 监听服务强制被关闭不能启动 TNS识别问题解决
- 解决Oracle监听器服务不能启动的问题
- 批处理 启动和关闭 Oracle 11g 服务