自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

詳解Oracle RAC入門(mén)和提高

數(shù)據(jù)庫(kù) Oracle
對(duì)于Oracle Real Application Server,真正應(yīng)用集群,簡(jiǎn)稱(chēng)Oracle RAC大家并不陌生,本文將為大家做一次Oracle RAC入門(mén)和提高的課程。

本文將詳細(xì)講述Oracle RAC入門(mén)和提高,希望對(duì)廣大Oracle數(shù)據(jù)庫(kù)管理人員以及致力于學(xué)習(xí)Oracle數(shù)據(jù)庫(kù)的管理人有所幫助。

Oracle RAC 產(chǎn)品概述

Oracle Real Application Server,真正應(yīng)用集群,簡(jiǎn)稱(chēng)Oracle RAC ,是Oracle的并行集群,位于不同服務(wù)器系統(tǒng)的Oracle實(shí)例同時(shí)訪問(wèn)同一個(gè)Oracle數(shù)據(jù)庫(kù),節(jié)點(diǎn)之間通過(guò)私有網(wǎng)絡(luò)進(jìn)行通信,所有的控制文件、聯(lián)機(jī)日志和數(shù)據(jù)文件存放在共享的設(shè)備上,能夠被集群中的所有節(jié)點(diǎn)同時(shí)讀寫(xiě)。其系統(tǒng)架構(gòu)如下圖:
 

系統(tǒng)架構(gòu)
 

RAC提供的好處包括:

(1)多節(jié)點(diǎn)負(fù)載均衡;

(2)提供高可用:故障容錯(cuò)和無(wú)縫切換功能,將硬件和軟件錯(cuò)誤造成的影響最小化,下表是RAC與傳統(tǒng)的雙機(jī)熱備方式切換時(shí)間的對(duì)比:

多節(jié)點(diǎn)均衡

(3)通過(guò)并行執(zhí)行技術(shù)提高事務(wù)響應(yīng)時(shí)間----通常用于數(shù)據(jù)分析系統(tǒng);

(4)通過(guò)橫向擴(kuò)展提高每秒交易數(shù)和連接數(shù) ;----通常對(duì)于聯(lián)機(jī)事務(wù)系統(tǒng);

(5)節(jié)約硬件成本,可以用多個(gè)廉價(jià)PC服務(wù)器代替昂貴的小型機(jī)或大型機(jī),同時(shí)節(jié)約相應(yīng)維護(hù)成本;

(6)可擴(kuò)展性好,可以方便添加刪除節(jié)點(diǎn),擴(kuò)展硬件資源;

RAC的缺點(diǎn)有:

相對(duì)單機(jī),管理更復(fù)雜,要求更高;

在系統(tǒng)規(guī)劃設(shè)計(jì)較差時(shí)性能甚至不如單節(jié)點(diǎn);

可能會(huì)增加軟件成本(如果使用高配置的pc服務(wù)器,Oracle一般按照CPU個(gè)數(shù)收費(fèi))

在Oracle9i之前,RAC的名稱(chēng)是OPS (Oracle parallel Server)。RAC 與 OPS 之間的一個(gè)較大區(qū)別是,RAC采用了Cache Fusion(高速緩存合并)技術(shù)。在 OPS 中,節(jié)點(diǎn)間的數(shù)據(jù)請(qǐng)求需要先將數(shù)據(jù)寫(xiě)入磁盤(pán),然后發(fā)出請(qǐng)求的節(jié)點(diǎn)才可以讀取該數(shù)據(jù)。使用Cache fusion時(shí),RAC的各個(gè)節(jié)點(diǎn)的數(shù)據(jù)緩沖區(qū)通過(guò)高速、低延遲的內(nèi)部網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)塊的傳輸。

Oracle RAC在中國(guó)各行各業(yè)使用都比較廣泛,包括通信移動(dòng)、金融服務(wù)、社會(huì)保障和電子商務(wù)等,據(jù)Oracle統(tǒng)計(jì),2007財(cái)年中國(guó)有500多家企業(yè)使用Oracle實(shí)時(shí)應(yīng)用集群,考慮到未登記信息,實(shí)際數(shù)字更高于這一數(shù)字。典型的用戶(hù)包括:中彩在線(xiàn)/OLTP/4節(jié)點(diǎn)/10gR2/AIX5.3、淘寶/DataWarehouse/4節(jié)點(diǎn)/10gR2/RHEL4、北京社保/6節(jié)點(diǎn) /HP_Alpha/ MA8000、建行證券系統(tǒng)/2節(jié)點(diǎn)/IBM_P595/EMC_DMX3、上海電力/2節(jié)點(diǎn)/Alpha_GS160、廣東移動(dòng)、山東網(wǎng)通等。

#p#

Oracle RAC/Clusterware的結(jié)構(gòu)和組件

一、RAC主要組件, 軟硬件兩部分

