国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

postgresql四種邏輯復(fù)制的狀態(tài)

這篇具有很好參考價(jià)值的文章主要介紹了postgresql四種邏輯復(fù)制的狀態(tài)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

準(zhǔn)備

CreateCheckpoint,或者bgwriter啟動(dòng)時(shí),或者創(chuàng)建logicalreplicationslot時(shí)都會(huì)調(diào)用LogStandbySnapshot 記錄一個(gè)XLOG_RUNNING_XACTS類型的日志。日志中記錄了所有提交的事務(wù)的xid(HistoricSnapshot)

啟動(dòng)(SNAPBUILD_BUILDING_SNAPSHOT)

當(dāng)接收端讀到 XLOG_RUNNING_XACTS 時(shí),調(diào)用SnapBuildProcessRunningXacts開始記錄所有看到的日志,但此時(shí)只知道提交的事務(wù),不知道進(jìn)行中的事務(wù)。在沒有完整事務(wù)狀態(tài)的情況下,接收端是不能開始apply日志的。這時(shí)日志中記錄的 nextxid(1) 就是這之后再開啟事務(wù)時(shí)的最小事務(wù)號(hào)。
postgresql四種邏輯復(fù)制的狀態(tài),postgresql,postgresql,數(shù)據(jù)庫

組裝事務(wù)狀態(tài)(SNAPBUILD_FULL_SNAPSHOT)

當(dāng)接收端再收到 XLOG_RUNNING_XACTS 時(shí),如果發(fā)現(xiàn)nextxid(1)之前的日志都提交了,就證明當(dāng)前從日志收集過的事務(wù),已經(jīng)是全部在運(yùn)行的事務(wù)了,沒有不知道的事務(wù),此時(shí)事務(wù)狀態(tài)是完整的,但因?yàn)橹笆盏降姆鞘聞?wù)的 log 都人為丟棄了,不能對這些事務(wù) apply log,因?yàn)槭聞?wù)不完整,這時(shí)nextxid(2)記錄的就是之后再開啟事務(wù)的時(shí)的最小事務(wù)號(hào) 。
這時(shí)每次 apply 前要判斷,要 apply 的這個(gè)事務(wù)的xid是否在nextxid(2)之前,如果是之前的就不apply,之后的才apply(SnapBuildProcessChange)。
第一次apply的時(shí)候會(huì)記錄一個(gè)完整的HistoricSnapshot作為basesnapshot

postgresql四種邏輯復(fù)制的狀態(tài),postgresql,postgresql,數(shù)據(jù)庫

事務(wù)狀態(tài)已完整(SNAPBUILD_CONSISTENT)

當(dāng)接收端再收到 XLOG_RUNNING_XACTS 時(shí),如果發(fā)現(xiàn)nextxid(2)之前的日志都提交了,說明以后收到的 log一定可以 apply,不用再做上面的判斷了。
第一次到這個(gè)狀態(tài)時(shí)會(huì)寫一個(gè).snap文件
postgresql四種邏輯復(fù)制的狀態(tài),postgresql,postgresql,數(shù)據(jù)庫

新的事務(wù)提交日志(SnapBuildCommitTxn)

在每次處理事務(wù)提交日志時(shí),它會(huì)感知所有修改系統(tǒng)表的事務(wù),把它們加入新snapshot中(SnapBuildAddCommittedTxn),并把這個(gè)新的 snapshot 掛到所有事務(wù)的reorderbuffer中(SnapBuildDistributeNewCatalogSnapshot)。當(dāng)其它事務(wù)commit時(shí)(DecodeCommit),檢查reorder_buffer(ReorderBufferCommit),就會(huì) apply 這個(gè) snapshot (TeardownHistoricSnapshot + SetupHistoricSnapshot)文章來源地址http://www.zghlxwxcb.cn/news/detail-620525.html

