日韩小视频-日韩久久一区二区三区-日韩久久一级毛片-日韩久久久精品中文字幕-国产精品亚洲精品影院-国产精品亚洲欧美云霸高清

下載吧 - 綠色安全的游戲和軟件下載中心

軟件下載吧

當(dāng)前位置:軟件下載吧 > 技術(shù)開(kāi)發(fā) > 數(shù)據(jù)庫(kù) > postgresql流復(fù)制原理以及流復(fù)制和邏輯復(fù)制的區(qū)別說(shuō)明

postgresql流復(fù)制原理以及流復(fù)制和邏輯復(fù)制的區(qū)別說(shuō)明

時(shí)間:2024-02-13 10:22作者:下載吧人氣:36

流復(fù)制的原理:

物理復(fù)制也叫流復(fù)制,流復(fù)制的原理是主庫(kù)把WAL發(fā)送給備庫(kù),備庫(kù)接收WAL后,進(jìn)行重放。

邏輯復(fù)制的原理:

邏輯復(fù)制也是基于WAL文件,在邏輯復(fù)制中把主庫(kù)稱為源端庫(kù),備庫(kù)稱為目標(biāo)端數(shù)據(jù)庫(kù),源端數(shù)據(jù)庫(kù)根據(jù)預(yù)先指定好的邏輯解析規(guī)則對(duì)WAL文件進(jìn)行解析,把DML操作解析成一定的邏輯變化信息(標(biāo)準(zhǔn)SQL語(yǔ)句),源端數(shù)據(jù)庫(kù)把標(biāo)準(zhǔn)SQL語(yǔ)句發(fā)給目標(biāo)端數(shù)據(jù)庫(kù),目標(biāo)端數(shù)據(jù)庫(kù)接收到之后進(jìn)行應(yīng)用,從而實(shí)現(xiàn)數(shù)據(jù)同步。

流復(fù)制和邏輯復(fù)制的區(qū)別:

流復(fù)制主庫(kù)上的事務(wù)提交不需要等待備庫(kù)接收到WAL文件后的確認(rèn),邏輯復(fù)制相反。

流復(fù)制要求主備庫(kù)的大版本一致,邏輯復(fù)制可以跨大版本的數(shù)據(jù)同步,也可以實(shí)現(xiàn)異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步。

流復(fù)制的主庫(kù)可讀寫(xiě),從庫(kù)只允許讀,邏輯復(fù)制的目標(biāo)端數(shù)據(jù)庫(kù)要求可讀寫(xiě)

流復(fù)制是對(duì)實(shí)例級(jí)別的復(fù)制(整個(gè)postgresql數(shù)據(jù)庫(kù)),邏輯復(fù)制是選擇性的復(fù)制一些表,所以是對(duì)表級(jí)別的復(fù)制。

流復(fù)制有主庫(kù)的DDL、DML操作,邏輯復(fù)制只有DML操作。

補(bǔ)充:PostgreSQL 同步流復(fù)制原理和代碼淺析

背景

數(shù)據(jù)庫(kù)ACID中的持久化如何實(shí)現(xiàn)

數(shù)據(jù)庫(kù)ACID里面的D,持久化。 指的是對(duì)于用戶來(lái)說(shuō)提交的事務(wù),數(shù)據(jù)是可靠的,即使數(shù)據(jù)庫(kù)crash了,在硬件完好的情況下,也能恢復(fù)回來(lái)。

PostgreSQL是怎么做到的呢,看一幅圖,畫(huà)得比較丑,湊合看吧。

假設(shè)一個(gè)事務(wù),對(duì)數(shù)據(jù)庫(kù)做了一些操作,并且產(chǎn)生了一些臟數(shù)據(jù),首先這些臟數(shù)據(jù)會(huì)在數(shù)據(jù)庫(kù)的shared buffer中。

同時(shí),產(chǎn)生這些臟數(shù)據(jù)的同時(shí)也會(huì)產(chǎn)生對(duì)應(yīng)的redo信息,產(chǎn)生的REDO會(huì)有對(duì)應(yīng)的LSN號(hào)(你可以理解為REDO 的虛擬地址空間的一個(gè)唯一的OFFSET,每一筆REDO都有),這個(gè)LSN號(hào)也會(huì)記錄到shared buffer中對(duì)應(yīng)的臟頁(yè)中。