(1) 服務(wù)器 >= 2

(2) 操作系統(tǒng),推薦使用Oracle認(rèn)證的系統(tǒng);版本不要太老,也不要太新

(3) CPU/內(nèi)存 根據(jù)業(yè)務(wù)需要,內(nèi)存至少1G

(4) 本地磁盤(pán)空間,>=30G

(5) 網(wǎng)卡 >=2 ,推薦4個(gè)以上千兆網(wǎng)卡

(6) 私有以太網(wǎng)絡(luò),推薦千兆交換機(jī)以上

(7) HBA卡 ,如果是SAN,推薦2個(gè)冗余HBA

(8) 共享存儲(chǔ)設(shè)備,推薦SAN設(shè)備

(9) 存儲(chǔ)管理, ASM/Cluster LV/裸分區(qū)/CFS,不推薦用OCFS,卷管理軟件、多路徑軟件等

(10) 第三方集群軟件: 可選

(11) Oracle Clusterware 軟件

(12) Oracle RDBMS 軟件

二、Clusterware主要進(jìn)程

(1)crsd: 負(fù)責(zé)管理集群的高可用操作。管理的crs資源包括數(shù)據(jù)庫(kù)、實(shí)例、監(jiān)聽(tīng)、虛擬IP,ons,gds或者其他,操作包括啟動(dòng)、關(guān)閉、監(jiān)控及故障切換。改進(jìn)程由root用戶(hù)管理和啟動(dòng)。crsd如果有故障會(huì)導(dǎo)致系統(tǒng)重啟。

(2)cssd,管理各節(jié)點(diǎn)的關(guān)系,用于節(jié)點(diǎn)間通信,節(jié)點(diǎn)在加入或離開(kāi)集群時(shí)通知集群。該進(jìn)程由oracle用戶(hù)運(yùn)行管理。發(fā)生故障時(shí)cssd也會(huì)自動(dòng)重啟系統(tǒng)。

(3)oprocd – 集群進(jìn)程管理 —Process monitor for the cluster. 用于保護(hù)共享數(shù)據(jù)IO fencing。

僅在沒(méi)有使用vendor的集群軟件狀態(tài)下運(yùn)行

(4)evmd :事件檢測(cè)進(jìn)程,由oracle用戶(hù)運(yùn)行管理

三、Clusterware使用的共享設(shè)備

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

(2) Voting disk : 即投票盤(pán),保存節(jié)點(diǎn)的成員信息,當(dāng)配置多個(gè)投票盤(pán)的時(shí)候個(gè)數(shù)必須為奇數(shù),每個(gè)節(jié)點(diǎn)必須同時(shí)能夠連接半數(shù)以上的投票盤(pán)才能夠存活;

四、安裝路徑的選擇

安裝路徑的選擇

注:

(1)在Oracle RAC中,軟件不建議安裝在共享文件系統(tǒng)上;包括CRS_HOME和ORACLE_HOME,尤其是CRS軟件,推薦安裝在本地文件系統(tǒng)中,這樣在進(jìn)行軟件升級(jí),以及安裝patch和patchset的時(shí)候可以使用滾動(dòng)升級(jí)(rolling upgrade)的方式,減少計(jì)劃當(dāng)機(jī)時(shí)間。另外如果軟件安裝在共享文件系統(tǒng)也會(huì)增加單一故障點(diǎn)。

(2)如果使用ASM存儲(chǔ),需要為asm單獨(dú)安裝ORACLE軟件,獨(dú)立的ORACLE_HOME,易于管理和維護(hù),比如當(dāng)遇到asm的bug需要安裝補(bǔ)丁時(shí),就不會(huì)影響RDBMS文件和軟件。

(3)在Oracle 11gR2中將新增存儲(chǔ)選項(xiàng):acfs (Oracle ASM Cluster File System)

第三方集群

在Oracle9i中,除了Windows和Linux,在安裝RAC之前必須先安裝vendor clusterware,即第三方集群,包括IBM的HACMP, HP的ServiceGuard for oracle RAC, Sun cluster,Veritas SFRAC等,這一類(lèi)的集群軟件為Oracle RAC提供了下面的功能:

(1)共享的邏輯卷管理或者集群文件系統(tǒng)用于存放數(shù)據(jù)文件;

(2)提供了統(tǒng)一的集群的成員組管理;

(3)使用更健壯的SCSI-3 PGR機(jī)制來(lái)防止心跳故障(即裂腦split brain)導(dǎo)致的數(shù)據(jù)損壞,這種功能一般叫做IO fencing;

(4)提供效率更高的、更低延遲的心跳網(wǎng)絡(luò)用于cache fusion,可以相對(duì)減少TCP/IP的開(kāi)銷(xiāo),包括:

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);

通常如果要使用第三方集群的心跳協(xié)議,需要將$ORACLE_HOME/lib/libskgxpX.so文件替換為第三方集群

