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

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

軟件下載吧

當(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)

主站蜘蛛池模板: 久久免费视频在线观看 | 一级毛片成人午夜 | 国产成人无精品久久久久国语 | 精品久久久久久久九九九精品 | 久久爱www成人 | 久草视频网站 | 亚洲高清免费视频 | 一级毛片免费视频观看 | 欧美在线一 | 欧美色欧 | 成人国产在线观看 | 亚洲七七久久精品中文国产 | 男女午夜免费视频 | 欧洲一级毛片 | 免费在线观看的毛片 | 偷拍视频一区在线观看 | 美国毛片在线观看 | 亚洲美女视频网 | 三级中文字幕 | 久久er热这里只有精品免费 | 国产伦码精品一区二区 | 2021精品国产品免费观看 | 三级黄色毛片网站 | 成人免费视频在线看 | 国产精品久久久久免费a∨ 国产精品久久久久免费视频 | 国产91九色刺激露脸对白 | 亚洲精品第一区二区在线 | 综合自拍亚洲综合图区美腿丝袜 | 日韩一区二区在线免费观看 | 国产成人香蕉久久久久 | 久久久国产精品免费看 | 韩国免费a级毛片 | 久久久久久久国产精品影院 | 日韩一区二区视频在线观看 | 亚洲精品成人一区二区aⅴ 亚洲精品成人一区二区www | 久久99精品九九九久久婷婷 | 玖玖这里只有精品 | 久久99精品久久久久久秒播 | 亚洲高清色 | 一二三中文乱码亚洲乱码 | 国产91页|