11gR2修改主机名导致CRS-0184以及CRS-4000的错误
作者: Asher | 分类: Oracle | Tag: grid, oracle 11g | 评论: 0 字号: T| T
我们通常都说,在部署Oracle数据库服务器前,要规划好主机名、IP地址等基础信息,一经确定,尤其是部署好Oracle数据库之后,就不要轻易修改主机名或者是IP地址等。而且我们也都知道这个理儿,但可是,可但是,在实际工作当中,你难免不会遇到这种情况。
除了自己前不久曾遭遇到的一则,在Windows Server 2008 R2 X64上跑的一套10.2.0.5.0配置有ASM单实例物理备库因修改主机名的故障。而今又遇到一则类似的故障场景:
一 操作系统版本:CentOS release 5.6 (Final) X86_64平台
二 Oracle版本:Oracle 11gR2 11.2.0.1.0 64位配置ASM的单实例数据库
三 故障现象:修改主机名并重启主机后,导致数据库不可用,准确的说是grid软件的CRS进程都不能启动。如下:
1 检查服务状态:
1 2 3 4 | |
2 发现ohasd守护进程都不存在:
1 2 3 4 | |
3 检查Oracle restart是否配置以及尝试手工启动Oracle Restart均报错:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | |
4 在/etc/oracle/scls_scr路径下,看到只有之前的旧主机名下的Oracle Restart的配置信息,并没有关于新主机名的Oracle Restart的配置信息
1 2 3 4 5 | |
四 故障原因:人为修改了数据库服务器主机名,并重启主机,导致Oracle Restart启动报错,进而ASM实例,监听、磁盘组以及数据库实例均无法正常启动。
五 解决步骤:
1 root用户强制删除CRS相关的配置信息:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | |
2 root用户重新配置Oracle Restart:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
重新配置Oracle Restart之后,在/etc/oracle/scls_scr路径下,看到之前的旧主机名下的Oracle Restart的配置信息自动消除,而出现新的关于新主机名的Oracle Restart的配置信息。
1 2 3 4 | |
且此时,grid用户可顺利通过执行 crs_stat -t查看服务状态:
1 2 3 4 5 6 | |
3 通过srvctl命令手工添加Listener、ASM、oracle instance到Oracle Restart管理
grid用户添加Listener、ASM服务到Oracle Restart
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
oracle用户添加数据库到Oracle Restart
grid 用户添加出错:
1 2 3 4 | |
需要以oracle用户添加:
1 2 | |
最后,对于配置了Oracle Restart环境下的数据库,分别以grid用户通过srvctl命令来启动listener、ASM实例,以oracle用户通过srvctl命令来启动数据库。
启示:对于已经配置好Oracle数据库的服务器,真的不要轻易修改主机名或者IP地址,尤其是RAC环境或者是11gR2开始的配置有Oracle Restart的standalone Server环境。当然,在安装和配置数据库之前,务必要做好充足的前期规划。当然,如果非要修改的话,也要配合DBA一起来重新配置。
附:关于文章提及为什么要在/etc/oracle/scls_scr路径下,查看是否存在关于主机名相关的Oracle Restart配置信息,将在下一篇中分享O(∩_∩)O~
如无特别说明,本站文章皆为原创,若要转载,务必请注明以下原文信息:
日志标题:《11gR2修改主机名导致CRS-0184以及CRS-4000的错误》
日志链接:http://www.oracleonlinux.cn/2013/11/chang_hostname_crs_0184_4000/
博客名称:OracleOnLinux