軟件提供的libskgxpX.so文件(其中X代表Oracle版本號(hào)9/10/11),skgxp 是System Kernel Generic Interface Inter-Process Communications的縮寫(xiě),是oracle開(kāi)放的一個(gè)應(yīng)用接口,用于傳輸GCS和GES 的數(shù)據(jù)。Oracle自帶的libskgxp文件定義的傳輸協(xié)議是UDP/IP。

5)提供擴(kuò)展的容災(zāi)方案,例如campus cluster/metro cluster/extended RAC;如下圖, 以Veritas的SFRAC為例,它提供兩種Oracle Extended RAC方案,方案一是使用Veritas Volume Manager對(duì)底層陣列進(jìn)行鏡像,提供同城容災(zāi)級(jí)別的實(shí)時(shí)數(shù)據(jù)保護(hù);方案二使用GCO/VVR對(duì)數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)復(fù)制,可以實(shí)現(xiàn)距離更遠(yuǎn)、超過(guò)10km廣域網(wǎng)的容災(zāi);

陣列

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

補(bǔ)充的Oracle ODM,可以使Oracle同時(shí)擁有文件系統(tǒng)的易管理和裸設(shè)備的性能;

標(biāo)準(zhǔn)的多路徑軟件(DMP),不需要再安裝其他軟件就可支持絕大多數(shù)磁盤(pán)陣列,在異構(gòu)SAN環(huán)境中有更好的兼容性;

從Oracle10g起,Oracle提供了自己的集群軟件,叫Oracle clusterware簡(jiǎn)稱(chēng)CRS,這個(gè)軟件是安裝oracle rac的前提,而上述第三方集群則成了安裝的可選項(xiàng)。同時(shí)提供了另外一個(gè)新特性叫做ASM,可以用于RAC下的共享磁盤(pán)設(shè)備的管理,還實(shí)現(xiàn)了數(shù)據(jù)文件的條帶化和鏡像,以提高性能和安全性 (S.A.M.E: stripe and mirror everything ) ,不再依賴(lài)第三方存儲(chǔ)軟件來(lái)搭建RAC系統(tǒng)。

那么Oracle是如何識(shí)別第三方集群的呢?

在安裝完第三方集群后,會(huì)在特定目錄下生成Oracle RAC接口文件,這個(gè)文件的作用就是上面的第二點(diǎn)功能:集群成員管理信息(cluster membership 簡(jiǎn)稱(chēng)CM)。在HPUX下該文件是/opt/nmapi/nmapi2/lib/pa20_64,在AIX/Solaris/Linux下這個(gè)文件是 /opt/ORCLcluster/lib/libskgxn2.so 。

當(dāng)安裝CRS的的檢查階段,就會(huì)檢測(cè)是否有該文件,如果有的話(huà),在安裝CRS過(guò)程中生成一個(gè)軟連接文件,文件名是ligskgxn2.so,指向上面的libskgxn2.so或pa20_64文件,這個(gè)軟連接的位置在CRS_HOME/lib/目錄;如果沒(méi)有第三方集群,那么CRS安裝過(guò)程中生成自己的libskgxn2.so文件。換句話(huà)說(shuō),在有第三方集群存在的情況下,CRS的集群成員信息是來(lái)自于第三方集群,兩套集群的成員信息保持一致和同步;沒(méi)有第三方集群情況時(shí),CRS自己管理成員信息。

通過(guò)查詢(xún)$CRS_HOME/log/hostname/cssd/ocssd.log可以看到css識(shí)別到的第三方集群,下面的例子分別是HACMP、SFRAC、SunCluster、ServiceGuide :

 

  1. [CSSD]2008-05-27 15:09:43.456 [1029] >TRACE: clssnm_skgxninit: initialized skgxn version (2/0/IBM AIX skgxn)  
  2. [CSSD]2008-12-30 21:44:56.172 [1029] >TRACE: clssnm_skgxninit: initialized skgxn version (2/0/Veritas Cluster Server MM  
  3. [CSSD]2007-08-10 02:19:39.572 [3] >TRACE: clssnm_skgxninit: initialized skgxn version (2/2/Oracle Solaris UDLM)  
  4. [CSSD]2006-09-29 18:57:53.323 [5] >TRACE: clssnm_skgxninit: initialized skgxn version (2/0/Hewlett-Packard SKGXN 2.0) 

 

在9i/8i中沒(méi)有css/crs,該信息可以在后臺(tái)進(jìn)程lmon的trace文件中得到(在bdump中);

在安裝Oracle 9i RAC/8i OPS的過(guò)程中,Oracle識(shí)別集群方法類(lèi)似。

在多個(gè)平臺(tái)上,如果兩個(gè)節(jié)點(diǎn)沒(méi)有正確鏈接libskgxn2文件,可能會(huì)導(dǎo)致第二個(gè)實(shí)例無(wú)法mount或出現(xiàn)ORA-600錯(cuò)誤。

Oracle支持的RAC環(huán)境

因?yàn)镺racle RAC本身比較復(fù)雜,在安裝和管理中可能會(huì)遇到各種問(wèn)題,涉及到OS、RDBMS、Cluster軟件和網(wǎng)絡(luò)、主機(jī)、存儲(chǔ)等硬件,為了避免不必要的問(wèn)題發(fā)生,在安裝之前,我們需要確認(rèn)安裝環(huán)境是否滿(mǎn)足要求,包括軟件和硬件兩方面,尤其是Vendor clusterware和OS 的版本的兼容性需要注意,可以從metalink中得到最新的Oracle官方認(rèn)證信息:登陸Metalink.oracle.com 選擇 Certify,選擇by product,選擇real application server,選擇對(duì)應(yīng)平臺(tái)就可以得到。下面列出一些關(guān)于硬件和平臺(tái)支持的常見(jiàn)問(wèn)題:

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

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

