1818IP-服务器技术教程,云服务器评测推荐,服务器系统排错处理,环境搭建,攻击防护等

当前位置:首页 - 数据库 - 正文

君子好学,自强不息!

详解Oracle RAC入门和提高

2022-11-27 | 数据库 | admin | 676°c
A+ A-

本文将详细讲述Oracle RAC入门和提高,希望对广大Oracle数据库管理人员以及致力于学习Oracle数据库的管理人有所帮助。

Oracle RAC 产品概述

Oracle Real Application Server,真正应用集群,简称Oracle RAC ,是Oracle的并行集群,位于不同服务器系统的Oracle实例同时访问同一个Oracle数据库,节点之间通过私有网络进行通信,所有的控制文件、联机日志和数据文件存放在共享的设备上,能够被集群中的所有节点同时读写。其系统架构如下图:

系统架构

RAC提供的好处包括:

(1)多节点负载均衡;

(2)提供高可用:故障容错和无缝切换功能,将硬件和软件错误造成的影响最小化,下表是RAC与传统的双机热备方式切换时间的对比:

多节点均衡

(3)通过并行执行技术提高事务响应时间—-通常用于数据分析系统;

(4)通过横向扩展提高每秒交易数和连接数 ;—-通常对于联机事务系统;

(5)节约硬件成本,可以用多个廉价PC服务器代替昂贵的小型机或大型机,同时节约相应维护成本;

(6)可扩展性好,可以方便添加删除节点,扩展硬件资源;

RAC的缺点有:

相对单机,管理更复杂,要求更高;

在系统规划设计较差时性能甚至不如单节点;

可能会增加软件成本(如果使用高配置的pc服务器,Oracle一般按照CPU个数收费)

在Oracle9i之前,RAC的名称是OPS (Oracle parallel Server)。RAC 与 OPS 之间的一个较大区别是,RAC采用了Cache Fusion(高速缓存合并)技术。在 OPS 中,节点间的数据请求需要先将数据写入磁盘,然后发出请求的节点才可以读取该数据。使用Cache fusion时,RAC的各个节点的数据缓冲区通过高速、低延迟的内部网络进行数据块的传输。

Oracle RAC在中国各行各业使用都比较广泛,包括通信移动、金融服务、社会保障和电子商务等,据Oracle统计,2007财年中国有500多家企业使用Oracle实时应用集群,考虑到未登记信息,实际数字更高于这一数字。典型的用户包括:中彩在线/OLTP/4节点/10gR2/AIX5.3、淘宝/DataWarehouse/4节点/10gR2/RHEL4、北京社保/6节点 /HP_Alpha/ MA8000、建行证券系统/2节点/IBM_P595/EMC_DMX3、上海电力/2节点/Alpha_GS160、广东移动、山东网通等。

#p#

Oracle RAC/Clusterware的结构和组件

一、RAC主要组件, 软硬件两部分

(1) 服务器 >= 2

(2) 操作系统,推荐使用Oracle认证的系统;版本不要太老,也不要太新

(3) CPU/内存 根据业务需要,内存至少1G

(4) 本地磁盘空间,>=30G

(5) 网卡 >=2 ,推荐4个以上千兆网卡

(6) 私有以太网络,推荐千兆交换机以上

(7) HBA卡 ,如果是SAN,推荐2个冗余HBA

(8) 共享存储设备,推荐SAN设备

(9) 存储管理, ASM/Cluster LV/裸分区/CFS,不推荐用OCFS,卷管理软件、多路径软件等

(10) 第三方集群软件: 可选

(11) Oracle Clusterware 软件

(12) Oracle RDBMS 软件

二、Clusterware主要进程

(1)crsd: 负责管理集群的高可用操作。管理的crs资源包括数据库、实例、监听、虚拟IP,ons,gds或者其他,操作包括启动、关闭、监控及故障切换。改进程由root用户管理和启动。crsd如果有故障会导致系统重启。

