婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > PostgreSQL 流復(fù)制異步轉(zhuǎn)同步的操作

PostgreSQL 流復(fù)制異步轉(zhuǎn)同步的操作

熱門標(biāo)簽:重慶自動(dòng)外呼系統(tǒng)定制 打電話智能電銷機(jī)器人授權(quán) 合肥公司外呼系統(tǒng)運(yùn)營(yíng)商 地圖標(biāo)注和圖片名稱的區(qū)別 美容工作室地圖標(biāo)注 外呼調(diào)研系統(tǒng) 海豐有多少商家沒有地圖標(biāo)注 辦公外呼電話系統(tǒng) 漯河外呼電話系統(tǒng)

非常重要的synchronous_commit參數(shù)

流復(fù)制的同步方式,有主庫(kù)配置文件postgresql.conf,中的synchronous_commit控制著。所以理解該參數(shù)的配置十分重要。

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

參數(shù)值 說(shuō)明 優(yōu)點(diǎn) 缺點(diǎn)
on 或 local 當(dāng)事務(wù)提交時(shí),WAL先寫入WAL buffer 再寫到 WAL文件(落盤)中。設(shè)置為on表示提交事務(wù)時(shí)需要等待本地WAL最終落盤后,才向客戶端返回成功。 非常安全 數(shù)據(jù)庫(kù)性能有損耗
off 當(dāng)事務(wù)提交時(shí),不需要等待WAL先寫入WAL buffer 再寫到 WAL文件(落盤)中。 提升數(shù)據(jù)庫(kù)性能 數(shù)據(jù)庫(kù)宕機(jī)是最新提交的少量事務(wù)可能丟失

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

參數(shù)值 說(shuō)明 優(yōu)點(diǎn) 缺點(diǎn)
remote_write 當(dāng)主庫(kù)提交事務(wù)后,需等待備庫(kù)接收主庫(kù)發(fā)送的WAL日志流并寫入WAL buffer, 就向客戶端返回成功 只有主庫(kù)的WAL是落盤的 事務(wù)響應(yīng)時(shí)間快
on 當(dāng)主庫(kù)提交事務(wù)后,需等待備庫(kù)接收主庫(kù)發(fā)送的WAL日志流并寫入WAL buffer 以及寫入WAL文件, 就向客戶端返回成功 主、備庫(kù)WAL均落盤,有兩份持有化文件保護(hù) 事務(wù)響應(yīng)時(shí)間相對(duì)較慢
remote_apply 當(dāng)主庫(kù)提交事務(wù)后,需等待備庫(kù)接收主庫(kù)發(fā)送的WAL日志流并寫入WAL buffer 以及寫入WAL文件, 同時(shí)備庫(kù)apply之后, 就向客戶端返回成功 數(shù)據(jù)保護(hù)最好 影響事務(wù)性能

查看同步情況

在主庫(kù)執(zhí)行以下SQL , sync_state字段為async表示異步同步方式

postgres=# select usename , application_name , client_addr,sync_state from pg_stat_replication;
 usename | application_name | client_addr | sync_state 
---------+------------------+----------------+------------
 repuser | walreceiver | 192.168.56.102 | async
(1 row)

配置同步復(fù)制

主庫(kù)配置postgresql.conf文件

[postgres@pg01 data]$ vi postgresql.conf 
synchronous_commit = on
synchronous_standby_names = 'walreceiver'

synchronous_commit : 開篇提到的那個(gè)重要參數(shù)!

synchronous_standby_names: 這里的name填寫,剛剛查詢到的application_name。

重啟主庫(kù)服務(wù)

[root@pg01 PG_12_201909212]# service postgresql-12 restart
Stopping postgresql-12 service:    [ OK ]
Starting postgresql-12 service:    [ OK ]

再次查看主庫(kù)字典

postgres=# select usename , application_name , client_addr,sync_state from pg_stat_replication;
 usename | application_name | client_addr | sync_state 
---------+------------------+----------------+------------
 repuser | walreceiver | 192.168.56.102 | sync

數(shù)據(jù)保護(hù)測(cè)試

關(guān)閉備庫(kù)。模擬備庫(kù)宕機(jī)無(wú)法正常接收WAL

[root@pg02 ~]# service postgresql-12 stop
Stopping postgresql-12 service:    [ OK ]

主庫(kù)嘗試進(jìn)行DML操作

dong=# insert into t1 select * from t1;
Cancel request sent
WARNING: canceling wait for synchronous replication due to user request
DETAIL: The transaction has already committed locally, but might not have been replicated to the standby.
INSERT 0 8

