欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

postgresql synchronous_commit參數(shù)的用法介紹

 更新時(shí)間:2020年12月30日 15:47:43   作者:peiybpeiyb  
這篇文章主要介紹了postgresql synchronous_commit參數(shù)的用法介紹,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

synchronous_commit

指定在命令返回”success”指示給客戶端之前,一個(gè)事務(wù)是否需要等待 WAL 記錄被寫入磁盤。

合法的值是{local,remote_write,remote_apply,on,off}

默認(rèn)的并且安全的設(shè)置是on。

不同于fsync,將這個(gè)參數(shù)設(shè)置為off不會(huì)產(chǎn)生數(shù)據(jù)庫不一致性的風(fēng)險(xiǎn):一個(gè)操作系統(tǒng)或數(shù)據(jù)庫崩潰可能會(huì)造成一些最近據(jù)說已提交的事務(wù)丟失,但數(shù)據(jù)庫狀態(tài)是一致的,就像這些事務(wù)已經(jīng)被干凈地中止。因此,當(dāng)性能比完全確保事務(wù)的持久性更重要時(shí),關(guān)閉synchronous_commit可以作為一個(gè)有效的代替手段。

這個(gè)參數(shù)可以隨時(shí)被修改;任何一個(gè)事務(wù)的行為由其提交時(shí)生效的設(shè)置決定。因此,可以同步提交一些事務(wù),同時(shí)異步提交其他事務(wù)。例如,當(dāng)默認(rèn)是相反時(shí),實(shí)現(xiàn)一個(gè)單一多語句事務(wù)的異步提交,在事務(wù)中發(fā)出SET LOCAL synchronous_commit TO OFF。

單實(shí)例環(huán)境

on:

當(dāng)數(shù)據(jù)庫提交事務(wù)時(shí),wal先寫入 wal buffer 再寫入 wal 日志文件,設(shè)置成on表示提交事務(wù)時(shí)需等待本地wal寫入wal日志后才向客戶端返回成功。

on 為默認(rèn)設(shè)置,數(shù)據(jù)庫非常安全,但性能有所損耗。

off:

當(dāng)數(shù)據(jù)庫提交事務(wù)時(shí)不需要等待本地 wal buffer 寫入 wal 日志,隨即向客戶端返回成功,設(shè)置成off會(huì)給數(shù)據(jù)庫帶來一點(diǎn)風(fēng)險(xiǎn):數(shù)據(jù)庫宕機(jī)時(shí)最新提交的少量事務(wù)可能丟失,數(shù)據(jù)庫重啟后會(huì)認(rèn)為這些事務(wù)異常終止,會(huì)rollback。

適用對(duì)數(shù)據(jù)庫準(zhǔn)確性要求不高同時(shí)追求數(shù)據(jù)庫性能的的場景。

local:

local含義和on類似,表示提交事務(wù)時(shí)需要等待本地wal寫入后才向客戶端返回成功。

流復(fù)制環(huán)境

on:

表示流復(fù)制主庫提交事務(wù)時(shí),需等待備庫接收主庫發(fā)送的wal日志流并寫入wal文件,之后才向客戶端返回成功,簡單的說on表示本地wal已落盤,備庫的wal也已落盤,有兩份持久化的wal,但備庫此時(shí)還沒有完成重做。

這個(gè)選項(xiàng)帶來的事務(wù)響應(yīng)時(shí)間較高。

remote_write:

表示流復(fù)制主庫提交事務(wù)時(shí),需等待備庫接收主庫發(fā)送的wal日志流并寫入備節(jié)點(diǎn)操作系統(tǒng)緩存中,之后向客戶端返回成功,這種情況下備庫出現(xiàn)異常關(guān)閉時(shí)不會(huì)有已傳送的wal日志丟失風(fēng)險(xiǎn),但備庫操作系統(tǒng)異常宕機(jī)就有已傳送的wal丟失風(fēng)險(xiǎn)了,此時(shí)wal可能還沒有完全寫入備節(jié)點(diǎn)wal文件中,簡單的說 remote_write 表示本地wal已落盤,備庫的wal還在備庫操作系統(tǒng)緩存中,也就是說只有一份持久化的wal。

這個(gè)選項(xiàng)帶來的事務(wù)響應(yīng)時(shí)間較低。

remote_apply:

表示流復(fù)制主庫提交事務(wù)時(shí),需等待備庫接收主庫發(fā)送的wal流并寫入wal文件,同時(shí)備庫已經(jīng)完成重做,之后才向客戶端返回成功,簡單的說remote_apply 表示本地wal已落盤,備庫wal已落盤并且已經(jīng)完成重做,這個(gè)設(shè)置保證了擁有兩份持久化的wal,同時(shí)備庫也已經(jīng)完成了重做。

這個(gè)選項(xiàng)帶來的事務(wù)響應(yīng)時(shí)間最高。

補(bǔ)充:postgresql wal日志部分參數(shù)

fsync

fsync :控制wal日志刷新是否開啟刷新到磁盤,此參數(shù)控制wal_sync_method參數(shù)的刷新方法,如果fsync為off,則wal_sync_method的方法是沒有意義的,

如果沒開啟這個(gè)參數(shù),則可能由于wal日志塊沒有刷新到磁盤永久存儲(chǔ)而導(dǎo)致故障發(fā)生后實(shí)例出現(xiàn)塊折斷(oracle稱其為block curruption)

wal_sync_method

wal_sync_method :wal日志刷新方法,可選值為open_datasync/fdatasync/fsync/fsync_writethrough/open_sync

linux系統(tǒng)默認(rèn)為fdatasync,以open開頭的在某些系統(tǒng)上不支持

