Oracle數(shù)據(jù)庫高可用之DG+RAC詳解
一、DG的概念和原理
Oracle Data Guard是Oracle數(shù)據(jù)庫的一種高可用性解決方案,它通過在主數(shù)據(jù)庫和一個(gè)或多個(gè)輔助數(shù)據(jù)庫之間自動(dòng)復(fù)制和同步數(shù)據(jù),來實(shí)現(xiàn)數(shù)據(jù)庫的持續(xù)可用性和災(zāi)難恢復(fù)能力。
以下是Oracle Data Guard的工作原理
- 主數(shù)據(jù)庫(Primary Database):主數(shù)據(jù)庫是應(yīng)用程序連接和執(zhí)行事務(wù)的數(shù)據(jù)庫。在主數(shù)據(jù)庫中進(jìn)行的所有更改都會(huì)被記錄在歸檔日志中。
- 輔助數(shù)據(jù)庫(StandBy database):輔助數(shù)據(jù)庫是通過復(fù)制主數(shù)據(jù)庫的歸檔日志來保持與主數(shù)據(jù)庫同步的數(shù)據(jù)庫。輔助數(shù)據(jù)庫可以是物理備庫或邏輯備庫。
物理備份
主數(shù)據(jù)庫將歸檔日志傳輸給輔助數(shù)據(jù)庫。
這可以通過物理方式(通過網(wǎng)絡(luò)傳輸二進(jìn)制歸檔日志)進(jìn)行
DG保護(hù)模式
| 模式 | 數(shù)據(jù)丟失風(fēng)險(xiǎn) | 傳輸 | 特點(diǎn) |
| 最大保護(hù) | 零數(shù)據(jù)丟失 | 同步 | 只有備考確認(rèn)收到日志,主庫才進(jìn)行下一步操作 |
| 最大可用 | 零數(shù)據(jù)丟失 | 同步 | 與最大保護(hù)不同,最大可用在日志傳輸超時(shí)和備庫收到日志后都會(huì)進(jìn)行下一步操作 |
| 最大性能 | 有少量數(shù)據(jù)丟失風(fēng)險(xiǎn) | 異步 | 主數(shù)據(jù)庫不等待備用數(shù)據(jù)庫確認(rèn) |

