国产无码免费,人妻口爆,国产V在线,99中文精品7,国产成人无码AA精品一,制度丝袜诱惑av,久久99免费麻辣视频,蜜臀久久99精品久久久久久酒店
        訂閱
        糾錯(cuò)
        加入自媒體

        14中連接參數(shù)target_session_attrs增強(qiáng)

        2021-11-30 10:49
        yzsDBA
        關(guān)注

        PostgreSQL 14中連接參數(shù)target_session_attrs增強(qiáng)

        本文討論P(yáng)ostgreSQL 14數(shù)據(jù)庫連接參數(shù)target_session_attrs增強(qiáng)的功能,并解釋該功能背后的歷史、如何使用它以及它提供的各種好處。

        背景

        很多PG客戶端程序使用C客戶端libpq庫訪問數(shù)據(jù)庫。libpq提供了一系列函數(shù),允許連接PG后臺(tái)服務(wù)并將查詢傳送過去,同時(shí)還可以接收查詢返回的結(jié)果。

        通過libpq,PG支持一個(gè)連接字符串,指定多個(gè)host+port。依次嘗試每個(gè)host+port直到成功建立連接。

        PG10中引入指定多個(gè)hosts的功能。同時(shí)增加了參數(shù)target_session_attrs,允許指定連接的后臺(tái)server類型。

        支持下面的參數(shù)值:

        image.png

        從PG11開始,F(xiàn)ujitsu提供了額外的參數(shù)值,不僅要滿足其他連接類型,還要提高內(nèi)部效率,以驗(yàn)證參數(shù)并建立連接。因此與PG社區(qū)開始了漫長的審查、咨詢、改進(jìn)的過程。涉及:

        多名開發(fā)人員;許多補(bǔ)丁版本和補(bǔ)丁集更改;社區(qū)許多成員的反饋,有時(shí)會(huì)有不同意見和想法;一些成員對(duì)附加功能的請(qǐng)求;提交者本人的最終改進(jìn)、調(diào)整與簡化。

        最終libpq增強(qiáng)功能在PG14提交了。

        功能概述

        PG14中target_session_attrs值如下,高亮顯示的是新值:

        image.png

        注意,由于default_transaction_read_only設(shè)置成on,PG的server可以是只讀但不能是hot standby模式。

        支持的客戶端

        任何使用libpq庫的客戶端都能夠使用target_session_attrs以及此處描述的改進(jìn)的功能。支持psycopg2(python驅(qū)動(dòng))、psqlODBC(c 語言接口的驅(qū)動(dòng))。但是不包括JDBC驅(qū)動(dòng)和NpgSql。JDBC支持targetServerType提供類似的功能,允許的值有primary/secondary/preferSecondary。NpgSql目前沒有類似功能。

        連接性能的提升

        target_session_attrs增加了新值,當(dāng)連接到PG14或之后的版本時(shí),性能會(huì)有所提升。通過使用與會(huì)話狀態(tài)相關(guān)的配置變量來實(shí)現(xiàn):

        image.png

        服務(wù)器在成功連接時(shí)直接向客戶端報(bào)告這些信息,節(jié)省了額外的網(wǎng)絡(luò)往返時(shí)間以確定會(huì)話狀態(tài)。因此連接到舊版本服務(wù)時(shí),會(huì)發(fā)出SHOW和SELECT查詢以檢測會(huì)話只讀或熱備狀態(tài)。注意,若服務(wù)在會(huì)話期間被提升成主,則in_h(yuǎn)ot_standby也會(huì)報(bào)告給客戶端。

        案例

        Psql使用libpq,可以無需任何編碼測試target_session_attrs。下面顯示了嘗試連接2個(gè)可能的本地服務(wù)其中一個(gè)服務(wù)時(shí),使用不同target_session_attrs值的簡單例子。

        1、創(chuàng)建本地服務(wù)實(shí)例testdb1和testdb2(分別運(yùn)行在端庫5432和5433)

        $ pg_ctl -D ./testdb1 initdb

        $ pg_ctl -D ./testdb2 initdb

        $ pg_ctl -D ./testdb1 -o '-p 5432' -l testdb_1.log start

        $ pg_ctl -D ./testdb2 -o '-p 5433' -l testdb_2.log start

        2、嘗試連接僅接受只讀事務(wù)的服務(wù)

        $ psql "host=localhost,localhost port=5432,5433 dbname=postgres target_session_attrs=read-only"

        psql: error: connection to server at "localhost" (::1), port 5432 failed: session is not read-only

        connection to server at "localhost" (::1), port 5433 failed: session is not read-only

        連接失敗,因?yàn)?個(gè)實(shí)例僅接受讀寫事務(wù)。

        3、改變testdb2使其僅接受只讀事務(wù),更改testdb2/postgresql.conf添加default_transaction_read_only=on并重啟。

        $ pg_ctl -D ./testdb2 -o '-p 5433' -l testdb_2.log restart

        4、嘗試連接到只讀server

        $ psql "host=localhost,localhost port=5432,5433 dbname=postgres target_session_attrs=read-only"

        psql (14devel)

        Type "help" for help.

        postgres=# show

        port;

        port

        ------

        5433

        (1 row)

        5、嘗試連接hot standby的server

        $ psql "host=localhost,localhost port=5432,5433 dbname=postgres target_session_attrs=standby"

        psql: error: connection to server at "localhost" (::1), port 5432 failed: server is not in hot standby mode

        connection to server at "localhost" (::1), port 5433 failed: server is not in hot standby mode

        連接失敗,因?yàn)闆]有hot standby模式的實(shí)例

        6、嘗試連接primary server

        $ psql "host=localhost,localhost port=5432,5433 dbname=postgres target_session_attrs=primary"

        psql (14devel)

        Type "help" for help.

        postgres=# show

        port;

        port

        ------

        5432

        (1 row)

        7、連接到一個(gè)server,最好是處于熱備模式的

        $ psql "host=localhost,localhost port=5432,5433 dbname=postgres target_session_attrs=prefer-standby"

        psql (14devel)

        Type "help" for help.

        postgres=# show

        port;

        port

        ------

        5432

        (1 row)

        總結(jié)

        支持的target_session_attrs新值,允許客戶端選擇需要的目標(biāo)服務(wù)連接時(shí)進(jìn)行更精細(xì)的粒度,并協(xié)助多主機(jī)連接功能。還提供了一種基本的擴(kuò)展形式,例如允許將只讀請(qǐng)求重定向到備服務(wù),以減少主服務(wù)的負(fù)載。最后新值可以允許多主機(jī)連接字符串更好地與某些故障切換解決方案一起公眾,以重新連接到可用的服務(wù)。

        聲明: 本文由入駐維科號(hào)的作者撰寫,觀點(diǎn)僅代表作者本人,不代表OFweek立場。如有侵權(quán)或其他問題,請(qǐng)聯(lián)系舉報(bào)。

        發(fā)表評(píng)論

        0條評(píng)論,0人參與

        請(qǐng)輸入評(píng)論內(nèi)容...

        請(qǐng)輸入評(píng)論/評(píng)論長度6~500個(gè)字

        您提交的評(píng)論過于頻繁,請(qǐng)輸入驗(yàn)證碼繼續(xù)

        • 看不清,點(diǎn)擊換一張  刷新

        暫無評(píng)論

        暫無評(píng)論

          掃碼關(guān)注公眾號(hào)
          OFweek人工智能網(wǎng)
          獲取更多精彩內(nèi)容
          文章糾錯(cuò)
          x
          *文字標(biāo)題:
          *糾錯(cuò)內(nèi)容:
          聯(lián)系郵箱:
          *驗(yàn) 證 碼:

          粵公網(wǎng)安備 44030502002758號(hào)

          主站蜘蛛池模板: 静乐县| 91网站免费在线观看| 梁山县| 国产熟女精品| 湄潭县| 3p露脸在线播放| 沧源| 日本色导航| 新闻| AV天堂免费观看| 亚洲男人天堂网| 冀州市| xxx18国产| 中文字幕一区二区无码成人| 自拍偷拍视频网站| 熟女荡漾在线| 亚洲天堂无码| 91精品国产情侣高潮露脸| 内射自拍| 99在线免费视频| 丁香五月天激情网| 龙泉市| 丁香婷婷中文字幕| 健康| 在线色综合| 国产,精品,无码,丝袜| 国产乱子伦真实精品| 亚洲老熟女@TubeumTV| 老熟女网站| 高碑店市| 91n在线观看| 成人永久在线| 无码人妻精品一区二区三区温州| 左贡县| 91超碰人人在线| 五月婷婷影院| 中文字幕日产乱码中| 亚洲色综合| 亚洲欧洲AV| 东京热大乱w姦| 午夜成人福利|