前几天刚刚对一台机器的dbconsole做了恢复,这两天又出了新的问题,不知道为什么服务又没办法启动了。处理过程大致如下:
首先尝试启动dbconsole失败,查看日志后发现emdb.nohup文件中有报错信息:
Error starting HTTP-Server: Unable to intialize SSLServerSocketFactory 'com.evermind.ssl.JSSESSLServerSocketFactor
y': Export restriction: SunJSSE only
emagent.trc文件也有错误信息:
snmehl_connect: connect failed to (HXTEST01:5500): A remote host refused an attempted connect operation. (error = 79)
ERROR pingManager: nmepm_pingReposURL: Cannot connect to retStatus=-32
感觉上是web服务没有正常启动而导致其他服务也无法正常连接了,由于网上没有太有价值的信息,直接请教了oracle。根据oracle的反馈这个问题与一个内部bug有关。
停掉dbconsole,确认emagent进程正常关闭(之前确实发现挂死的现象),使用命令emctl unsecure dbconsole后重新启动dbconsole,发现使用http服务是可以显示出登录页面的,由此,oracle确认此问题
与/jdk/jre/lib/security/java.security文件的内容有关系,因而触发了这个问题,与Bug 7582956有关。建议将此文件中的
security.provider.1=com.ibm.jsse.IBMJSSEProvider
security.provider.2=com.ibm.crypto.provider.IBMJCE
security.provider.3=com.ibm.security.jgss.IBMJGSSProvider
security.provider.4=com.ibm.security.cert.IBMCertPath
内容改为
security.provider.1=sun.security.provider.Sun
security.provider.2=com.sun.net.ssl.internal.ssl.Provider
security.provider.3=com.ibm.jsse.IBMJSSEProvider
security.provider.4=com.sun.crypto.provider.SunJCE
security.provider.5=com.ibm.crypto.provider.IBMJCE
security.provider.6=com.ibm.security.jgss.IBMJGSSProvider
security.provider.7=com.ibm.security.cert.IBMCertPath
前面的blog里提到,ORACLE_HOME里面的jdk实际是映射主机本身的,我担心修改会影响其它的服务,
因此干脆尝试修复原来的jdk,metalink上的文档463072.1有相关内容,不过我图省事,取消掉link,直接把另外一台机器上正常的jdk和jre拷了过来,替换了最早的jdk和jre目录,替换之后,停掉dbconsole,执行emctl secure dbconsole(配置后只能用https访问)后启动dbconsole正常。由此看来这个问题还是由于jdk不合适造成的。
解决这个问题后又发现了新的问题,用sysman用户登录页面后发现页面上显示了一个错误信息:
java.lang.Exception: IOException in sending Request :: A remote host refused an attempted connect operation.
感觉应该是代理出了什么问题。
下面的很多数据无法正确调用出来,metalink上有文档Note 782004.1
java.lang.Exception: IOException in sending Request :: Connection refused: connect on dbconsole home page.
情况与之类似。
用sysman用户登录后执行命令select target_name from mgmt_targets where target_type='oracle_emd';
结果显示:
TARGET_NAME
--------------------------------------------------------------------------------
HXTEST01:1830
HXTEST01:1831
HXTEST01:3938
出现多个端口不同的重复目标,这应该与之前端口改来改去有关系。根据之前的配置信息,以及查看$ORACLE_HOME/install/portlist.ini文件内容:
Enterprise Manager Console HTTP Port (CISGTEST) = 5500
Enterprise Manager Agent Port (CISGTEST) = 3938
代理的正确端口应该是3938,使用命令
exec mgmt_admin.cleanup_agent('
:') ;
commit;
将1830和1831对应端口的agent信息删掉,在执行
emctl reload agent
问题解决。
觉得oracle的em虽然功能强大,但问题还是挺多的,配置麻烦不说还时不时出些莫名其妙的问题,而且问题发生后往往又不知道从何下手,毕竟大多数dba并不一定能明白jdk是怎么回事。
阅读(3755) | 评论(0) | 转发(0) |