10g r2 rac for Aix5.3常见安装升级问题解决方法 |
1 裸设备问题 当我们把数据库升级到10.2.0.3后,再使用DBCA创建数据库时,如果spfile使用裸设备,则SPFILE认不到裸设备,这个是ORACLE10.2.0.3的Bug,我们只要替换一个文件即可,这个文件为rawutl,位置在$ORACLE_BASE/product/10.2.0/db_1/bin/rawutl,使用10.2.0.1的这个文件替换即可。由于已经升级了,这个文件可以在$ORA_CRS_HOME/install/prepatch10203/crs/bin找到,只要把这个文件拷贝到$ORACLE_HOME/bin/,覆盖10.2.0.3产生的这个rawutl文件,重新运行dbca即可。
2 Vip应用启动问题 当CRS升级到10.2.0.3后,有时VIP无法启动,见下图,这是10.2.0.3下的一个bug: $ crs_stat -t Name Type Target State Host ------------------------------------------------------------ ora.zzzx1.gsd application ONLINE ONLINE zzzx1 ora.zzzx1.ons application ONLINE ONLINE zzzx1 ora.zzzx1.vip application ONLINE OFFLINE ora.zzzx2.gsd application ONLINE ONLINE zzzx2 ora.zzzx2.ons application ONLINE ONLINE zzzx2 ora.zzzx2.vip application ONLINE OFFLINE 这时,我们需要手工修改racgvip文件,该文件在/oracle/app/oracle/product/10.2.0/crs/bin位置。把racgvip文件中的FAIL_WHEN_DEFAULTGW_NO_FOUND=1改为:FAIL_WHEN_DEFAULTGW_NO_FOUND=0,并重新启动vip即可。
3 客户端连接时通时断问题 当客户端连接到RAC时,有时能连通,有时断开,并提示错误:ORA-12545:因目标主机或对象不存在,连接失败,如下面: SQL> conn system/oracle@ynsrk 已连接。 SQL> conn system/oracle@ynsrk 已连接。 SQL> conn system/oracle@ynsrk ERROR: ORA-12545: 因目标主机或对象不存在,连接失败 警告: 您不再连接到 ORACLE。 SQL> conn system/oracle@ynsrk 已连接。 SQL> conn system/oracle@ynsrk SQL> conn system/oracle@ynsrk ERROR: ORA-12545: 因目标主机或对象不存在,连接失败 警告: 您不再连接到 ORACLE。 SQL> conn system/oracle@ynsrk ERROR: ORA-12545: 因目标主机或对象不存在,连接失败 警告: 您不再连接到 ORACLE。 对此,只需要把服务器上listener.ora和tnsnames.ora文件中的host修改为ip,并在每个节点的tnsnames.ora中增加对公网IP的监听,并修改初始参数:local_listener指向这个公网IP的监听: 比如RAC的/etc/hosts如下: #public network 192.168.5.5 zzzx1 192.168.5.7 zzzx2
#virtual IP 192.168.5.6 vip1 192.168.5.8 vip2
#private IP 10.0.1.1 priv1 10.0.1.2 priv2
SQL> show parameter list ------------------------------------ ----------- ------------------------------ 可以看到这两个参数,remote_listener为 LISTENERS_TEST
在zzzx1,zzzx2上分别编辑服务器端tnsname.ora (注意,是服务器端的) LISTENERS_YNSRK = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = vip1)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = vip2)(PORT = 1521)) ) 改为: LISTENERS_YNSRK = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.5.6)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.5.8)(PORT = 1521)) ) 也就是将host主机名改为ip地址 LOCAL_YNSRK = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.5.5)(PORT = 1521)) ) 在zzzx2上增加以下部分 LOCAL_YNSRK = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.5.7)(PORT = 1521)) ) 保存退出 查看两个节点的 listener.ora文件,最好将里面的主机名都改为ip地址 用system用户登录 执行alter system set local_listener='LOCAL_YNSRK' scope=both;
重启所有实例 所有监听. 再从客户端连接,问题已经解决,不再出现连接错误,
4 IOT/Abort trap(coredump)错误 当在一个节点上执行crs_stat –t,报以下错误,另一个节点上执行正常: $ crs_stat -t IOT/Abort trap(coredump)
通过查看CRS日志文件$ORA_CRS_HOME/log/zzzx1/crsd/crsd.log,发现是本地机器$ORA_CRS_HOME/crs/auth/目录不存在,而正常机器该目录存在,只需要增加在$ORA_CRS_HOME/crs/下创建auth目录即可。 5、启动CLUSTER服务错误 有时在启动cluster服务过程中可能会报以下两个错误: PRKP-1001:Error starting instance ynsrk1 on node Failed to start services “[ynsrk]” of cluster database “. 具体可查看metalink Note:402437.1 我们需要做的是在sqlnet.ora中加入如下参数 sqlnet.inbound_connect_timeout = 600 |