RHEL GFS , ISCSI,

私有網(wǎng)絡(luò)(心跳線(xiàn))的支持: 不支持使用交叉線(xiàn),支持 Infiniband RDS (10gR2之后)

異構(gòu)環(huán)境:支持不同的硬件、但相同的軟件(OS/Oracle)組成的集群,不支持32位與64位系統(tǒng)間的集群

目前支持的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 使用兩種心跳設(shè)備來(lái)驗(yàn)證成員的狀態(tài),保證集群的完整性;一是對(duì)voting disk的心跳,ocssd進(jìn)程每秒向votedisk寫(xiě)入一條心跳信息;二是節(jié)點(diǎn)間的私有以太網(wǎng)的心跳,兩種心跳機(jī)制都有一個(gè)對(duì)應(yīng)的超時(shí)時(shí)間,分別叫做 misscount和disktimeout:

misscount 用于定義節(jié)點(diǎn)間心跳通信的超時(shí),單位為秒;

disktimeout ,默認(rèn)200秒,定義css進(jìn)程與vote disk連接的超時(shí)時(shí)間;

reboottime ,發(fā)生裂腦并且一個(gè)節(jié)點(diǎn)被踢出后,這個(gè)節(jié)點(diǎn)將在reboottime的時(shí)間內(nèi)重啟;默認(rèn)是3秒;

其中misscount默認(rèn)值見(jiàn)下表
misscount

用下面的命令查看上述參數(shù)的實(shí)際值:

  1. 1. # crsctl get css misscount  
  2. 2. # grep misscount $CRS_HOME/log/hostname/cssd/ocssd.log  
  3. [CSSD]2008-11-27 22:29:42.397 [1] >TRACE: clssnmInitNMInfo: misscount set to 600 

 

在下面兩種情況發(fā)生時(shí),css會(huì)踢出節(jié)點(diǎn)來(lái)保證數(shù)據(jù)的完整,:

(1) Private Network IO time > misscount,會(huì)發(fā)生split brain即裂腦現(xiàn)象,產(chǎn)生多個(gè)“子集群”(subcluster) ,這些子集群進(jìn)行投票來(lái)選擇哪個(gè)存活,踢出節(jié)點(diǎn)的原則按照下面的原則:

節(jié)點(diǎn)數(shù)目不一致的,節(jié)點(diǎn)數(shù)多的subcluster存活;節(jié)點(diǎn)數(shù)相同的,node ID小的節(jié)點(diǎn)存活。

(2) Vote Disk IO Time > disktimeout ,踢出節(jié)點(diǎn)原則如下:失去半數(shù)以上vote disk連接的節(jié)點(diǎn)將在reboottime的時(shí)間內(nèi)重啟;例如有5個(gè)vote disk,當(dāng)由于網(wǎng)絡(luò)或者存儲(chǔ)原因某個(gè)節(jié)點(diǎn)與其中>=3個(gè)vote disk連接超時(shí)時(shí),該節(jié)點(diǎn)就會(huì)重啟。當(dāng)一個(gè)或者兩個(gè)vote disk損壞時(shí)則不會(huì)影響集群的運(yùn)行。

可以手工修改這三個(gè)參數(shù)的值,單位都是秒:(謹(jǐn)慎使用)

 

  1. $CRS_HOME/bin/crsctl set css misscount   
  2. $CRS_HOME/bin/crsctl set css reboottime [-force]  
  3. $CRS_HOME/bin/crsctl set css disktimeout [-force]  
  4. 或者重新設(shè)置成默認(rèn)值:crsctl unset css misscount 

 

Clusterware的私有網(wǎng)絡(luò)

在Oracle 10g/11g中,Oracle的私有網(wǎng)絡(luò)(private network)包括clusterware的私有網(wǎng)絡(luò)和數(shù)據(jù)庫(kù)實(shí)例的私有網(wǎng)絡(luò):