walwriter是負(fù)責(zé)將wal buffer flush到持久化設(shè)備的進(jìn)程,同時(shí)它會(huì)更新一個(gè)全局變量,記錄已經(jīng)flush的最大的LSN號(hào)。

bgwriter是負(fù)責(zé)將shared buffer的臟頁(yè)持久化到持久化設(shè)備的進(jìn)程,它在flush時(shí),除了要遵循LRU算法之外,還要通過(guò)LSN全局變量的比對(duì),來(lái)保證臟頁(yè)對(duì)應(yīng)的REDO記錄已經(jīng)flush到持久化設(shè)備了,如果發(fā)現(xiàn)還對(duì)應(yīng)的REDO沒(méi)有持久化,會(huì)觸發(fā)WAL writer去flush wal buffer。 (即確保日志比臟數(shù)據(jù)先落盤(pán))

當(dāng)用戶提交事務(wù)時(shí),也會(huì)產(chǎn)生一筆提交事務(wù)的REDO,這筆REDO也攜帶了LSN號(hào)。backend process 同樣需要等待對(duì)應(yīng)LSN flush到磁盤(pán)后才會(huì)返回給用戶提交成功的信號(hào)。(保證日志先落盤(pán),然后返回給用戶)

數(shù)據(jù)庫(kù)同步復(fù)制原理淺析

同步流復(fù)制,即保證standby節(jié)點(diǎn)和本地節(jié)點(diǎn)的日志雙雙落盤(pán)。

PostgreSQL使用另一組全局變量,記錄同步流復(fù)制節(jié)點(diǎn)已經(jīng)接收到的XLOG LSN,以及已經(jīng)持久化的XLOG LSN。

用戶在發(fā)起提交請(qǐng)求后,backend process除了要判斷本地wal有沒(méi)有持久化,同時(shí)還需要判斷同步流復(fù)制節(jié)點(diǎn)的XLOG有沒(méi)有接收到或持久化(通過(guò)synchronous_commit參數(shù)控制)。

如果同步流復(fù)制節(jié)點(diǎn)的XLOG還沒(méi)有接收或持久化,backend process會(huì)進(jìn)入等待狀態(tài)。

數(shù)據(jù)庫(kù)同步復(fù)制代碼淺析

對(duì)應(yīng)的代碼和解釋如下:

CommitTransaction @ src/backend/access/transam/xact.c
RecordTransactionCommit @ src/backend/access/transam/xact.c

標(biāo)簽[db:關(guān)鍵字]

相關(guān)下載

查看所有評(píng)論+

網(wǎng)友評(píng)論

網(wǎng)友
您的評(píng)論需要經(jīng)過(guò)審核才能顯示

熱門閱覽

最新排行

公眾號(hào)

主站蜘蛛池模板: 亚洲精品国产第一区二区多人 | 欧美69视频 | 女人张开双腿让男人 | 日韩特级| 国产精品亚洲精品久久成人 | 成人欧美一区二区三区在线 | 亚洲第一狼人区 | 国产在线精品一区二区三区 | 97夜夜操 | 日韩一级a毛片欧美一级 | 国产欧美日本亚洲精品五区 | 日韩久久一区二区三区 | 国产一区二区播放 | 日韩精品一区二区三区免费视频 | 国产精品久久免费 | 久久国产精品免费看 | 草草影院在线播放 | 日本www在线播放 | 米奇888在线播放欧美 | 国产偷自拍 | 久久毛片网 | 中文字幕在线看片成人 | 国产一级特黄特色aa毛片 | 成人国产第一区在线观看 | 中文国产成人精品久久一区 | 亚洲欧美久久一区二区 | 亚洲在线视频一区 | 日本成人免费在线 | 日韩欧美在| 国产精品久久久久影视不卡 | 国产大尺度福利视频在线观看 | 国产成人久久精品推最新 | 欧美一级毛片欧美大尺度一级毛片 | 国产最新精品 | 男女午夜爱爱久久无遮挡 | 国产成人免费片在线观看 | 网站免费满18成年在线观看 | 最近手机高清中文字幕大全7 | 国产欧美日韩亚洲 | 日韩国产免费 | 亚洲人成在线观看 |