(2)cssd,管理各节点的关系,用于节点间通信,节点在加入或离开集群时通知集群。该进程由oracle用户运行管理。发生故障时cssd也会自动重启系统。

(3)oprocd – 集群进程管理 —Process monitor for the cluster. 用于保护共享数据IO fencing。

仅在没有使用vendor的集群软件状态下运行

(4)evmd :事件检测进程,由oracle用户运行管理

三、Clusterware使用的共享设备

(1) Oracle Cluster Registry(OCR):记录集群的配置信息;

(2) Voting disk : 即投票盘,保存节点的成员信息,当配置多个投票盘的时候个数必须为奇数,每个节点必须同时能够连接半数以上的投票盘才能够存活;

四、安装路径的选择

安装路径的选择

注:

(1)在Oracle RAC中,软件不建议安装在共享文件系统上;包括CRS_HOME和ORACLE_HOME,尤其是CRS软件,推荐安装在本地文件系统中,这样在进行软件升级,以及安装patch和patchset的时候可以使用滚动升级(rolling upgrade)的方式,减少计划当机时间。另外如果软件安装在共享文件系统也会增加单一故障点。

(2)如果使用ASM存储,需要为asm单独安装ORACLE软件,独立的ORACLE_HOME,易于管理和维护,比如当遇到asm的bug需要安装补丁时,就不会影响RDBMS文件和软件。

(3)在Oracle 11gR2中将新增存储选项:acfs (Oracle ASM Cluster File System)

第三方集群

在Oracle9i中,除了Windows和Linux,在安装RAC之前必须先安装vendor clusterware,即第三方集群,包括IBM的HACMP, HP的ServiceGuard for oracle RAC, Sun cluster,Veritas SFRAC等,这一类的集群软件为Oracle RAC提供了下面的功能:

(1)共享的逻辑卷管理或者集群文件系统用于存放数据文件;

(2)提供了统一的集群的成员组管理;

(3)使用更健壮的SCSI-3 PGR机制来防止心跳故障(即裂脑split brain)导致的数据损坏,这种功能一般叫做IO fencing;

(4)提供效率更高的、更低延迟的心跳网络用于cache fusion,可以相对减少TCP/IP的开销,包括:

HP SGeRAC: HMP (Hyper Messaging Protocol),

Sun Cluster: RSM (Remote Shared Memory),

Veritas SFRAC: LLT (low-latency transport),

Compac True Cluster: RDG (reliable data grams);

通常如果要使用第三方集群的心跳协议,需要将$ORACLE_HOME/lib/libskgxpX.so文件替换为第三方集群

软件提供的libskgxpX.so文件(其中X代表Oracle版本号9/10/11),skgxp 是System Kernel Generic Interface Inter-Process Communications的缩写,是oracle开放的一个应用接口,用于传输GCS和GES 的数据。Oracle自带的libskgxp文件定义的传输协议是UDP/IP。

5)提供扩展的容灾方案,例如campus cluster/metro cluster/extended RAC;如下图, 以Veritas的SFRAC为例,它提供两种Oracle Extended RAC方案,方案一是使用Veritas Volume Manager对底层阵列进行镜像,提供同城容灾级别的实时数据保护;方案二使用GCO/VVR对数据库进行数据复制,可以实现距离更远、超过10km广域网的容灾;

阵列

(6)Veritas SFRAC 还提供了以下特性:

补充的Oracle ODM,可以使Oracle同时拥有文件系统的易管理和裸设备的性能;

标准的多路径软件(DMP),不需要再安装其他软件就可支持绝大多数磁盘阵列,在异构SAN环境中有更好的兼容性;

从Oracle10g起,Oracle提供了自己的集群软件,叫Oracle clusterware简称CRS,这个软件是安装oracle rac的前提,而上述第三方集群则成了安装的可选项。同时提供了另外一个新特性叫做ASM,可以用于RAC下的共享磁盘设备的管理,还实现了数据文件的条带化和镜像,以提高性能和安全性 (S.A.M.E: stripe and mirror everything ) ,不再依赖第三方存储软件来搭建RAC系统。