clusterware的私有網(wǎng)絡(luò)主要包括css數(shù)據(jù)的傳送,即用一種特殊的ping命令來(lái)檢測(cè)其他機(jī)器的狀態(tài);

數(shù)據(jù)庫(kù)實(shí)例的私有網(wǎng)絡(luò),包括RDMS和ASM的,用于cache fusion(GCS/GES)數(shù)據(jù)的傳輸。

當(dāng)我們只使用一個(gè)私有網(wǎng)卡的時(shí),同時(shí)傳送上面兩類(lèi)的數(shù)據(jù)。如果我們?cè)诎惭b時(shí)指定了兩個(gè)私有網(wǎng)卡,首先使用如下面$CRS_HOME/bin/oifcfg getif命令來(lái)得到所有網(wǎng)絡(luò)接口列表,這些信息保存在ocr中:

 

  1. # oifcfg getif  
  2. en0 10.200.56.0 global public 
  3. en3 192.168.3.0 global cluster_interconnect  
  4. en5 192.168.5.0 global cluster_interconnect 

 

情況會(huì)有所不同,clusterware的私有網(wǎng)絡(luò),目前(10g/11g)只能使用一個(gè)網(wǎng)絡(luò)接口,對(duì)應(yīng)于/etc/hosts中定義的private hostname的那個(gè)網(wǎng)卡,可以通過(guò)查看ocssd的log來(lái)確定:

當(dāng)/etc/hosts 中定義private hostname為192.168.3.233時(shí)看到 :

 

  1. [ CSSD]2009-01-16 17:34:12.406 [1029] >TRACE: clssgmPeerListener: Listening on (ADDRESS=(PROTOCOL=tcp)(DEV=12) (HOST=192.168.3.233)(PORT=45527)) 

這個(gè)是與其他節(jié)點(diǎn)css進(jìn)行通信的信息:

 

  1. [ CSSD]2009-01-16 17:36:27.463 [1029] >TRACE: clssgmConnectToNode: 
  2. node 2 clsc (ADDRESS=(PROTOCOL=tcp)(DEV=12) (HOST=192.168.3.234)(PORT=37732)) - size 64 ver 1 

當(dāng)/etc/hosts 中定義private hostname為192.168.5.233時(shí),css使用了另外一個(gè)網(wǎng)絡(luò):

 

  1. [ CSSD]2009-01-16 18:59:56.411 [1029] >TRACE: clssgmPeerListener:   
  2. Listening on (ADDRESS=(PROTOCOL=tcp)(DEV=12) (HOST=192.168.5.233)(PORT=50415)) 

Oracle實(shí)例的私有網(wǎng)絡(luò)

Oracle實(shí)例的心跳網(wǎng)絡(luò)使用方式的優(yōu)先級(jí)從高到低如下:

(1) 如果使用了第三方集群的IPC,替換了對(duì)應(yīng)$ORACLE_HOME/lib/libskgxnX.so文件,那么數(shù)據(jù)庫(kù)實(shí)例的cache fusion會(huì)使用對(duì)應(yīng)的網(wǎng)絡(luò)協(xié)議,而忽略ocr中和數(shù)據(jù)庫(kù)初始化參數(shù)中cluster_interconnects的配置,下面的例子當(dāng)中就使用了 VCSIPC,可以從對(duì)應(yīng)的alert log中驗(yàn)證:

 

  1. db_name = r10g  
  2. open_cursors = 300  
  3. pga_aggregate_target = 1237319680  
  4. Fri Mar 13 14:00:35 2009  
  5. Oracle instance running with ODM: Veritas 6.0 ODM Library, Version 1.1  
  6. cluster interconnect IPC version:  
  7. VERITAS IPC 5.1.0.0 15:16:24 Feb 12 2009  
  8. IPC Vendor 86 proto 76  
  9. Version 1.0  
  10. PMON started with pid=2, OS id=4399196  
  11. DIAG started with pid=3, OS id=3936288 

 

(2) 如果沒(méi)有使用第三方IPC,則優(yōu)先使用數(shù)據(jù)庫(kù)初始化參數(shù)的cluster_interconnects配置,這個(gè)參數(shù)的格式為if1:if2:...:ifn,可以不同于crs的私有網(wǎng)絡(luò),需要注意的是,該參數(shù)不支持多個(gè)網(wǎng)卡的故障切換;

(3) 沒(méi)有上面兩個(gè)配置,數(shù)據(jù)庫(kù)會(huì)使用oifcfg列出的心跳的網(wǎng)絡(luò),在對(duì)應(yīng)的告警日志中可以得到:

 

  1. Interface type 1 en6 192.168.61.0 configured from OCR for use as a cluster interconnect  
  2. Interface type 1 en0 10.182.0.0 configured from OCR for use as a public interface  
  3. . . . .  
  4. Cluster communication is configured to use the following interface(s) for this instance  
  5. 192.168.61.0 

