2011年11月20日 《大話Oracle RAC:集群 高可用性 備份與恢復(fù)》
作者:張曉明 編著 (2011年08月第1版第1次) 人民郵電出版社 POSTS & TELECOM PRESS http://www. 北京市崇文區(qū)夕照寺街14號(hào)(100061) 作者簡(jiǎn)介 張曉明,Oracle OCP,現(xiàn)用網(wǎng)名“石頭狗”,名稱來(lái)自于《和佛陀賞花去》中的故事;狗會(huì)因?yàn)槿穗S手丟出的一個(gè)東西而追逐,可能是一個(gè)骨頭、一塊肉、一個(gè)眼神,甚至是一個(gè)石頭,警示一定要看清自己在追逐的東西。 上個(gè)世紀(jì)90年代末畢業(yè)于某著名的醫(yī)科大學(xué),畢業(yè)后分配到某著名醫(yī)院從事治病救人的神圣工作。不幸的是,在大學(xué)最后一年的實(shí)習(xí)中我接觸到了老式486,這讓我魂?duì)繅?mèng)系,再加上IT熱潮對(duì)一個(gè)熱血青年的巨大誘惑,我終于在行醫(yī)3年后削尖了腦袋擠進(jìn)了IT業(yè)?;叵氘?dāng)年,身邊有好幾位來(lái)自知名醫(yī)學(xué)院校的朋友和我一樣義無(wú)反顧地加入IT工程師隊(duì)伍,不知道這幾位朋友現(xiàn)在安否? 我在IT行業(yè)中最初是做開發(fā),先后用過(guò)C、C++、Java等各種主流和非主流語(yǔ)言,熱火朝天的參與過(guò)。C++和Java的網(wǎng)土混戰(zhàn),現(xiàn)在回想起來(lái)只有一個(gè)詞評(píng)價(jià)“幼稚”,不僅是自己幼稚,整個(gè)行業(yè)也不太成熟。后轉(zhuǎn)從事數(shù)據(jù)庫(kù)開發(fā),再轉(zhuǎn)為數(shù)據(jù)庫(kù)管理,最終將此定為自己的職業(yè)方向。今天,我把這些年來(lái)對(duì)Oracle數(shù)據(jù)庫(kù)的學(xué)習(xí)和使用心得記錄下來(lái),既是對(duì)自己的一個(gè)階段總結(jié),也是與所有志同道合的朋友們共同分享。 現(xiàn)任某SP公司數(shù)據(jù)庫(kù)團(tuán)隊(duì)負(fù)責(zé)人,負(fù)責(zé)管理全國(guó)20余省市的OLTP以及公司TB級(jí)OLAP系統(tǒng)的開發(fā)、優(yōu)化和護(hù)。精通數(shù)據(jù)庫(kù)管理、備份、恢復(fù)、窖災(zāi)等設(shè)計(jì)和規(guī)劃,特別是高可用、高并發(fā)、高壓力數(shù)據(jù)庫(kù)環(huán)境的設(shè)計(jì)和優(yōu)化。 內(nèi)容提要 《大話Oracle RAC:集群 高可用性 備份與恢復(fù)》以Oracle 10g為基礎(chǔ),對(duì)OracleRAC進(jìn)行了全面的介紹和分析。全書分為兩個(gè)部分,共14章,第1部分是集群理論篇,這部分從集群基礎(chǔ)知識(shí)入手,通過(guò)分析集群環(huán)境和單機(jī)環(huán)境的不同,介紹了集群環(huán)境的各個(gè)組件及其作用,以及集群環(huán)境的一些專有技術(shù),包括OracleClusterware、Oracle Database、ASM、CacheFusion等。第2部分是實(shí)踐篇,每一章都針對(duì)RAC的一個(gè)知識(shí)點(diǎn)展開講解,包括OracleClusterware的維護(hù)、HA與LB、備份、恢復(fù)、Flashback家族、RAC和DataGuard的結(jié)合使用、RAC和Stream的結(jié)合使用,最后對(duì)ASM進(jìn)行深入介紹,并給出性能調(diào)整的指導(dǎo)思想?! 洞笤?/SPAN>Oracle RAC:集群高可用性備份與恢復(fù)》按照“發(fā)現(xiàn)問(wèn)題→解決問(wèn)題→實(shí)踐與理論相結(jié)合”的方式進(jìn)行介紹,首先對(duì)現(xiàn)實(shí)問(wèn)題進(jìn)行分析,然后提供合適的解決方案,最后自然地引出Oracle中的理論知識(shí)點(diǎn),這種講解方法能夠有效地降低閱讀難度,幫助讀者更好地掌握相關(guān)技能。 《大話Oracle RAC:集群高可用性備份與恢復(fù)》可以作為數(shù)據(jù)庫(kù)開發(fā)人員、數(shù)據(jù)庫(kù)管理員、數(shù)據(jù)庫(kù)初學(xué)者及其他數(shù)據(jù)庫(kù)從業(yè)人員的工作參考手冊(cè),也可以作為大中專院校相關(guān)專業(yè)師生的參考用書和相關(guān)培訓(xùn)機(jī)構(gòu)的培訓(xùn)教材。 P3,RAC環(huán)境拓?fù)鋱D
P6,RAC安裝環(huán)境
P18,RAC存儲(chǔ)規(guī)劃
整個(gè)RAC實(shí)施過(guò)程步驟很多,如果把整個(gè)過(guò)程化整為零,拆分成幾個(gè)不同階段,無(wú)論對(duì)于記憶還是操作都非常有益。 整個(gè)過(guò)程可以分為幾個(gè)模塊:主機(jī)配置、安裝Clusterware、安裝Oracle Database、配置Listener、創(chuàng)建ASM、創(chuàng)建Database。 P35,配置Listener 在任意某個(gè)節(jié)點(diǎn)執(zhí)行Netca(Oracle Net Configuration Assistant),這個(gè)工具同樣會(huì)自動(dòng)感知集群環(huán)境,第一個(gè)界面就是提示選擇配置類型,如圖1-73所示,選擇"Cluster configuration"選項(xiàng);這就保證下面的配置會(huì)自動(dòng)應(yīng)用到所有節(jié)點(diǎn),不必每個(gè)節(jié)點(diǎn)都進(jìn)行一次配置了。 P38,創(chuàng)建ASM ASM和數(shù)據(jù)庫(kù)一樣,都是使用DBCA(Database Configuration Assistant)工具來(lái)創(chuàng)建。運(yùn)行dbca命令,首先出現(xiàn)歡迎界面。DBCA工具也會(huì)檢查Cluster的存在,并提示用戶選擇創(chuàng)建那種類型的ASM,為RAC數(shù)據(jù)庫(kù)創(chuàng)建的ASM本身也是一個(gè)集群數(shù)據(jù)庫(kù);選擇"Oracle Real Application Cluster database"選項(xiàng)。 P51,集群兩大關(guān)鍵特性:可擴(kuò)展性和高可用性;兩大核心能力:負(fù)載均衡和故障轉(zhuǎn)移。 P63,OCM(Oracle Cluster Manager in oracle9.2)->OCRS(Oracle Cluster Ready Service in oracle 10.1)->Oracle Clusterware(in oracle 10.2) P69,在整個(gè)RAC集群中,實(shí)際有兩個(gè)集群存在。一個(gè)是有Clusterware軟件組成的集群,另一個(gè)是有Database組成的集群。其中第一個(gè)集群管理整個(gè)環(huán)境的硬件資源,并為第一個(gè)集群提供基礎(chǔ)服務(wù)。 Oracle Clusterwar在運(yùn)行過(guò)程中,需要兩個(gè)文件,分別叫OCR和Voting Disk,這兩個(gè)文件必須放在共享存儲(chǔ)上。它們是用來(lái)解決“腦裂”和“健忘”的。這兩個(gè)文件必須放在“裸設(shè)備”上,大致100M就足夠了。 P71,OCR(Oracle Clusterware Registry)負(fù)責(zé)維護(hù)整個(gè)集群的配置信息,包括RAC以及Clusterware資源,包括的信息有節(jié)點(diǎn)成員、數(shù)據(jù)庫(kù)、實(shí)例、服務(wù)、監(jiān)聽器、應(yīng)用程序等?!敖⊥眴?wèn)題是由于每個(gè)節(jié)點(diǎn)都有配置信息的拷貝,修改節(jié)點(diǎn)的配置信息不能同步所引起的。要想解決“健忘”問(wèn)題,最簡(jiǎn)單的辦法就是讓整個(gè)集群只保留一份配置,各節(jié)點(diǎn)共用這份配置。Oracle Clusterware所采用的方法就是把這個(gè)配置文件放在共享存儲(chǔ)上,這個(gè)文件就是OCR Disk。 P75,Voting Disk 這個(gè)文件也要放在共享存儲(chǔ)上,Oracle Clusterware要用這個(gè)文件管理集群的節(jié)點(diǎn)成員身份,根據(jù)這里的記錄判斷哪個(gè)節(jié)點(diǎn)屬于集群的成員,并在出現(xiàn)“腦裂”時(shí),仲裁哪個(gè)Partition獲得集群的控制權(quán),而其他的Partition必須從集群中剔除。 P76,Oracle Clusterware后臺(tái)進(jìn)程 CSS(Cluster Synchronization Service)[OCSSD]負(fù)責(zé)整個(gè)集群配置,確定哪些節(jié)點(diǎn)是集群里的成員,每當(dāng)有節(jié)點(diǎn)加入或者離開時(shí),CSS負(fù)責(zé)通知其他節(jié)點(diǎn)更新集群配置。 CRS(Cluster Ready Service)[OCRSD]是實(shí)現(xiàn)HA的核心進(jìn)程,負(fù)責(zé)管理注冊(cè)應(yīng)用的start, stop, monitor 和 failover。 EVM(Event Management)[OEVMD]負(fù)責(zé)發(fā)布CRS產(chǎn)生的各種事件。 P91,并發(fā)訪問(wèn)和數(shù)據(jù)一致性 1、臟讀,用戶可以查詢到已修改但未提交的數(shù)據(jù)。 2、不可重復(fù)讀,前一個(gè)事務(wù)讀到了后一個(gè)事務(wù)的修改內(nèi)容?;蛘呤乔耙粋€(gè)事務(wù)覆蓋了后一個(gè)事務(wù)的修改,前提是前一個(gè)事務(wù)較長(zhǎng)。 3、幻影讀,前一個(gè)事務(wù)讀取了后一個(gè)事務(wù)所INSERT的記錄,前提是前一個(gè)事務(wù)較長(zhǎng)。 4、一致性讀,就是每個(gè)查詢所能看到的結(jié)果集,是這個(gè)查詢提交那個(gè)時(shí)刻的數(shù)據(jù)的狀態(tài)。 隔離級(jí)別:
P203,可用性=MTTF/(MTTF+MTTR) MTTF平均故障間隔時(shí)間;MTTR平均修復(fù)時(shí)間。比如平均6個(gè)月出現(xiàn)一次故障,用20分鐘修復(fù)。那么:6個(gè)月/(6個(gè)月+20分鐘)*100%=99.9%2 P204,Failover(故障轉(zhuǎn)移) 1、Client-Side Connect Time Failover,如果客戶端tnsname中配置了的多個(gè)地址,客戶端發(fā)起連接請(qǐng)求時(shí),會(huì)嘗試連接地址表中的第一個(gè)地址,如果失敗,就嘗試連接第二個(gè),直到成功或者遍歷了所有的地址。 2、TAF(Transparent Application Failover),就是連接建立以后、應(yīng)用系統(tǒng)運(yùn)行過(guò)程中,如果某個(gè)實(shí)例發(fā)生故障,連接到這個(gè)實(shí)例上的用戶會(huì)被自動(dòng)遷移到其他的健康實(shí)例上。 3、Server-Side TAF,就是在服務(wù)器端配置的TAF。 P232,LoadBalance(負(fù)載均衡) 1、Connection Balance(Client-side LB and Server-side LB)通過(guò)某種算法將用戶分配到不同的節(jié)點(diǎn)。屬于“純技術(shù)”層面的分散負(fù)載。 2、SERVICE,通過(guò)把應(yīng)用按照功能模塊進(jìn)行劃分成SERVICE,進(jìn)而把每個(gè)SERVICE固定在某些RAC節(jié)點(diǎn)上。屬于“面向應(yīng)用”層面的分散負(fù)載。 |
|