那么Oracle是如何识别第三方集群的呢?

在安装完第三方集群后,会在特定目录下生成Oracle RAC接口文件,这个文件的作用就是上面的第二点功能:集群成员管理信息(cluster membership 简称CM)。在HPUX下该文件是/opt/nmapi/nmapi2/lib/pa20_64,在AIX/Solaris/Linux下这个文件是 /opt/ORCLcluster/lib/libskgxn2.so 。

当安装CRS的的检查阶段,就会检测是否有该文件,如果有的话,在安装CRS过程中生成一个软连接文件,文件名是ligskgxn2.so,指向上面的libskgxn2.so或pa20_64文件,这个软连接的位置在CRS_HOME/lib/目录;如果没有第三方集群,那么CRS安装过程中生成自己的libskgxn2.so文件。换句话说,在有第三方集群存在的情况下,CRS的集群成员信息是来自于第三方集群,两套集群的成员信息保持一致和同步;没有第三方集群情况时,CRS自己管理成员信息。

通过查询$CRS_HOME/log/hostname/cssd/ocssd.log可以看到css识别到的第三方集群,下面的例子分别是HACMP、SFRAC、SunCluster、ServiceGuide :

[CSSD]2008-05-2715:09:43.456[1029]>TRACE:clssnm_skgxninit:initializedskgxnversion(2/0/IBMAIXskgxn) 
[CSSD]2008-12-3021:44:56.172[1029]>TRACE:clssnm_skgxninit:initializedskgxnversion(2/0/VeritasClusterServerMM 
[CSSD]2007-08-1002:19:39.572[3]>TRACE:clssnm_skgxninit:initializedskgxnversion(2/2/OracleSolarisUDLM) 
[CSSD]2006-09-2918:57:53.323[5]>TRACE:clssnm_skgxninit:initializedskgxnversion(2/0/Hewlett-PackardSKGXN2.0)

在9i/8i中没有css/crs,该信息可以在后台进程lmon的trace文件中得到(在bdump中);

在安装Oracle 9i RAC/8i OPS的过程中,Oracle识别集群方法类似。

在多个平台上,如果两个节点没有正确链接libskgxn2文件,可能会导致第二个实例无法mount或出现ORA-600错误。

Oracle支持的RAC环境

因为Oracle RAC本身比较复杂,在安装和管理中可能会遇到各种问题,涉及到OS、RDBMS、Cluster软件和网络、主机、存储等硬件,为了避免不必要的问题发生,在安装之前,我们需要确认安装环境是否满足要求,包括软件和硬件两方面,尤其是Vendor clusterware和OS 的版本的兼容性需要注意,可以从metalink中得到最新的Oracle官方认证信息:登陆Metalink.oracle.com 选择 Certify,选择by product,选择real application server,选择对应平台就可以得到。下面列出一些关于硬件和平台支持的常见问题:

官方不支持的:Vmware, Sun LDOM ,Solaris Local Container/Zones

官方支持的: IBM LPAR, IBM VIOS(Virtual IO Server), Solaris Global Containers

RHEL GFS , ISCSI,

私有网络(心跳线)的支持: 不支持使用交叉线,支持 Infiniband RDS (10gR2之后)

异构环境:支持不同的硬件、但相同的软件(OS/Oracle)组成的集群,不支持32位与64位系统间的集群

目前支持的NFS的server包括:

EMC Celerra

Fujitsu Filer NR1000 Series

IBM N Series

NetApp FAS, F, G Series

Pillar Data Systems Axiom 500

Sun StorageTek 5000 Series

Oracle Clusterware的心跳

Oracle clusterware 使用两种心跳设备来验证成员的状态,保证集群的完整性;一是对voting disk的心跳,ocssd进程每秒向votedisk写入一条心跳信息;二是节点间的私有以太网的心跳,两种心跳机制都有一个对应的超时时间,分别叫做 misscount和disktimeout:

misscount 用于定义节点间心跳通信的超时,单位为秒;

disktimeout ,默认200秒,定义css进程与vote disk连接的超时时间;

reboottime ,发生裂脑并且一个节点被踢出后,这个节点将在reboottime的时间内重启;默认是3秒;

其中misscount默认值见下表 misscount

用下面的命令查看上述参数的实际值:

1.#crsctlgetcssmisscount 
2.#grepmisscount$CRS_HOME/log/hostname/cssd/ocssd.log 
[CSSD]2008-11-2722:29:42.397[1]>TRACE:clssnmInitNMInfo:misscountsetto600

在下面两种情况发生时,css会踢出节点来保证数据的完整,:

(1) Private Network IO time > misscount,会发生split brain即裂脑现象,产生多个“子集群”(subcluster) ,这些子集群进行投票来选择哪个存活,踢出节点的原则按照下面的原则:

节点数目不一致的,节点数多的subcluster存活;节点数相同的,node ID小的节点存活。

(2) Vote Disk IO Time > disktimeout ,踢出节点原则如下:失去半数以上vote disk连接的节点将在reboottime的时间内重启;例如有5个vote disk,当由于网络或者存储原因某个节点与其中>=3个vote disk连接超时时,该节点就会重启。当一个或者两个vote disk损坏时则不会影响集群的运行。

可以手工修改这三个参数的值,单位都是秒:(谨慎使用)

$CRS_HOME/bin/crsctlsetcssmisscount 
$CRS_HOME/bin/crsctlsetcssreboottime[-force] 
$CRS_HOME/bin/crsctlsetcssdisktimeout[-force] 
或者重新设置成默认值:crsctlunsetcssmisscount

Clusterware的私有网络

在Oracle 10g/11g中,Oracle的私有网络(private network)包括clusterware的私有网络和数据库实例的私有网络:

clusterware的私有网络主要包括css数据的传送,即用一种特殊的ping命令来检测其他机器的状态;

数据库实例的私有网络,包括RDMS和ASM的,用于cache fusion(GCS/GES)数据的传输。

当我们只使用一个私有网卡的时,同时传送上面两类的数据。如果我们在安装时指定了两个私有网卡,首先使用如下面$CRS_HOME/bin/oifcfg getif命令来得到所有网络接口列表,这些信息保存在ocr中:

#oifcfggetif 
en010.200.56.0globalpublic
en3192.168.3.0globalcluster_interconnect 
en5192.168.5.0globalcluster_interconnect

情况会有所不同,clusterware的私有网络,目前(10g/11g)只能使用一个网络接口,对应于/etc/hosts中定义的private hostname的那个网卡,可以通过查看ocssd的log来确定:

当/etc/hosts 中定义private hostname为192.168.3.233时看到 :

[CSSD]2009-01-1617:34:12.406[1029]>TRACE:clssgmPeerListener:Listeningon(ADDRESS=(PROTOCOL=tcp)(DEV=12)(HOST=192.168.3.233)(PORT=45527))

这个是与其他节点css进行通信的信息:

[CSSD]2009-01-1617:36:27.463[1029]>TRACE:clssgmConnectToNode:
node2clsc(ADDRESS=(PROTOCOL=tcp)(DEV=12)(HOST=192.168.3.234)(PORT=37732))-size64ver1

当/etc/hosts 中定义private hostname为192.168.5.233时,css使用了另外一个网络:

[CSSD]2009-01-1618:59:56.411[1029]>TRACE:clssgmPeerListener: 
Listeningon(ADDRESS=(PROTOCOL=tcp)(DEV=12)(HOST=192.168.5.233)(PORT=50415))

Oracle实例的私有网络

Oracle实例的心跳网络使用方式的优先级从高到低如下:

(1) 如果使用了第三方集群的IPC,替换了对应$ORACLE_HOME/lib/libskgxnX.so文件,那么数据库实例的cache fusion会使用对应的网络协议,而忽略ocr中和数据库初始化参数中cluster_interconnects的配置,下面的例子当中就使用了 VCSIPC,可以从对应的alert log中验证:

db_name=r10g 
open_cursors=300 
pga_aggregate_target=1237319680 
FriMar1314:00:352009 
OracleinstancerunningwithODM:Veritas6.0ODMLibrary,Version1.1 
clusterinterconnectIPCversion: 
VERITASIPC5.1.0.015:16:24Feb122009 
IPCVendor86proto76 
Version1.0 
PMONstartedwithpid=2,OSid=4399196 
DIAGstartedwithpid=3,OSid=3936288

(2) 如果没有使用第三方IPC,则优先使用数据库初始化参数的cluster_interconnects配置,这个参数的格式为if1:if2:…:ifn,可以不同于crs的私有网络,需要注意的是,该参数不支持多个网卡的故障切换;

(3) 没有上面两个配置,数据库会使用oifcfg列出的心跳的网络,在对应的告警日志中可以得到:

Interfacetype1en6192.168.61.0configuredfromOCRforuseasaclusterinterconnect 
Interfacetype1en010.182.0.0configuredfromOCRforuseasapublicinterface 
.... 
Clustercommunicationisconfiguredtousethefollowinginterface(s)forthisinstance 
192.168.61.0

(4) 没有1和2的配置,并且oifcfg也没有配置cluster_interconnect,则数据库会使用共有网络进行心跳信息的传输,这种配置其实是配置失败的情况,数据库虽然能够启动,但急需DBA修正,在告警日志中可以看到:

WARNING:Noclusterinterconnecthasbeenspecified.Dependingon 
thecommunicationdriverconfiguredOracleclustertraffic 
maybedirectedtothepublicinterfaceofthismachine. 
OraclerecommendsthatRACclustereddatabasesbeconfigured 
withaprivateinterconnectforenhancedsecurityand 
performance.

对于一个已经有的系统,可以用下面几种方法确认数据库实例的心跳配置,包括网卡名称,IP地址,使用的网络协议:

(1) 最简单的方法:可以在数据库的后台报警日志中得到。具体参见上面列出的告警日志;

(2) 使用oradebug ;

SQL>oradebugsetmypid 
SQL>oradebugipc 
SQL>oradebugtracefile_name

找到对应trace文件的这一行:socket no 10 IP 10.0.0.1 UDP 49197

(3) 从数据字典中得到(V$CLUSTER_INTERCONNECTS 和 V$CONFIGURED_INTERCONNECTS),或查询x$ksxpia

SQL>SELECT*FROMV$CLUSTER_INTERCONNECTS;----Oracle11g开始支持此试图 
NAMEIP_ADDRESSIS_SOURCE 
-------------------------------------------------------------------------------- 
en3192.168.2.31NOOracleClusterRepository 
en5192.168.3.231NOOracleClusterRepository 
SQL>SELECT*FROMV$CONFIGURED_INTERCONNECTS; 
NAMEIP_ADDRESSIS_SOURCE 
-------------------------------------------------------------------------------- 
en3192.168.2.31NOOracleClusterRepository 
en5192.168.3.231NOOracleClusterRepository 
en010.200.59.231YESOracleClusterRepository 
SQL>select*fromx$ksxpia; 
ADDRINDXINST_IDPUB_KSXPIAPICKED_KSXPIANAME_KSXPIAIP_KSXPIA 
-------------------------------------------------------------------------------------------- 
00000001104AAF2801NOCRen6192.168.61.121 
00000001104AAF2811YOCRen010.182.6.211

为了避免心跳网络成为系统的单一故障点,简单地我们可以使用操作系统绑定的网卡来作为Oracle的心跳网络,以AIX为例,我们可以使用etherchannel技术,假设系统中有ent0/1/2/3四块网卡,我们绑定2和3作为心跳:

#mkdev-cadapter-spseudo-tibm_ech-aadapter_names='ent2,ent3'##将生成网卡设备ent4 
#/usr/lib/methods/defif 
#lsdev-Ccadapter|grepent 
#lsattr-Elent4 
#ifconfigen4inet192.168.3.231netmask255.255.255.0up 
在Solaris上可以使用dladm来创建链路聚合: 
#dladmcreate-aggr-dbge2-dbge31 
#ifconfigaggr1plumb192.168.3.231netmask255.255.255.0up 
#dladmshow-aggr 
#ifconfig-a

同样在HPUX和Linux对应的技术分别叫APA和bonding。

UDP私有网络的调优

当使用UDP作为数据库实例间cashe fusion的通信协议时,在操作系统上需要调整相关参数,以提高UDP传输效率,并在较大数据时避免出现超出OS限制的错误:

(1) UDP数据包发送缓冲区:大小通常设置要大于(db_block_size * db_multiblock_read_count )+4k,

(2) UDP数据包接收缓冲区:大小通常设置10倍发送缓冲区;

(3) UDP缓冲区最大值:设置尽量大(通常大于2M)并一定要大于前两个值;

各个平台对应查看和修改命令如下:

Solaris 查看

ndd/dev/udpudp_xmit_hiwatudp_recv_hiwatudp_max_buf; 
修改ndd-set/dev/udpudp_xmit_hiwat262144 
ndd-set/dev/udpudp_recv_hiwat262144 
ndd-set/dev/udpudp_max_buf2621440

AIX 查看

no-a|egrep“udp_|tcp_|sb_max” 
修改no-p-oudp_sendspace=262144
no-p-oudp_recvspace=1310720
no-p-otcp_sendspace=262144
no-p-otcp_recvspace=262144
no-p-osb_max=2621440

Linux 查看

文件/etc/sysctl.conf 
修改sysctl-wnet.core.rmem_max=2621440
sysctl-wnet.core.wmem_max=2621440
sysctl-wnet.core.rmem_default=262144
sysctl-wnet.core.wmem_default=262144

HP-UX 不需要

HP TRU64 查看 /sbin/sysconfig -q udp

修改: 编辑文件/etc/sysconfigtab

inet: udp_recvspace = 65536

udp_sendspace = 65536

Windows 不需要

常见安装、管理错误

1. 安装CRS失败,或执行root.sh报错,可能原因:

(1) 节点间的时间不同步,解决方法:使用ntp服务

(2) Linux下启用了默认的防火墙,导致执行root.sh报错:

Failure at final check of Oracle CRS stack.

10

解决方法:禁用iptables ,注释/etc/pam.d/other ;

#serviceiptablesstop;#chkconfigiptablesoff.

(3) 裸设备的权限问题,可能因为操作系统重新启动后权限发生变化。(RHEL4)

解决方法: 把 chown oracle:dba /dev/raw/raw* 命令加入到/etc/rc.local中,每次开机自动执行

或者修改文件/etc/udev/permissions.d/50-udev.permissions

第113行raw/*:root:disk:0660 改成 raw/*:oracle:dba:0660

(4) Solaris使用了包括cylinder 0的磁盘分区来存储OCR或者vote disk。

解决办法:相关分区不应该包括cylinder 0,可以从1开始。

(5) 使用的公网IP地址不可路由,

解决方法:添加相关网关

(6) 在/etc/hosts 中没有loopback地址,即127.0.0.1 localhost

(7) 主机名含有大些字母、减号或者下划线等特殊字符;

(8) HPUX中oracle不要使用gnu的bash,修改使用默认shell;

(9) 检查操作系统、第三方集群是否是oracle官方支持的,是否需要补丁,比如在AIX5.3+HACMP上安装

Oracle 10g/11g RAC,oslevel就需要06及以上;

(10) AIX平台,需要将共享设备的reserve_policy (reserve_lock) 属性修改为no_reserve(no);

(11) 所有节点看到的OCR和vote设备的路径名应该一致,如果不一致,可以用软连接解决;

(12) 心跳设备问题或者ocr/votedisk 访问问题,unix/linux查看有无/tmp/crsctl.*文件,得到错误信息;

(13) 在CRS旧的安装的环境中重新安装失败

解决方法: dd清除ocr和vote disk,并使用下面语句清理旧的crs配置文件

rm-rf/usr/tmp/.oracle/var/tmp/.oracle/tmp/.oracle/etc/oracle/*/var/opt/oracle/* 
rm-rf/etc/init.cssd/etc/init.crs*/etc/init.evmd/etc/init.d/init.cssd/etc/init.d/init.crs 
rm-rf/etc/init.d/init.crsd/etc/init.d/init.evmd/etc/rc3.d/K96init.crs/etc/rc3.d/S96init.crs 
rm-rf/etc/rc.d/rc2.d/K96init.crs/etc/rc.d/rc2.d/S96init.crs

2 客户端有时候报错:

ORA-12545: Connect failed because target host or object does not exist

ORA-12545: 因目标主机或对象不存在, 连接失败

解决方法:设置local_listener初始化参数

3 如果选择节点界面出不来。

(1)HACMP环境中需要检查oracle 用户必须在 hagsuser组里.

(2)如果是hacmp5.4,需要打Oracle补丁6718715;

(3)可以使用集群配置文件cluster CONFIGURATION FILE ,内容模板如下:

MyCluster 
rac01rac01-privrac01-vip 
rac02rac02-privrac02-vip 
rac03rac03-privrac03-vip 
rac04rac04-privrac04-vip

4. AIX上数据库启动报错

ora-27504IPCerrorcreatingOSDcontext 
ora-27300OSsystemdependentoperation:sendmsgfailedwithstatus:59 
ora-27301OSfailuremessage:Messagetoolong 
ora-27302failureoccurredat:sskgxpsnd1

原因:没有设置网络参数udp_recvspace/udp_sendspace

5. Windows平台,ORA-600 [kccsbck_first]

解决方法:关闭Media Sense(媒体感知)

6. 系统循环重启:

可能是CRS导致,如果因为crs,首先设置 crsctl disable crs 来禁止oracle crs的自动启动。

查看OS、crsd和cssd的对应日志,看/tmp/下是否有crs文件 (ls -lrt /tmp/crsctl*),确定crs失败原因。

7. 第二个节点的数据实例无法mount,挂起或者报错,

原因1:使用了vendor clusterware ,libskgxn2.so文件链接错误,

解决方法:比较两个节点的ORACLE_HOME/lib/libskgxn2和CRS_HOME/lib/libskgxn2*都是否相同,

如果不同需要重新link

原因2:任何平台Oracle 9i,没有设置网络参数udp参数

导致udp_sendspace或者udp_recvspace小于 db_block_size * db_file_multiblock_read_count

解决方法:设置对应参数,如AIX上设置udp_recvspace = 65536 udp_sendspace = 65536

原因3:AIX/HACMP/Oracle9i,在hacmp中定义了service IP

解决方法:在初始化参数中定义cluster_interconnects

原因4:任何平台,设置了错误的cluster_interconnects

解决方法:检查并纠正此参数,

8. 建库时不能识别裸设备;

原因1:Oracle,10.2.0.3 ,很多平台(比如aix和linux)有rawutl相关bug,

解决办法:还原10.2.0.1中的rawutl工具,该程序在 $ORACLE_HOME/bin目录中。

原因2:Oracle9i,AIX平台,需要设置环境变量export PGSD_SUBSYS=grpsvcs

9. evm资源自动报错oac_init:2: Could not connect to server, clsc retcode = 9

解决方法:关闭 “UDP ICMP rejections”

/etc/rc.d/init.d/iptablesstop;chkconfigiptablesoff

本文来源:1818IP

本文地址:https://www.1818ip.com/post/12002.html

免责声明:本文由用户上传,如有侵权请联系删除!

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。