版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Oracle RAC技術(shù)原理與運維概述技術(shù)創(chuàng)新,變革未來智慧IT0103目 錄Contents02Oracle 12C RAC的性特性案例講解RAC及高可用架構(gòu)討論01RAC高可用架構(gòu)討論01RAC架構(gòu)介紹01RAC基礎(chǔ)知識介紹RAC 全局資源目錄RAC ONE NODE介紹高可用場景架構(gòu)討論RAC高可用最佳實踐雙活高可用最佳實踐123RAC架構(gòu)介紹45601Oracle RAC EvolutionOracle 6 to Oracle8i OPS(199x)Oracle Database 10g RAC (2004)Grid Computing, Oracle ClusterwareOracl
2、e Database 11g Rel. 1 with RAC (2007)Engineered SystemsOracle9i RAC (2001)RACdebutsOracle Database 11g Rel. 2 with RAC (2009)OneRACAOracleNodeRAC One NodeOracle Database 12c Rel. 1 with RAC (2013)MultitenantRAC高可用架構(gòu)討論01學(xué)習(xí)RAC的幾點建議具備操作系統(tǒng)的相關(guān)知識安裝、升級,且反復(fù)安裝、升級閱讀官方文檔,可以知道“有什么”,“怎么做”可以再查其他 文檔在實驗環(huán)境中操作,尤其需要操作
3、以下內(nèi)容:CRS的資源管理ASM磁盤、磁盤組的添加刪除操作OCR/VOTING DISK的備份、恢復(fù)、鏡像、刪除操作VIP/PUBLIC IP/HAIP/PRIVATE IP更改操作學(xué)會查看日志文件了解業(yè)務(wù)特性,尤其需要知道哪張表在哪個節(jié)點訪問頻率最高RAC高可用架構(gòu)討論01什么是Oracle RAC集群Oracle Real Application Server,簡稱Oracle RAC,位于 不同服務(wù)器系統(tǒng)的Oracle實例同時訪問同一個Oracle 數(shù)據(jù)庫,節(jié)點之間通過私有網(wǎng)絡(luò)進行通訊,所有的 控制文件、聯(lián)機日志文件和數(shù)據(jù)文件存放在共享的 設(shè)備上,能夠被集群重的所有節(jié)點同時讀寫。RAC高
4、可用架構(gòu)討論01Oracle RAC提供的好處多節(jié)點負載均衡提供高可用:故障容錯和無縫切換功能,將硬件和軟件錯誤 造成的影響最小化。一臺機器宕機不影響應(yīng)用訪問數(shù)據(jù)庫RAC高可用架構(gòu)討論01Oracle Clusterware介紹Oracle Clusterware是一個集群軟件,使用它做集群的所有操 作系統(tǒng)必須相同。使用Oracle Clusterware將多個裝有相同操作系統(tǒng)的服務(wù)器捆綁在 一起,當(dāng)對這些集群服務(wù)器進行訪問時,就像訪問一臺服務(wù)器一 樣。RAC高可用架構(gòu)討論01Oracle Clusterware介紹Oracle Clusterware兩個集群組件voting disk (表決
5、磁盤):用于記錄集群節(jié)點信息。RAC用 它來確定哪些實例是集群實例。當(dāng)網(wǎng)絡(luò)發(fā)生故障時,用它存儲的 信息進行健康檢查和沖裁。表決盤必須存放在共享磁盤上。Oracle Cluster Registry (OCR,集群注冊),用于記錄集群 配置信息。集群注冊也必須存放在共享磁盤上。RAC高可用架構(gòu)討論01Oracle RAC體系架構(gòu)RAC高可用架構(gòu)討論DBWRLGWRDatabase Instance OneBuffer CacheShared PoolDBWRLGWRDatabase Instance TwoBuffer CacheShared PoolNode Manager (NM Level
6、)LMDLMSLMONLCKDIAGNode Manager (NM Level)LMDLMSLMONLCKDIAGCluster Manager (CM Level)ohasd. binocssd. bincrsd.bi ngipcd. binevmd. binCluster Manager (CM Level)ohasd. binocssd. bincrsd.bi ngipcd. binevmd. bin數(shù)據(jù)庫層Cluster層01RAC高可用架構(gòu)討論Cluster Manager Level一、兩大部分1、OHASD棧(Oracle Hight Availability Service
7、Daemon) 2、CRSD棧(Cluster Ready Service Daemon)3、OCR中的信息也分成了兩部分 OHASD : OLR(Oracle Local Registry) CRSD : OCR(Oracle Cluster Registry)二、啟動:bash-3.2# cat /etc/inittabh1:3:respawn:/etc/init.d/init.ohasd run /dev/null 2&1 /dev/null 2&1 /dev/null”啟動腳本:/export/home/oragrid/app/grid/bin/ohasdoraagentoraroot
8、agentcssdagentcssdmonitorCRSDCTSSDDiskmonACFSASM EVMDMDNSDGIPCD.bin GPnPDOcssd.binGRID:oraagentorarootagentNetwork ResoureSCAN IPCluster VIP ACFS Registry GNS VIPASMDiskgroupSCAN ListenerListenerONS & eONSGSDGNS管理DB管理ServiceOracle:oraagentOhasd棧的日志:oraagent和orarootagentNOTE:以上資源和進程,以grid運行的,被稱為oraag
9、ent進程,由進程oraagent.bin 啟動。以root運行的,被稱為orarootagent進程,由進程orarootagent.bin啟動。這兩個進程的日志有兩套,分別在$GRID_HOME/log/hostname/agent/ohasd和$GRID_HOME/log/hostname/agent/crsd目錄中。 oraagent.bin的日志是:$GRID_HOME/log/hostname/agent/ohasd/oraagent_grid/oraagent_grid.log$GRID_HOME/log/hostname/agent/crsd/oraagent_grid/ora
10、agent_grid.log orarootagent.bin的日志有:$GRID_HOME/log/hostname/agent/ohasd/orarootagent_root/orarootagent_root.log$GRID_HOME/log/hostname/agent/crsd/orarootagent_root/orarootagent_root.log資源進程用戶作用日志位置ora.evmdevmloggergrid生成、發(fā)布集群環(huán)境中的事 件?/log/hostname/evmdOra.mdnsdmdnsd.binGridOracle自己的域名解析服務(wù)?/log/hostna
11、me/mdnsdOra.gpnpdgpnpd.bingrid非ASM的LCR信息維護?/log/hostname/gpnpdOra.asmGridOra.crsdcrsd.binrootCRSD?/log/hostname/crsdOra.ctssdoctssd.binroot處理時間同步?/log/hostname/ctssdOra.diskmonroot在exadata中監(jiān)控磁盤?/log/hostname/diskmonora.drivers.acfsroot/var/log/message01RAC高可用架構(gòu)討論Ohasd的cssdagent、cssdmonitor與CSSD資源進程用
12、戶作用日志位置cssdagentrootCssd的啟動、關(guān)閉、檢查?/log/hostname/agent/ ohasd/oracssdagent_roo tora.cssdmonito rcssdmonitorroot監(jiān)控cssdagent?/log/hostname/agent/ ohasd/oracssdmonitor_r ootora.cssdocssd.bingrid節(jié)點成員管理。網(wǎng)絡(luò)心跳、 磁盤心跳由此進程產(chǎn)生。?/log/hostname/cssd01RAC高可用架構(gòu)討論排故的入口這么多的日志,出現(xiàn)問題如何排故:出現(xiàn)問題(比如節(jié)點被踢),先從集群的alert log入手,根據(jù)al
13、ert log中的信息進一步查 看相關(guān)進程的日志:RAC的alert log:$GRID_HOME/log/hostname/alertlvrac1.log提高日志級別:有時需要提高日志級別,以進一步確定問題(Oracle的support很多時候也會要求我們提 供更高日志級別的信息),比如:crsctl debug log crs CRSRTI:1,CRSCOMM:2,OCRSRV:4或者debug某個資源:crsctl debug log res ora.node1.vip:101RAC高可用架構(gòu)討論排故的入口這是一個節(jié)點被踢時,存活節(jié)點的alert log:2015-01-05 09:48
14、:39.077:cssd(1419)CRS-1612:Network communication with node lvrac1 (1) missing for 50% of timeout interval. Removal of this node from cluster in 14.976 seconds2015-01-05 09:48:47.083:cssd(1419)CRS-1611:Network communication with node lvrac1 (1) missing for 75% of timeout interval. Removal of this nod
15、e from cluster in 6.971 seconds2015-01-05 09:48:51.086:cssd(1419)CRS-1610:Network communication with node lvrac1 (1) missing for 90% of timeout interval. Removal of this node from cluster in 2.968 seconds01RAC高可用架構(gòu)討論排故的入口這是一個節(jié)點被踢時,存活節(jié)點的alert log:2015-01-05 09:48:39.077:cssd(1419)CRS-1612:Network com
16、munication with node lvrac1 (1) missing for 50% of timeout interval. Removal of this node from cluster in 14.976 seconds2015-01-05 09:48:47.083:cssd(1419)CRS-1611:Network communication with node lvrac1 (1) missing for 75% of timeout interval. Removal of this node from cluster in 6.971 seconds2015-01
17、-05 09:48:51.086:cssd(1419)CRS-1610:Network communication with node lvrac1 (1) missing for 90% of timeout interval. Removal of this node from cluster in 2.968 secondsCSSD:相關(guān)資源名1419:相關(guān)進程號bash-3.2# ps -ef|grep 1419 grid 141910Dec 26 ?71:31 /export/home/oragrid/app/grid/bin/ocssd.bin錯誤信息01RAC高可用架構(gòu)討論排故的
18、入口這是一個節(jié)點被踢時,存活節(jié)點的alert log: 2015-01-05 09:48:39.077:cssd(1419)CRS-1612:Network communication with node lvrac1 (1) missing for 50% of timeout interval. Removal of this node from cluster in 14.976 seconds2015-01-05 09:48:47.083:cssd(1419)CRS-1611:Network communication with node lvrac1 (1) missing for
19、75% of timeout interval. Removal of this node from cluster in 6.971 seconds2015-01-05 09:48:51.086:cssd(1419)CRS-1610:Network communication with node lvrac1 (1) missing for 90% of timeout interval. Removal of this node from cluster in 2.968 secondsCSSD:相關(guān)資源名1419:相關(guān)進程號錯誤信息bash-3.2# ps -ef|grep 1419gr
20、id 141910Dec 26 ?71:31 /export/home/oragrid/app/grid/bin/ocssd.bin節(jié)點被踢原因:和對端cssd進程心跳延遲超過預(yù)設(shè)值。為什么心跳超時,可進一步 查看所有節(jié)點的cssd日志。被踢節(jié)點的ocssd日志:2015-01-05 09:47:58.027: 2015-01-05 09:47:58.027: 2015-01-05 09:48:02.031: 2015-01-05 09:48:02.032: 2015-01-05 09:48:06.036: 2015-01-05 09:48:06.036: 2015-01-05 09:48:1
21、0.039: 2015-01-05 09:48:10.039: 2015-01-05 09:48:14.043: 2015-01-05 09:48:14.043: 2015-01-05 09:48:18.046: 2015-01-05 09:48:18.046: 2015-01-05 09:48:22.050: 2015-01-05 09:48:22.050: 2015-01-05 09:49:57.350: 2015-01-05 09:49:57.350: CSSD24clssnmSendingThread: sending status msg to all nodes CSSD24cls
22、snmSendingThread: sent 4 status msgs to all nodes CSSD24clssnmSendingThread: sending status msg to all nodes CSSD24clssnmSendingThread: sent 4 status msgs to all nodes CSSD24clssnmSendingThread: sending status msg to all nodes CSSD24clssnmSendingThread: sent 4 status msgs to all nodes CSSD24clssnmSe
23、ndingThread: sending status msg to all nodes CSSD24clssnmSendingThread: sent 4 status msgs to all nodes CSSD24clssnmSendingThread: sending status msg to all nodes CSSD24clssnmSendingThread: sent 4 status msgs to all nodes CSSD24clssnmSendingThread: sending status msg to all nodes CSSD24clssnmSending
24、Thread: sent 4 status msgs to all nodes CSSD24clssnmSendingThread: sending status msg to all nodes CSSD24clssnmSendingThread: sent 4 status msgs to all nodes CSSD1clsu_load_ENV_levels: Module = CSSD, LogLevel = 2, TraceLevel = 0 CSSD1clsu_load_ENV_levels: Module = GIPCNM, LogLevel = 2, TraceLevel =
25、0排故的入口CSSD24clssnmSendingThread: sending status msg to all nodes CSSD24clssnmSendingThread: sent 4 status msgs to all nodesCSSD23clssnmPollingThread: node lvrac1 (1) at 50% heartbeat fatal, removal in 14.976 seconds CSSD23clssnmPollingThread: node lvrac1 (1) is impending reconfig, flag 2229260, miss
26、time 15024CSSD23clssnmPollingThread: local diskTimeout set to 27000 ms, remote disk timeout set to 27000, impending reconfig status(1) CSSD19clssnmvDHBValidateNcopy: node 1, lvrac1, has a disk HB, but no network HB, DHB has rcfg 315082348, wrtcnt, 916735,2015-01-05 09:48:36.212: 2015-01-05 09:48:36.
27、212: 2015-01-05 09:48:39.078: 2015-01-05 09:48:39.078: 2015-01-05 09:48:39.078: 2015-01-05 09:48:39.078: LATS 835022572, lastSeqNo 499191, uniqueness 1419587531, timestamp 1420422503/8349886342015-01-05 09:48:39.948: CSSD17clssnmvDiskPing: Writing with status 0 x3, timestamp 1420422519/835023442在09:
28、48:22后,沒有了心跳信息,ocssd.bin進程在此時刻后被Hang住。 Lvrac1節(jié)點被踢的原因:在09:48:22后,ocssd.bin進程被Hang住,未能及 時響應(yīng)心跳。另一節(jié)點的ocssd日志:01RAC高可用架構(gòu)討論監(jiān)聽對應(yīng)的資源SERVERSTATE_DETAILS一、監(jiān)聽運行在Grid用戶下:bash-3.2# ./crsctl status res tNAMETARGET STATELocal ResourcesVIP對應(yīng)的監(jiān)聽lvrac1 lvrac2 ora.LISTENER.lsnrONLINE ONLINE ONLINE ONLINECluster Resour
29、ceslvrac1只在一部分主機上,如果lvrac1當(dāng)?shù)?,將會?移到另外的節(jié)點ora.LISTENER_SCAN1.lsnr1ONLINE ONLINE監(jiān)聽的配置文件一、監(jiān)聽運行在Grid用戶下:bash-3.2# ps -ef|grep tnsgrid 22551?/export/home/oragrid/app/grid/bin/tnslsnr LISTENER -inheritgrid 22471? /export/home/oragrid/app/grid/bin/tnslsnr LISTENER_SCAN1 -inherit監(jiān)聽的配置文件在GRID中。二 、 兩 個 配 置 文 件
30、 : endpoints_listener.ora:向后兼容 listener.ora :監(jiān)聽配置文件三、監(jiān)聽的配置文件的變化:LISTENER= (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)# line added by AgentLISTENER_SCAN1= (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN1)# line added by AgentENABLE_GLOBAL_DYNAMIC_ENDPOINT_LIS
31、TENER_SCAN1=ON# line added by AgentENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER=ON# line added by Agent01RAC高可用架構(gòu)討論SCANIPbash-3.2# ./crsctl status res t ora.scan1.vip1ONLINE ONLINElvrac2bash-3.2# ifconfig a e1000g0:1:flags=1001040843 mtu1500 index 2inet 40 netmask ffffff00 broadcast 55-bash-3.2$ srvctl c
32、onfig scanSCAN name: lv-scan, Network: 1/e1000g0 SCAN VIP name: scan1, IP: /lv-scan/40-bash-3.2$-bash-3.2$ srvctl status scan SCAN VIP scan1 is enabledSCAN VIP scan1 is running on node lvrac201RAC高可用架構(gòu)討論SCANIP的兩種方式一、基于/etc/hosts-bash-3.2$ cat /etc/hosts # Internet host table #:1localhostlocalhost 31
33、 lvrac1 0 lvrac1-priv 50 lvrac1-vip 32 lvrac2 1 lvrac2-priv 51 lvrac2-vip40 lv-scan二、基于DNS如果基于DNS,不必在/etc/hosts中配置,Cluster將生成三個SCAN IP01RAC高可用架構(gòu)討論SCANIP的監(jiān)聽SCAN IP有專門的監(jiān)聽與之對應(yīng): bash-3.2# ps -ef|grep tnsgrid 22551?/export/home/oragrid/app/grid/bin/tnslsnr LISTENER -inheritgrid 22471? /export/home/oragri
34、d/app/grid/bin/tnslsnr LISTENER_SCAN1 -inheritYou can check its status in user grid:-bash-3.2$ lsnrctl status LISTENER_SCAN1LSNRCTL for Solaris: Version .0 - Production on 26-DEC-2014 14:48:23 Copyright (c) 1991, 2013, Oracle. All rights reserved.Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KE
35、Y=LISTENER_SCAN1) STATUS of the LISTENERAliasLISTENER_SCAN1Listening Endpoints Summary. (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER_SCAN1) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=40)(PORT=1521)Services Summary.Service myrac has 1 instance(s).Instance myrac_2, status READY, has 1 handler(s) f
36、or this service. Service myractst has 1 instance(s).Instance myrac_2, status READY, has 1 handler(s) for this service. The command completed successfully01RAC高可用架構(gòu)討論SCANIP的連接方式-bash-3.2$ cat tnsnames.ora# tnsnames.ora Network Configuration File:/export/home/oradb/product/10.2.0/network/admin/tnsname
37、s.ora # Generated by Oracle configuration tools.MYRAC = (DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = lv-scan)(PORT = 1521) (CONNECT_DATA =(SERVER = DEDICATED) (SERVICE_NAME = myrac)01RAC高可用架構(gòu)討論SCANIP在RACONE下的使用SCAN IP有專門的監(jiān)聽與之對應(yīng):Node 1Node 2Lv-scanLISTENER_SCAN1RACONEDatabase InstanceVIP 2VIP 201
38、RAC高可用架構(gòu)討論基于VIP的TNSNAMES.ora一、監(jiān)聽運行在Grid用戶下:dbvip = (DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = lvrac1-vip)(PORT = 1521) (CONNECT_DATA =(SERVER = DEDICATED) (SERVICE_NAME = myrac)基于的VIP的TNS仍然可以使用,但Oracle建議使用新的SCAN IP機制。 SQL conn system/Oracle1dbvipConnected.01RAC基礎(chǔ)知識介紹RAC 全局資源目錄RAC ONE NODE介紹高可用
39、場景架構(gòu)討論RAC高可用最佳實踐雙活高可用最佳實踐123RAC架構(gòu)介紹45601RAC架構(gòu)介紹全局資源目錄RAC的目標(biāo)為前端應(yīng)用提供一個統(tǒng)一的數(shù)據(jù)庫,雖然應(yīng)用連接的節(jié)點可能不同,但看到 的各種數(shù)據(jù)和其狀態(tài),將是完全一樣的。為實現(xiàn)這一目標(biāo) ,需要為下列數(shù)據(jù),實現(xiàn)跨 節(jié)點的一致性:大部分的高級隊列鎖(即V$LOCK中可以看到的鎖,如TM鎖等)。部分Library cache lock/pin(比如與DDL相關(guān)的、加在對象上的Lock和Pin)Row cache lockBuffer Cache其中,前三種被稱為Non-PCM資源,由 LMD進程負責(zé)保證一致性。最后一種稱為PCM資 源,由 LMS進
40、程保證一致性。用來實現(xiàn)資源一致性的基本結(jié)構(gòu),Oracle稱為全局資源目錄。(注意:這里的resource和Cluster的Resource不一樣。Cluster的resource指的是主機、實 例、數(shù)據(jù)庫、VIP等等。RAC的Resource指的就是需要在各個節(jié)點間同步的信息。)01RAC架構(gòu)介紹存儲全 局 資 源 目 錄全局資源目錄全局資源目錄的目的:以最少的網(wǎng)絡(luò)帶寬消耗,實現(xiàn)資源跨節(jié)點的一致性,又要保證可 快速獲得資源狀態(tài),重構(gòu)時最快速、影響最小化。Server進程01RAC架構(gòu)介紹A資源B資源C資源存儲全局資源目錄全局資源目錄主要記錄資源狀態(tài),它本身是去中心化的。資源按照HASH算法分布
41、在RAC所有節(jié)點中。每 個節(jié) 點,是它其中所有資源的主節(jié)點,反過來說,每一個資源都有一個主節(jié)點,這主節(jié)點,就是資源所屬的節(jié)點。Server進程L資源M資源N資源O資源P資源Q資源01RAC架構(gòu)介紹全局資源目錄A資源B資源C資源存儲Server進程L資源M資源N資源O資源P資源Q資源此進程要訪問B資源,第一步要 先計算出B資源的主節(jié)點。然后 到主節(jié)點上獲得B資源的狀態(tài)01RAC架構(gòu)介紹全局資源目錄得到資源主節(jié)點后,請求節(jié)點會發(fā)消息,請求獲得資源上的某種類型的鎖,以便訪問資 源。主節(jié)點在收到請求后,要快速在自己的內(nèi)存中獲得資源狀態(tài),以判斷請求是否可以被滿 足。對于“快速獲得資源狀態(tài)”的算法,Ora
42、cle認為隊列鎖的機制很好,因此這里的機制和 隊列鎖完全一樣。01RAC架構(gòu)介紹全局資源目錄注意,全局資源目錄并不是替代了單實例中原有的鎖機制,而是在原有鎖機制之前又加 了一層。以Buffer Cache中的Buffer為例,訪問Buffer需要有一個Buffer Pin Lock,在資源目 錄中,針對Buffer的資源鎖類型是BL鎖,它的完整名稱是BL-文件號-塊號。某個節(jié)點的Server進程要修改本節(jié)點Buffer Cache中某個Buffer。第一步要先獲得Buffer對 應(yīng)的BL資源上的獨占鎖,然后還要獲得獨占的Buffer Pin Lock,才能開始修改Buffer。如果無 法得到B
43、L鎖,會產(chǎn)生gc buffer busy waits等待。如果無法得到Buffer Pin Lock,會 產(chǎn)生Buffer Busy Waits等待。01RAC架構(gòu)介紹節(jié)點1節(jié)點2節(jié)點3凍結(jié)標(biāo)志:4Server進程凍結(jié)標(biāo)志:4凍結(jié)標(biāo)志:4全局資源目錄重構(gòu)節(jié)點的加入、退出會導(dǎo)致全局資源目錄重構(gòu)。在開始重構(gòu)前,LMON進程會設(shè)置一個全局凍結(jié)標(biāo)志,告訴其他進程,全局資 源目錄被鎖定。每個Server進程在訪問在訪問全局資源目錄時,首先都會先檢查凍結(jié)標(biāo)志是否被設(shè)置,如果被設(shè)置,進程將 等待gcs resource directory to be unfrozen事件和ges enter server
44、mode事件,直到重構(gòu)完成。01RAC架構(gòu)介紹本來主節(jié)點是2號節(jié)點。假設(shè)2號節(jié)點離開RAC集群,存活節(jié)點的LMON會首先修改自己SGA中的X$KJDRPCMHV,如下面的PPT。X$KJDRPCMHVIndex節(jié)點號11223240516012711280HASH 值:2全局資源目錄重構(gòu)資源重構(gòu)由LMON進程完成,重構(gòu)算法,以節(jié)點離開為例,主要描述PCM資源(Non-PCM資源類似)。第一步修改資 源主節(jié)點,這一步 主要通過修改X$KJDRPCMHV視圖實現(xiàn)。比如A資源的HASH值為2,它對應(yīng)X$KJDRPCMHV中第三行,01RAC架構(gòu)介紹第二、三行節(jié)點號本來為2,現(xiàn)在改為了0。HASH值為
45、2的資源,本來主節(jié)點為2,現(xiàn)在 主節(jié)點為0。Index節(jié)點號11203040516012711280全局資源目錄重構(gòu)2號節(jié)點離開集群:X$KJDRPCMHVHASH 值:201RAC架構(gòu)介紹全局資源目錄重構(gòu)修改完X$KJDRPCMHV,每個存活節(jié)點的LMON將執(zhí)行以下兩步,以完成資源重構(gòu):1、掃描自己為 主節(jié)點的所有資源結(jié)構(gòu),如果鎖結(jié)構(gòu)中有2號節(jié)點,將鎖結(jié)構(gòu)刪除。如 果某個資源的鎖結(jié)構(gòu)只對應(yīng)2號節(jié)點,沒有其他節(jié)點持有資源的鎖,資源結(jié)構(gòu)連同鎖結(jié) 構(gòu)一起刪除。此步驟是處理2號節(jié)點所持有、主節(jié)點不是2號節(jié)點的資源。2、掃描所有Shadow鎖結(jié)構(gòu),如果Shadow鎖結(jié)構(gòu)的主節(jié)點是 2號節(jié)點,LMON根
46、據(jù) X$KJDRPCMHV中的新的節(jié)點號,得到資源新的主節(jié)點號,通知對應(yīng)節(jié)點,重建資源結(jié)構(gòu), 然后修改Shadow鎖結(jié)構(gòu)的主節(jié)點為 新值。這一步是處理主節(jié)點為2號節(jié)點的資源。全局資源目錄重構(gòu)所耗時間,主要由這兩步?jīng)Q定。步1中需要修改的鎖結(jié)構(gòu)越多,步2中 需要修改的Shadow鎖結(jié)構(gòu)越多、需要在其他節(jié)點重建的資源結(jié)構(gòu)越多,所耗時間就越 長。簡而言之,內(nèi)存越大,所耗時間越長。在重構(gòu)其間,所有資源目錄的訪問全部被阻塞,在重構(gòu)其間,每個節(jié)點不能有新的物理 讀、不能產(chǎn)生CR塊,不能讀其他節(jié) 點中的Buffer,這些操作都要訪問全局資源目錄。 除非是不 訪問全局資源目錄的操作,比如在本節(jié)點Buffer C
47、ache中讀一個已經(jīng)存在的、 鎖狀態(tài)是Scur的Buffer。01RAC架構(gòu)介紹如果是節(jié)點離開,主節(jié)點是存活節(jié)點中的資源,如果其下的鎖結(jié)構(gòu)沒有二號結(jié)點的,不 受 影響。節(jié)點的加入,與離開類似。 假設(shè)集群中只有1、3號節(jié)點, X$KJDRPCMHV中會有64行屬 于1點,另64行屬于3號節(jié)點?,F(xiàn)在2號節(jié)點加入,LMON會從1、3號節(jié)點中,各抽出一半 的行給節(jié)點2,Oracle會一直保持X$KJDRPCMHV中各節(jié)點所占行相等。全局資源目錄重構(gòu)01RAC架構(gòu)介紹全局資源目錄重構(gòu)有可能會出現(xiàn)這樣的情況,突然發(fā)生節(jié)點當(dāng)機,所有存活節(jié)點收到節(jié)點離開消息, LMON馬上設(shè)置凍結(jié)標(biāo)志,但還是有進程已經(jīng)檢查過
48、凍結(jié)標(biāo)志,得到狀態(tài)是沒有凍結(jié)。 進程繼續(xù)訪問資源,發(fā)現(xiàn)主節(jié)點已經(jīng)改變,這時進程將會等待資源重構(gòu)完畢后重新按正 常方式訪問資源,這時進程的等待事件是gc cr fail或gc current fail。01RAC基礎(chǔ)知識介紹RAC 全局資源目錄RAC ONE NODE介紹高可用場景架構(gòu)討論RAC高可用最佳實踐雙活高可用最佳實踐123RAC架構(gòu)介紹45601RAC高可用架構(gòu)討論創(chuàng)建RACONE數(shù)據(jù)庫安裝Database軟件時,有專門的RACONE安裝選項:01RAC高可用架構(gòu)討論創(chuàng)建RACONE數(shù)據(jù)庫如果在此頁中,選擇“僅安裝軟件”,上頁中選擇RACONE安裝項或是RAC安裝項,結(jié) 果都是一樣的0
49、1RAC高可用架構(gòu)討論創(chuàng)建RACONE數(shù)據(jù)庫安裝完軟件后,使用asmca創(chuàng)建ASM Diskgroup:01RAC高可用架構(gòu)討論創(chuàng)建RACONE數(shù)據(jù)庫使用DBCA建庫:01RAC高可用架構(gòu)討論創(chuàng)建RACONE數(shù)據(jù)庫選擇“Admin-Managed”模式?!癙ollcy-Managed”是11G新的方式,用于實現(xiàn)數(shù)據(jù)庫 虛擬化功能。其本質(zhì)是由DBA設(shè)置數(shù)據(jù)庫的等級、重要度等權(quán)重,由Cluster自己決定 將數(shù)據(jù)庫運行在哪些節(jié)點上。01RAC高可用架構(gòu)討論創(chuàng)建RACONE數(shù)據(jù)庫雖然是RACONE,但Oracle仍會創(chuàng)建Thread 2的redoo file。另一個實例的UNDO表空間也 會被創(chuàng)建:
50、01RAC高可用架構(gòu)討論創(chuàng)建RACONE數(shù)據(jù)庫手動1.準(zhǔn)備參數(shù)文件*.cluster_database=false 暫時設(shè)置為false*.compatible=.0*.control_files=+DATA01/DBTST/control01.ctl*.db_block_size=8192*.db_domain=*.db_name=dbtst*.diagnostic_dest=/export/home/oradb*.java_pool_size=0*.large_pool_size=0*.open_cursors=300*.pga_aggregate_target=104857600*.pr
51、ocesses=150*.remote_listener=lv-scan:1521*.remote_login_passwordfile=exclusive*.shared_pool_size=200m*.db_cache_size=125829120Oracle建議將spfile放置在共享的ASM Diskgroup中,在本地initSID.ora中指向spfile:-bash-3.2$ cat initdbtst_1.ora SPFILE=+DATA01/dbtst/spfiledbtst.ora01RAC高可用架構(gòu)討論創(chuàng)建RACONE數(shù)據(jù)庫手動啟動實例后,發(fā)布建庫命令,和普通的建庫命令沒
52、有區(qū)別。必須運行的初始化腳本 ?/rdbms/admin/catalog.sql ?/rdbms/admin/catproc.sql ?/rdbms/admin/catblock.sql ?/rdbms/admin/catclust.sql ?/rdbms/admin/utlrp.sql sqlplus system/Oracle1 ?/sqlplus/admin/pupbld.sql為另一個實例添加Undo表空間:create UNDO TABLESPACE UNDOTBS2 DATAFILE +DATA01/DBTST/undotbs02.dbf SIZE 50M REUSE AUTOEX
53、TEND ON MAXSIZE UNLIMITED;為另一個實例添加Redo Thread:alter database add logfile thread 2 group 3 (+DATA01/DBTST/redo03.log) size 80M reuse; alter database add logfile thread 2 group 4 (+DATA01/DBTST/redo04.log) size 80M reuse;修改RAC相關(guān)參數(shù):alter system set undo_tablespace=undotbs2 sid=dbtst_1 ; alter system se
54、t thread=1 sid=dbtst_1 scope=spfile;alter system set thread=2 sid=dbtst_2 scope=spfile; alter system set cluster_database=true scope=spfile;01RAC高可用架構(gòu)討論創(chuàng)建RACONE數(shù)據(jù)庫手動向OCR中添加信息: 在Oracle用戶下執(zhí)行:srvctl add database -d dbtst -o /export/home/oradb/product/10.2.0 -c RACONENODE -e lvrac2 -w 10srvctl add servi
55、ce -d dbtst -s dbtstsvc srvctl start database -d dbtst激活另一個Thread: Su oracleSqlplus / as sysdbaAlter database enable thread 2;01RAC高可用架構(gòu)討論RACONE是什么如何確認數(shù)據(jù)庫是RACONE:-bash-3.2$ srvctl config database -d myrac Database unique name: myracDatabase name: myracType: RACOneNode 資源類型是RACONE-bash-3.2$ srvctl st
56、atus database -d myracInstance myrac_2 is running on node lvrac1 show parameter clusterNAMETYPEVALUEbooleanTRUEinteger2cluster_database cluster_database_instances Note:數(shù)據(jù)庫并不知道自己是RACONE,Cluster(具體是CRSD)知道某個庫是RACONE。01RAC高可用架構(gòu)討論RACONE是什么3.能同時啟動兩個節(jié)點嗎?-bash-3.2$ srvctl start database -d myrac PRCC-1014
57、: myrac was already runningPRCR-1004 : Resource ora.myrac.db is already running PRCR-1079 : Failed to start resource ora.myrac.dbCRS-5702: Resource ora.myrac.db is already running on lvrac1-bash-3.2$ srvctl start instance -d myrac -i myrac_1PRKO-2136 : srvctl start/stop/enable/disable/modify/status/
58、setenv/getenv/unsetenv instance commands are not supported with RAC One Node databases但可以手動啟動:-bash-3.2$ export ORACLE_SID=myrac_1-bash-3.2$ sqlplus / as sysdba SQL startupORACLE instance started.Total System Global Area 371654656 bytesFixed Size Variable Size Database Buffers Redo Buffers2250928 by
59、tes239077200 bytes125829120 bytes4497408 bytesDatabase mounted. Database opened.01RAC高可用架構(gòu)討論RACONE是什么4.手動啟動第二個節(jié)點可以連接嗎: 答案:可以。SQL conn system/Oracle1MYRACSQL select instance_number from v$instance; INSTANCE_NUMBER1SQL conn system/Oracle1MYRAC Connected.SQL select instance_number from v$instance; INST
60、ANCE_NUMBER2SQL conn system/Oracle1MYRACSQL select instance_number from v$instance; INSTANCE_NUMBER2SQL conn system/Oracle1MYRACSQL select instance_number from v$instance; INSTANCE_NUMBER1MYRAC = (DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = lv-scan)(PORT = 1521)(CONNECT_DATA = (SERVER = DEDICATE
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年中國餅干行業(yè)競爭力策略及投資盈利分析報告
- 2024-2030年中國食鹽包裝機行業(yè)市場運營模式及未來發(fā)展動向預(yù)測報告
- 2024-2030年中國靜電消除器行業(yè)競爭態(tài)勢及未來發(fā)展策略分析報告
- 2024-2030年中國陶??招钠鰤K行業(yè)供需趨勢及發(fā)展規(guī)模分析報告
- 2024-2030年中國防雷避雷產(chǎn)品行業(yè)競爭格局及發(fā)展策略分析報告
- 2024-2030年中國長三角印刷業(yè)市場發(fā)展前景趨勢及投資戰(zhàn)略研究報告
- 2024-2030年中國鍍鋅層鈍化劑行業(yè)前景規(guī)劃及投資潛力分析報告
- 2024-2030年中國鋰電池電解液行業(yè)競爭狀況及發(fā)展規(guī)劃分析報告
- 2024-2030年中國鋁合金焊絲項目投資風(fēng)險分析報告
- TCSRME 034-2023 隧道巖溶堵水注漿技術(shù)規(guī)程
- 藝坊尋美-藝術(shù)實踐體驗坊智慧樹知到答案2024年黑龍江幼兒師范高等??茖W(xué)校
- 桂枝顆粒營銷策略與品牌定位
- 墻布訂購合同協(xié)議書
- AQ/T 1089-2020 煤礦加固煤巖體用高分子材料(正式版)
- 電影作品讀解智慧樹知到期末考試答案章節(jié)答案2024年西北大學(xué)
- 倉庫貨物臨時儲存與分配計劃三篇
- 臨床骨質(zhì)疏松患者護理查房
- 新媒體與社會性別 知到智慧樹網(wǎng)課答案
- 大班健康活動《不吃三無食品》
- 婦科醫(yī)生進修匯報課件
評論
0/150
提交評論