- LGWR進(jìn)程:將日志寫入寫入在線日志中,
- LNSN進(jìn)程:將在線日志傳輸?shù)絺鋷?/li>
- ARcn:對(duì)在線日志進(jìn)行歸檔
- RFS進(jìn)程:遠(yuǎn)程接數(shù)據(jù),連接備庫的日志
- MRP進(jìn)程:將日志應(yīng)用恢復(fù)到備用數(shù)據(jù)庫
業(yè)務(wù)中主庫一般用作更新,備庫一般用作讀,查詢操作。
二、RAC原理
Oracle RAC(Real Application Clusters)是一種高可用性和可伸縮性的數(shù)據(jù)庫解決方案,它基于共享磁盤架構(gòu),允許多個(gè)服務(wù)器共享同一個(gè)數(shù)據(jù)庫實(shí)例。
以下是Oracle RAC的工作原理:
- 共享存儲(chǔ):Oracle RAC使用共享存儲(chǔ),將數(shù)據(jù)庫文件存儲(chǔ)在共享的磁盤陣列上。這使得多個(gè)服務(wù)器可以同時(shí)訪問和修改數(shù)據(jù)庫文件。
- 共享緩存:Oracle RAC使用共享緩存(Shared Cache),也稱為共享SGA(System Global Area),來緩存數(shù)據(jù)和SQL語句。每個(gè)服務(wù)器都可以訪問并更新共享緩存,這樣可以提高性能和并發(fā)能力。
- 共享連接:Oracle RAC使用公共網(wǎng)絡(luò)連接來提供對(duì)數(shù)據(jù)庫的訪問??蛻舳丝梢酝ㄟ^網(wǎng)絡(luò)連接到任意一個(gè)服務(wù)器節(jié)點(diǎn),然后通過Oracle Clusterware將請(qǐng)求路由到運(yùn)行數(shù)據(jù)庫實(shí)例的節(jié)點(diǎn)。
- 數(shù)據(jù)庫實(shí)例:Oracle RAC包含多個(gè)數(shù)據(jù)庫實(shí)例,每個(gè)實(shí)例都運(yùn)行在獨(dú)立的服務(wù)器上。每個(gè)實(shí)例都有自己的SGA和后臺(tái)進(jìn)程,但它們共享同一個(gè)數(shù)據(jù)庫。
- 數(shù)據(jù)共享:共享存儲(chǔ)和共享緩存使得所有的數(shù)據(jù)庫實(shí)例都可以訪問相同的數(shù)據(jù)。當(dāng)一個(gè)實(shí)例修改數(shù)據(jù)時(shí),其他實(shí)例可以立即看到這些修改。
- 數(shù)據(jù)同步:Oracle RAC使用高速的內(nèi)部網(wǎng)絡(luò)來保持所有數(shù)據(jù)庫實(shí)例之間的數(shù)據(jù)同步。當(dāng)一個(gè)實(shí)例修改數(shù)據(jù)時(shí),這些修改會(huì)被寫入共享存儲(chǔ),并通過內(nèi)部網(wǎng)絡(luò)傳播到其他實(shí)例,以確保數(shù)據(jù)的一致性。
- 故障轉(zhuǎn)移:如果一個(gè)數(shù)據(jù)庫實(shí)例故障,Oracle Clusterware會(huì)檢測(cè)到這個(gè)故障,并將數(shù)據(jù)庫會(huì)話和工作負(fù)載遷移到其他正常運(yùn)行的實(shí)例上,實(shí)現(xiàn)高可用性和容錯(cuò)能力。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
oracle?指定類型和指定位數(shù)創(chuàng)建序列號(hào)的代碼詳解
這篇文章主要介紹了oracle?指定類型和指定位數(shù)創(chuàng)建序列號(hào),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05
Oracle數(shù)值型函數(shù)之EXP(y)函數(shù)詳解
本文主要介紹了Oracle數(shù)值型函數(shù)之EXP(y)函數(shù)詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-07-07
oracle 11g的安裝注意事項(xiàng)總結(jié)
這篇文章主要給大家介紹了關(guān)于oracle 11g的安裝注意事項(xiàng),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
Oracle數(shù)據(jù)庫將表數(shù)據(jù)轉(zhuǎn)儲(chǔ)為JSON格式文件的詳細(xì)步驟
這篇文章主要介紹了如何將Oracle數(shù)據(jù)庫表數(shù)據(jù)轉(zhuǎn)儲(chǔ)為JSON格式文件的詳細(xì)步驟,包括所需參數(shù)、數(shù)據(jù)庫連接、數(shù)據(jù)獲取和保存JSON文件等,需要的朋友可以參考下2025-11-11
oracle表空間不足ORA-01653的問題:?unable?to?extend?table
這篇文章主要介紹了oracle表空間不足ORA-01653:?unable?to?extend?table的問題?,出現(xiàn)這種表空間不足的問題一般有兩種情況:一種是表空間的自動(dòng)擴(kuò)展功能沒有打開,另一種確實(shí)是表空間確實(shí)不夠用了,已經(jīng)達(dá)到了擴(kuò)展的極限,本文給大家分享解決方法,需要的朋友參考下2022-08-08
ORACLE中dbms_output.put_line輸出問題的解決過程
最近用dbms_output.put_line來輸出變量的一些信息,卻總是看不到結(jié)果,所以這篇文章主要給大家介紹了關(guān)于ORACLE中dbms_output.put_line輸出問題的解決過程,需要的朋友可以參考下2022-06-06
oracle 12c創(chuàng)建可插拔數(shù)據(jù)庫(PDB)與用戶詳解
Oracle12c 中,增加了可插接數(shù)據(jù)庫的概念,即PDB,允許一個(gè)數(shù)據(jù)庫容器(CDB)承載多個(gè)可插拔數(shù)據(jù)庫(PDB)。下面這篇文章主要給大家介紹了利用oracle 12c創(chuàng)建可插拔數(shù)據(jù)庫(PDB)與用戶的相關(guān)資料,文中介紹的很詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。2017-02-02
Oracle查詢語句中rownum與rowid的不同之處分析
這篇文章主要介紹了Oracle查詢語句中rownum與rowid的不同之處分析,需要的朋友可以參考下2014-07-07
oracle統(tǒng)計(jì)時(shí)間段內(nèi)每一天的數(shù)據(jù)(推薦)
這篇文章主要介紹了oracle統(tǒng)計(jì)時(shí)間段內(nèi)每一天的數(shù)據(jù),需要的朋友可以參考下2018-03-03