(4) 沒(méi)有1和2的配置,并且oifcfg也沒(méi)有配置cluster_interconnect,則數(shù)據(jù)庫(kù)會(huì)使用共有網(wǎng)絡(luò)進(jìn)行心跳信息的傳輸,這種配置其實(shí)是配置失敗的情況,數(shù)據(jù)庫(kù)雖然能夠啟動(dòng),但急需DBA修正,在告警日志中可以看到:

 

  1. WARNING: No cluster interconnect has been specified. Depending on  
  2. the communication driver configured Oracle cluster traffic  
  3. may be directed to the public interface of this machine.  
  4. Oracle recommends that RAC clustered databases be configured  
  5. with a private interconnect for enhanced security and  
  6. performance. 

 

對(duì)于一個(gè)已經(jīng)有的系統(tǒng),可以用下面幾種方法確認(rèn)數(shù)據(jù)庫(kù)實(shí)例的心跳配置,包括網(wǎng)卡名稱(chēng),IP地址,使用的網(wǎng)絡(luò)協(xié)議:

(1) 最簡(jiǎn)單的方法:可以在數(shù)據(jù)庫(kù)的后臺(tái)報(bào)警日志中得到。具體參見(jiàn)上面列出的告警日志;

(2) 使用oradebug ;

 

  1. SQL> oradebug setmypid  
  2. SQL> oradebug ipc  
  3. SQL> oradebug tracefile_name 

 

找到對(duì)應(yīng)trace文件的這一行:socket no 10 IP 10.0.0.1 UDP 49197

(3) 從數(shù)據(jù)字典中得到(V$CLUSTER_INTERCONNECTS 和 V$CONFIGURED_INTERCONNECTS),或查詢(xún)x$ksxpia

 

  1. SQL> SELECT * FROM V$CLUSTER_INTERCONNECTS; ----Oracle 11g 開(kāi)始支持此試圖  
  2. NAME IP_ADDRESS IS_ SOURCE  
  3. ------------------------------ ---------------- --- -------------------------------  
  4. en3 192.168.2.31 NO Oracle Cluster Repository  
  5. en5 192.168.3.231 NO Oracle Cluster Repository  
  6. SQL> SELECT * FROM V$CONFIGURED_INTERCONNECTS;  
  7. NAME IP_ADDRESS IS_ SOURCE  
  8. ------------------------------ ---------------- --- -------------------------------  
  9. en3 192.168.2.31 NO Oracle Cluster Repository  
  10. en5 192.168.3.231 NO Oracle Cluster Repository  
  11. en0 10.200.59.231 YES Oracle Cluster Repository  
  12. SQL> select * from x$ksxpia ;  
  13. ADDR INDX INST_ID PUB_KSXPIA PICKED_KSXPIA NAME_KSXPIA IP_KSXPIA  
  14. ---------------- ---------- ---------- ---------- --------------- --------------- ----------------  
  15. 00000001104AAF28 0 1 N OCR en6 192.168.61.121  
  16. 00000001104AAF28 1 1 Y OCR en0 10.182.6.211 

 

為了避免心跳網(wǎng)絡(luò)成為系統(tǒng)的單一故障點(diǎn),簡(jiǎn)單地我們可以使用操作系統(tǒng)綁定的網(wǎng)卡來(lái)作為Oracle的心跳網(wǎng)絡(luò),以AIX為例,我們可以使用etherchannel技術(shù),假設(shè)系統(tǒng)中有ent0/1/2/3四塊網(wǎng)卡,我們綁定2和3作為心跳:

 

  1. #mkdev -c adapter -s pseudo -t ibm_ech -a adapter_names='ent2,ent3' ## 將生成網(wǎng)卡設(shè)備ent4  
  2. #/usr/lib/methods/defif  
  3. #lsdev -Cc adapter | grep ent  
  4. #lsattr -El ent4  
  5. #ifconfig en4 inet 192.168.3.231 netmask 255.255.255.0 up  
  6. 在Solaris上可以使用dladm來(lái)創(chuàng)建鏈路聚合:  
  7. # dladm create-aggr -d bge2 -d bge3 1  
  8. # ifconfig aggr1 plumb 192.168.3.231 netmask 255.255.255.0 up  
  9. # dladm show-aggr  
  10. # ifconfig -a 

 

同樣在HPUX和Linux對(duì)應(yīng)的技術(shù)分別叫APA和bonding。

UDP私有網(wǎng)絡(luò)的調(diào)優(yōu)

當(dāng)使用UDP作為數(shù)據(jù)庫(kù)實(shí)例間cashe fusion的通信協(xié)議時(shí),在操作系統(tǒng)上需要調(diào)整相關(guān)參數(shù),以提高UDP傳輸效率,并在較大數(shù)據(jù)時(shí)避免出現(xiàn)超出OS限制的錯(cuò)誤:

