oracle 11g Enterprise Manager配置失败
Enterprise Manager以下简称em,Database Configuration Assistant简称DBCA。
病症
监听程序未启动或数据库服务未注册到该监听程序。启动该监听程序并注册数据库服务, 然后重新运行 EM Configuration Assistant。
有关详细资料, 请参阅 g:\app\LIU\cfgtoollogs\dbca\BU\emConfig.log 中的日志文件。
易患机群
- X64位操作系统,其中win7更为常见;
- Oracle11g,但Oracle 10g偶尔也会发生。
临床表现
- 开始菜单中Oracle目录下无DataBase Control-的em链接。
- 即使在浏览器上输入https://computerName:5500/em 也无法进入。
- 偶尔伴有The Network Adapter could not establish the connection的错误。
病因分析
- 这是部分Oracle11g或10g存在一个bug,需要8350262补丁,更新SSL证书。因为证书过期或者损坏导致在安装过程中杀毒软件会默认将其拦截,引起OracleDBConsole服务无法安装,em失败。
- TNSLSNR存在问题,致使无法正常运行。
疾病治疗
- 对于防火墙是否会拦截em的安装,我控制变量做了多次测试,发现原因不在防火墙,在于杀毒软件。我自己使用的是金山毒霸,是默认开机自起的,测试发现,只要开启毒霸,em一定安装失败。但在毒霸的拦截日志里却是看你不到的,其他杀毒软件应该同理。不过杀毒软件拦截安装也是合理的,问题不在他们,在于Oracle。
我们安装的时候大多数不是直接从官网下载,而是拷贝版本,因为时间的原因造成的SSL证书过期或者其他原因导致证书损坏而导致这种情况的发生也是在所难免。
那如何解决呢?如果你是商业版本,有许可证,那么你就可以使用metalink账号下载最新的补丁程序,如8350262等,进行更新证书,重置em安装。那如果你只是用来学习或者开发没有许可证,那就关掉杀毒软件以及所涉及的服务,重新使用DBCA创建数据库。 - 有时候上面的方法就可以解决你的问题,但是有些情况确实不行的。如你的TNSListener确实存在问题,启动过程中存在问题或者看似已经启动实则存在问题,对于这种情况,打开{oracle_home}\NETWORK\ADMIN中的listener.ora,检查是否正确,我给出标准的listener.ora,你可以对照检查下:
SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = CLRExtProc) (ORACLE_HOME = g:\app\LIU\product\11.2.0\dbhome_1) (PROGRAM = extproc) (ENVS = "EXTPROC_DLLS=ONLY:g:\app\LIU\product\11.2.0\dbhome_1\bin\oraclr11.dll") ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST =@computerName)(PORT = @port)) ) ) 其中@computerName是你的计算机名,@port是你的监听端口一般为1521,多个数据库时就是自己定义的端口值。另外我的数据库在g:\盘,根据你的安装位置自行修改。
完成后lsnrctl stop,lsnrctl start重启监听,再进行重建数据库,注意杀毒软件。 - 不得不说em确实很脆弱,很多原因都会造成em安装失败,大多数网上提供的重建em资料库等都是在SSL证书正常的前提的情况下进行的,所以很多人采用重建em的方式并不奏效。
后话
在重建数据库时注意清理删掉的数据库的残留,如果服务还存在就使用sc命令删掉。
对于em的安装问题,这或许只是针对一种情况的解决方式,其他情况希望大家补充。
证书错误时ie可能无法访问,建议使用chrome或者firefox。
创建数据库时数据库名最好不要使用符号,建议只使用字母或数字的组合。