到了這里,關(guān)于postgresql四種邏輯復(fù)制的狀態(tài)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【數(shù)據(jù)庫的四種隔離級(jí)別】

    在關(guān)系型數(shù)據(jù)庫中,隔離級(jí)別是指多個(gè)事務(wù)并發(fā)執(zhí)行時(shí),彼此之間的隔離程度。數(shù)據(jù)庫的四種隔離級(jí)別如下: 最低級(jí)別的隔離級(jí)別,一個(gè)事務(wù)可以讀取到另一個(gè)事務(wù)未提交的數(shù)據(jù),可能會(huì)出現(xiàn)臟讀、不可重復(fù)讀和幻讀等問題。 一個(gè)事務(wù)只能讀取到另一個(gè)事務(wù)已經(jīng)提交的數(shù)據(jù)

    2024年02月13日
    瀏覽(61)
  • 四種數(shù)據(jù)庫執(zhí)行腳本文件導(dǎo)入數(shù)據(jù)的方式

    mysql執(zhí)行sql腳本文件的方法: 1、在命令行輸入mysql -uroot -h10.235.5.55 -p’123456’ -P3306 F:helloniuzi.sql 2、在命令行輸入【source F:helloniuzi.sql】 mysql -uroot -h10.235.5.55 -p’123456’ -P3306 -e \\\"source test.sql \\\" test.log psql -Upostgres -dzxin -h10.235.5.55 -p6789 -f test.sql upgrade.log isql -Uzxin_smap -P’123456’

    2024年02月04日
    瀏覽(16)
  • postgresql|數(shù)據(jù)庫|MySQL數(shù)據(jù)庫向postgresql數(shù)據(jù)庫遷移的工具pgloader的部署和初步使用

    postgresql|數(shù)據(jù)庫|MySQL數(shù)據(jù)庫向postgresql數(shù)據(jù)庫遷移的工具pgloader的部署和初步使用

    MySQL數(shù)據(jù)庫和postgresql數(shù)據(jù)庫之間的差異并不多,這里的差異指的是對SQL語言的支持兩者并不大,但底層的東西差異是非常多的,例如,MySQL的innodb引擎概念,數(shù)據(jù)庫用戶管理,這些和postgresql相比是完全不同的(MySQL用戶就是用戶,沒有角色,postgresql有用戶,有角色,但差異不

    2024年02月14日
    瀏覽(36)
  • PostgreSQL16中的新增功能:雙向邏輯復(fù)制

    PostgreSQL16中的新增功能:雙向邏輯復(fù)制

    在這篇博客中, 我們將深入探討Postgres 16中引入的一些更高級(jí)的新功能 。為了更好地理解這些功能,讀者應(yīng)具備一些Linux、Postgres和SQL的基礎(chǔ)知識(shí),因?yàn)槲覀儗⑸钊胩接戇@些新功能并指導(dǎo)如何實(shí)現(xiàn)它們。 本博客以 在Ubuntu 23.04上運(yùn)行的PostgreSQL 16(開發(fā)版)為基礎(chǔ)進(jìn)行編寫 。首

    2024年01月17日
    瀏覽(26)
  • 數(shù)據(jù)庫事務(wù)的四種隔離級(jí)別

    事務(wù) 數(shù)據(jù)庫事務(wù)(簡稱:事務(wù))是數(shù)據(jù)庫管理系統(tǒng)執(zhí)行過程中的一個(gè)邏輯單元,由一個(gè)有限的數(shù)據(jù)庫操作序列構(gòu)成?!S基百科 簡而言之:一系列數(shù)據(jù)庫操作語句組成事務(wù)。 數(shù)據(jù)庫事務(wù)的隔離級(jí)別有四種: 讀未提交(Read Uncommitted):事務(wù)中的修改可以被其他事務(wù)讀取,

    2024年02月04日
    瀏覽(28)
  • mysql數(shù)據(jù)庫limit的四種用法

    mysql數(shù)據(jù)庫limit的四種用法

    mysql數(shù)據(jù)庫中l(wèi)imit子句可以被用于強(qiáng)制select語句返回指定的記錄數(shù)。limit接受一個(gè)或兩個(gè)數(shù)字參數(shù)。參數(shù)必須是一個(gè)整數(shù)常量。如果給定兩個(gè)參數(shù),第一個(gè)參數(shù)指定第一個(gè)返回記錄行的偏移量,第二個(gè)參數(shù)指定返回記錄行的最大數(shù)目;若果給定一個(gè)參數(shù),則表示回記錄行的最大

    2024年02月08日
    瀏覽(30)
  • 數(shù)據(jù)庫樹形結(jié)構(gòu)怎么查 四種方法解決

    1.使SQL實(shí)現(xiàn)樹形查詢 1.1 樹形結(jié)構(gòu)固定,即固定幾層結(jié)構(gòu),可以采用數(shù)據(jù)庫連接查詢,這里以兩張表為例: 2.2 樹形結(jié)構(gòu)可能變化,采用數(shù)據(jù)庫的遞歸進(jìn)行查詢 2.Java代碼實(shí)現(xiàn) 1.遞歸查詢數(shù)據(jù)庫 2.一次性全部查詢出來,用Java代碼實(shí)現(xiàn)數(shù)據(jù)的樹形分解 注:以上Java代碼粘貼自網(wǎng)絡(luò)

    2024年02月14日
    瀏覽(18)
  • 【數(shù)據(jù)庫】什么是 PostgreSQL?開源數(shù)據(jù)庫系統(tǒng)

    【數(shù)據(jù)庫】什么是 PostgreSQL?開源數(shù)據(jù)庫系統(tǒng)

    PostgreSQL 是一個(gè)開源的對象關(guān)系數(shù)據(jù)庫系統(tǒng),本文,我們將討論 PostgreSQL、它的用途和好處。 PostgreSQL 是由 PostgreSQL Global Development Group 開發(fā)的高級(jí) 開源關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS) 。它作為 POSTGRES 項(xiàng)目的一部分于 1986 年在加州大學(xué)伯克利分校啟動(dòng),它最初于 1996 年 7 月 8 日發(fā)布

    2023年04月08日
    瀏覽(32)
  • postgresql數(shù)據(jù)庫定時(shí)備份到遠(yuǎn)程數(shù)據(jù)庫

    postgresql數(shù)據(jù)庫定時(shí)備份到遠(yuǎn)程數(shù)據(jù)庫

    1.老規(guī)矩,服務(wù)器目錄結(jié)構(gòu): conf目錄無內(nèi)容 profile: 其中: 最后一行 export PGPASSWORD=‘root’ 是需要備份的數(shù)據(jù)庫的密碼,因?yàn)橹苯佑?pg_dump 命令備份需要輸入密碼交互,而我們需要達(dá)到自動(dòng)備份,所以借助這種方式不需要輸入密碼 docker-compose.yml: 啟動(dòng)容器: 然后再data目錄下面

    2024年02月09日
    瀏覽(23)
  • PostgreSQL Linux操作PostgreSQL數(shù)據(jù)庫

    PostgreSQL教程 菜鳥教程:https://www.runoob.com/postgresql/postgresql-tutorial.html 登錄PG數(shù)據(jù)庫:psql -U 用戶名(U需要大寫) 登錄PG數(shù)據(jù)庫(指定主機(jī)、端口,并進(jìn)入指定數(shù)據(jù)庫): psql -U 用戶名 -h 127.0.0.1 -p 5432 -d 數(shù)據(jù)庫名 -U 登錄的用戶名 -h 連接的主機(jī)(默認(rèn)127.0.0.1,可替換成遠(yuǎn)程主機(jī)

    2024年02月11日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包