(1) UDP數(shù)據(jù)包發(fā)送緩沖區(qū):大小通常設(shè)置要大于(db_block_size * db_multiblock_read_count )+4k,

(2) UDP數(shù)據(jù)包接收緩沖區(qū):大小通常設(shè)置10倍發(fā)送緩沖區(qū);

(3) UDP緩沖區(qū)最大值:設(shè)置盡量大(通常大于2M)并一定要大于前兩個(gè)值;

各個(gè)平臺(tái)對(duì)應(yīng)查看和修改命令如下:

Solaris 查看

  1. ndd /dev/udp udp_xmit_hiwat udp_recv_hiwat udp_max_buf ;  
  2. 修改 ndd -set /dev/udp udp_xmit_hiwat 262144  
  3. ndd -set /dev/udp udp_recv_hiwat 262144  
  4. ndd -set /dev/udp udp_max_buf 2621440 

 

AIX 查看

  1. no -a |egrep “udp_|tcp_|sb_max”  
  2. 修改 no -p -o udp_sendspace=262144 
  3. no -p -o udp_recvspace=1310720 
  4. no -p -o tcp_sendspace=262144 
  5. no -p -o tcp_recvspace=262144 
  6. no -p -o sb_max=2621440 

 

Linux 查看

  1. 文件/etc/sysctl.conf  
  2. 修改 sysctl -w net.core.rmem_max=2621440 
  3. sysctl -w net.core.wmem_max=2621440 
  4. sysctl -w net.core.rmem_default=262144 
  5. sysctl -w net.core.wmem_default=262144 

 

HP-UX 不需要

HP TRU64 查看 /sbin/sysconfig -q udp

修改: 編輯文件/etc/sysconfigtab

inet: udp_recvspace = 65536

udp_sendspace = 65536

Windows 不需要

常見(jiàn)安裝、管理錯(cuò)誤

1. 安裝CRS失敗,或執(zhí)行root.sh報(bào)錯(cuò),可能原因:

(1) 節(jié)點(diǎn)間的時(shí)間不同步,解決方法:使用ntp服務(wù)

(2) Linux下啟用了默認(rèn)的防火墻,導(dǎo)致執(zhí)行root.sh報(bào)錯(cuò):

Failure at final check of Oracle CRS stack.

10

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

 

  1. # service iptables stop; # chkconfig iptables off. 

(3) 裸設(shè)備的權(quán)限問(wèn)題,可能因?yàn)椴僮飨到y(tǒng)重新啟動(dòng)后權(quán)限發(fā)生變化。(RHEL4)

解決方法: 把 chown oracle:dba /dev/raw/raw* 命令加入到/etc/rc.local中,每次開(kāi)機(jī)自動(dòng)執(zhí)行

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

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

(4) Solaris使用了包括cylinder 0的磁盤(pán)分區(qū)來(lái)存儲(chǔ)OCR或者vote disk。

解決辦法:相關(guān)分區(qū)不應(yīng)該包括cylinder 0,可以從1開(kāi)始。

(5) 使用的公網(wǎng)IP地址不可路由,

解決方法:添加相關(guān)網(wǎng)關(guān)

(6) 在/etc/hosts 中沒(méi)有l(wèi)oopback地址,即127.0.0.1 localhost

(7) 主機(jī)名含有大些字母、減號(hào)或者下劃線(xiàn)等特殊字符;

(8) HPUX中oracle不要使用gnu的bash,修改使用默認(rèn)shell;

(9) 檢查操作系統(tǒng)、第三方集群是否是oracle官方支持的,是否需要補(bǔ)丁,比如在AIX5.3+HACMP上安裝

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

(10) AIX平臺(tái),需要將共享設(shè)備的reserve_policy (reserve_lock) 屬性修改為no_reserve(no);

(11) 所有節(jié)點(diǎn)看到的OCR和vote設(shè)備的路徑名應(yīng)該一致,如果不一致,可以用軟連接解決;

(12) 心跳設(shè)備問(wèn)題或者ocr/votedisk 訪問(wèn)問(wèn)題,unix/linux查看有無(wú)/tmp/crsctl.*文件,得到錯(cuò)誤信息;

(13) 在CRS舊的安裝的環(huán)境中重新安裝失敗

解決方法: dd清除ocr和vote disk,并使用下面語(yǔ)句清理舊的crs配置文件

 

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

 

2 客戶(hù)端有時(shí)候報(bào)錯(cuò):

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

ORA-12545: 因目標(biāo)主機(jī)或?qū)ο蟛淮嬖? 連接失敗

解決方法:設(shè)置local_listener初始化參數(shù)

3 如果選擇節(jié)點(diǎn)界面出不來(lái)。