由于備庫(kù)已關(guān)閉,無(wú)法接受從主庫(kù)傳來(lái)的WAL,根據(jù)同步規(guī)則,主庫(kù)需要一直等待主庫(kù)接收到WAL的消息。

手動(dòng)進(jìn)行了cancel, 數(shù)據(jù)庫(kù)報(bào)錯(cuò)。說(shuō)明在等待備庫(kù)reguest相應(yīng)。

所以,sync同步模式雖然可以很好的保護(hù)數(shù)據(jù),但同時(shí)也帶來(lái)了性能的影響,需慎重

補(bǔ)充:PostgreSQL 流復(fù)制數(shù)據(jù)同步檢查

如何分辨主、備

看進(jìn)程

主庫(kù) – walwriter

[root@pg01 PG_12_201909212]# ps -ef| grep wal
postgres 21157 21151 0 15:57 ?  00:00:00 postgres: walwriter         
postgres 21168 21151 0 15:57 ?  00:00:00 postgres: walsender repuser 192.168.56.102(38473) streaming 0/2A0001C0

備庫(kù) – walreceiver

[root@pg02 ~]# ps -ef | grep wal
postgres 13383 13369 0 14:08 ?  00:00:01 postgres: walreceiver streaming 0/2A0001C0   

函數(shù)方法

一句話判斷哪個(gè)是主庫(kù)、哪個(gè)是備庫(kù),返回的值:

f 為主庫(kù)

t 為備庫(kù)

postgres=# select pg_is_in_recovery();
 pg_is_in_recovery 
-------------------
 f
(1 row)

那我這個(gè)就是主庫(kù)嘍~

檢查流復(fù)制同步情況

先確定主庫(kù)傳到哪兒了

在確定備庫(kù)接收到哪兒了

最后確定備庫(kù)應(yīng)用到哪兒了

檢查主庫(kù)傳輸

確定主庫(kù)傳到什么位置了

postgres=# select pg_current_wal_lsn();
 pg_current_wal_lsn 
--------------------
 0/2A0001C0
(1 row)

檢查備庫(kù)恢復(fù)

確定備庫(kù)接收到哪兒了

postgres=# select pg_last_wal_receive_lsn();
 pg_last_wal_receive_lsn 
-------------------------
 0/2A0001C0
(1 row)

確定備庫(kù)應(yīng)用到哪兒了

postgres=# select pg_last_wal_replay_lsn();
 pg_last_wal_replay_lsn 
------------------------
 0/2A0001C0
(1 row)

最近事務(wù)應(yīng)用的時(shí)間

postgres=# select pg_last_xact_replay_timestamp();
 pg_last_xact_replay_timestamp 
-------------------------------
 2020-03-05 15:20:22.125688+08
(1 row)

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

您可能感興趣的文章:
  • PostgreSQL 邏輯復(fù)制 配置操作
  • postgresql流復(fù)制原理以及流復(fù)制和邏輯復(fù)制的區(qū)別說(shuō)明
  • Postgresql 檢查數(shù)據(jù)庫(kù)主從復(fù)制進(jìn)度的操作
  • PostgreSQL流復(fù)制參數(shù)max_wal_senders的用法說(shuō)明
  • CentOS PostgreSQL 12 主從復(fù)制(主從切換)操作

標(biāo)簽:來(lái)賓 晉城 衡陽(yáng) 烏海 蚌埠 錦州 株洲 珠海

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PostgreSQL 流復(fù)制異步轉(zhuǎn)同步的操作》,本文關(guān)鍵詞  PostgreSQL,流,復(fù)制,異步,轉(zhuǎn),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《PostgreSQL 流復(fù)制異步轉(zhuǎn)同步的操作》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于PostgreSQL 流復(fù)制異步轉(zhuǎn)同步的操作的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 安庆市| 托克托县| 镇原县| 浦北县| 仁化县| 荥经县| 滁州市| 修水县| 蒙自县| 河南省| 淮北市| 凯里市| 新干县| 湘阴县| 丰台区| 翼城县| 电白县| 灵武市| 同德县| 昭通市| 惠水县| 宜丰县| 西青区| 南乐县| 乡宁县| 章丘市| 筠连县| 海晏县| 清苑县| 平江县| 宁武县| 德州市| 扎赉特旗| 山东| 会泽县| 义马市| 西林县| 博白县| 徐州市| 南溪县| 闽清县|