wal_buffers

wal_buffers :wal緩沖區(qū),默認(rèn)為-1,大小為1/32的shared_buffer,最小不少于64k,最大不大于一個(gè)wal_segment(默認(rèn)16M大小),一般保持默認(rèn)即可,因?yàn)檫^了wal_writer_delay(默認(rèn)200ms)總會(huì)刷新清空此緩存,設(shè)置太大了也用不上.

wal_writer_delay

wal_writer_delay:前面已經(jīng)說過,這有點(diǎn)類似oracle和mysql的1s定時(shí)寫日志策略,每隔這么長時(shí)間就會(huì)刷wal日志緩沖區(qū)的數(shù)據(jù),然后sleep,到點(diǎn)后再刷,如此循環(huán)往復(fù).

commit_delay

commit_delay :提交的延遲時(shí)間,如果設(shè)置了此參數(shù),則會(huì)commit后延遲一段時(shí)間再進(jìn)行提交,此機(jī)制可以合并其他事務(wù)進(jìn)而一起進(jìn)行組提交,不過合并的事務(wù)數(shù)是有限制的,要至少有commit_siblings參數(shù)個(gè)事務(wù)等待提交的時(shí)候才會(huì)延遲,所有當(dāng)有大量事務(wù)的時(shí)候會(huì)延遲,而如果事務(wù)很稀少就不會(huì)再被延遲了.

commit_siblings

commit_siblings :組提交個(gè)數(shù)的最少個(gè)數(shù),此參數(shù)上面已經(jīng)進(jìn)行說明

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • 在Linux系統(tǒng)上安裝PostgreSQL數(shù)據(jù)庫

    在Linux系統(tǒng)上安裝PostgreSQL數(shù)據(jù)庫

    這篇文章介紹了在Linux系統(tǒng)上安裝PostgreSQL數(shù)據(jù)庫的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-03-03
  • postgresql高級(jí)應(yīng)用之合并單元格的思路詳解

    postgresql高級(jí)應(yīng)用之合并單元格的思路詳解

    這篇文章主要介紹了postgresql高級(jí)應(yīng)用之合并單元格,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-05-05
  • postgresql數(shù)據(jù)庫使用說明_實(shí)現(xiàn)時(shí)間范圍查詢

    postgresql數(shù)據(jù)庫使用說明_實(shí)現(xiàn)時(shí)間范圍查詢

    這篇文章主要介紹了postgresql數(shù)據(jù)庫使用說明_實(shí)現(xiàn)時(shí)間范圍查詢,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • PostgreSQL數(shù)據(jù)庫時(shí)間類型相加減操作

    PostgreSQL數(shù)據(jù)庫時(shí)間類型相加減操作

    PostgreSQL提供了許多函數(shù),這些函數(shù)返回與當(dāng)前日期和時(shí)間相關(guān)的值,下面這篇文章主要給大家介紹了關(guān)于PostgreSQL數(shù)據(jù)庫時(shí)間類型相加減操作的相關(guān)資料,需要的朋友可以參考下
    2023-10-10
  • PostgreSQL之分區(qū)表(partitioning)

    PostgreSQL之分區(qū)表(partitioning)

    通過合理的設(shè)計(jì),可以將選擇一定的規(guī)則,將大表切分多個(gè)不重不漏的子表,這就是傳說中的partitioning。比如,我們可以按時(shí)間切分,每天一張子表,比如我們可以按照某其他字段分割,總之了就是化整為零,提高查詢的效能
    2016-11-11
  • postgresql13主從搭建Ubuntu

    postgresql13主從搭建Ubuntu

    這篇文章主要為大家介紹了postgresql13主從搭建Ubuntu實(shí)現(xiàn)過程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • PostgreSQL?Log日志模塊原理及存在的問題詳解

    PostgreSQL?Log日志模塊原理及存在的問題詳解

    這篇文章主要給大家介紹了關(guān)于PostgreSQL?Log日志模塊原理及存在的問題的相關(guān)資料,先日志在我們開發(fā)過程中占據(jù)了一個(gè)非常重要的地位,是開發(fā)和運(yùn)維管理之間的橋梁,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-02-02
  • PostgreSQL如何查看事務(wù)所占有的鎖實(shí)操指南

    PostgreSQL如何查看事務(wù)所占有的鎖實(shí)操指南

    這篇文章主要給大家介紹了關(guān)于PostgreSQL如何查看事務(wù)所占有鎖的相關(guān)資料,文中通過代碼以及圖文介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用PostgreSQL具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-10-10
  • PostgreSQL使用JSONB存儲(chǔ)和查詢復(fù)雜的數(shù)據(jù)結(jié)構(gòu)

    PostgreSQL使用JSONB存儲(chǔ)和查詢復(fù)雜的數(shù)據(jù)結(jié)構(gòu)

    在PostgreSQL中,JSONB是一種二進(jìn)制格式的JSON數(shù)據(jù)類型,它允許你在數(shù)據(jù)庫中存儲(chǔ)和查詢復(fù)雜的JSON數(shù)據(jù)結(jié)構(gòu),本文給大家介紹了如何使用JSONB類型在PostgreSQL中存儲(chǔ)和查詢復(fù)雜的數(shù)據(jù)結(jié)構(gòu),需要的朋友可以參考下
    2024-04-04
  • 詳解PostgreSql數(shù)據(jù)庫對(duì)象信息及應(yīng)用

    詳解PostgreSql數(shù)據(jù)庫對(duì)象信息及應(yīng)用

    這篇文章主要介紹了PostgreSql數(shù)據(jù)庫對(duì)象信息及應(yīng)用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12

最新評(píng)論