(1)HACMP環(huán)境中需要檢查oracle 用戶(hù)必須在 hagsuser組里.

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

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

 

  1. MyCluster  
  2. rac01 rac01-priv rac01-vip  
  3. rac02 rac02-priv rac02-vip  
  4. rac03 rac03-priv rac03-vip  
  5. rac04 rac04-priv rac04-vip 

 

4. AIX上數(shù)據(jù)庫(kù)啟動(dòng)報(bào)錯(cuò)

 

  1. ora-27504 IPC error creating OSD context  
  2. ora-27300 OS system dependent operation:sendmsg failed with status:59  
  3. ora-27301 OS failure message:Message too long  
  4. ora-27302 failure occurred at:sskgxpsnd1 

 

原因:沒(méi)有設(shè)置網(wǎng)絡(luò)參數(shù)udp_recvspace/udp_sendspace

5. Windows平臺(tái),ORA-600 [kccsbck_first]

解決方法:關(guān)閉Media Sense(媒體感知)

6. 系統(tǒng)循環(huán)重啟:

可能是CRS導(dǎo)致,如果因?yàn)閏rs,首先設(shè)置 crsctl disable crs 來(lái)禁止oracle crs的自動(dòng)啟動(dòng)。

查看OS、crsd和cssd的對(duì)應(yīng)日志,看/tmp/下是否有crs文件 (ls -lrt /tmp/crsctl*),確定crs失敗原因。

7. 第二個(gè)節(jié)點(diǎn)的數(shù)據(jù)實(shí)例無(wú)法mount,掛起或者報(bào)錯(cuò),

原因1:使用了vendor clusterware ,libskgxn2.so文件鏈接錯(cuò)誤,

解決方法:比較兩個(gè)節(jié)點(diǎn)的ORACLE_HOME/lib/libskgxn2和CRS_HOME/lib/libskgxn2*都是否相同,

如果不同需要重新link

原因2:任何平臺(tái)Oracle 9i,沒(méi)有設(shè)置網(wǎng)絡(luò)參數(shù)udp參數(shù)

導(dǎo)致udp_sendspace或者udp_recvspace小于 db_block_size * db_file_multiblock_read_count

解決方法:設(shè)置對(duì)應(yīng)參數(shù),如AIX上設(shè)置udp_recvspace = 65536 udp_sendspace = 65536

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

解決方法:在初始化參數(shù)中定義cluster_interconnects

原因4:任何平臺(tái),設(shè)置了錯(cuò)誤的cluster_interconnects

解決方法:檢查并糾正此參數(shù),

8. 建庫(kù)時(shí)不能識(shí)別裸設(shè)備;

原因1:Oracle,10.2.0.3 ,很多平臺(tái)(比如aix和linux)有rawutl相關(guān)bug,

解決辦法:還原10.2.0.1中的rawutl工具,該程序在 $ORACLE_HOME/bin目錄中。

原因2:Oracle9i,AIX平臺(tái),需要設(shè)置環(huán)境變量export PGSD_SUBSYS=grpsvcs

9. evm資源自動(dòng)報(bào)錯(cuò)oac_init:2: Could not connect to server, clsc retcode = 9

解決方法:關(guān)閉 “UDP ICMP rejections”

 

  1. /etc/rc.d/init.d/iptables stop ;chkconfig iptables off 

【編輯推薦】

  1. 新的Oracle 11g功能展示
  2. 深入Oracle 11g分區(qū)功能
  3. Oracle 11g R2中新特性一覽
  4. Oracle 11g R2如約而至 RAC技術(shù)成亮點(diǎn) 
  5. 詳解Oracle數(shù)據(jù)庫(kù)優(yōu)化方案與實(shí)踐
責(zé)任編輯:彭凡 來(lái)源: ITPUB
相關(guān)推薦

2022-06-20 05:25:54

裂腦Oracle RAC數(shù)據(jù)庫(kù)

2019-02-25 08:40:28

Linux磁盤(pán)IO

2010-03-04 09:27:00

Oracle RAC

2011-05-19 14:11:29

Oracle

2019-07-09 10:24:14

Oracle腳本負(fù)載均衡

2011-03-29 10:47:49

ORACLE數(shù)據(jù)庫(kù)

2011-04-11 14:56:09

Oracle性能

2010-04-12 15:28:38

Oracle RAC

2010-04-22 10:30:11

Oracle RAC

2023-10-11 08:59:05

2023-08-28 09:14:20

ScrapyPython

2010-04-27 16:54:11

Oracle RAC

2010-04-02 16:31:58

Oracle RAC

2017-03-28 11:39:58

深信服超融合平臺(tái)

2010-04-07 09:21:03

Oracle RAC

2010-04-09 16:51:24

Oracle數(shù)據(jù)庫(kù)

2018-10-12 11:11:39

Oracle內(nèi)存結(jié)構(gòu)

2023-10-10 09:26:18

2010-11-15 16:46:49

Oracle查詢(xún)效率

2010-04-19 17:37:51

Oracle 10g
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)