成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

PostgreSQL中流復(fù)制的原理是什么

今天就跟大家聊聊有關(guān)PostgreSQL中流復(fù)制的原理是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

井岡山ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!

和MySQL 不同,MYSQL的復(fù)制是基于邏輯復(fù)制,而PG 具有流復(fù)制和邏輯復(fù)制兩個功能。提到流復(fù)制如果讓我理解,想到就是ORACLE Dataguard 這樣的功能,當然ORALCE 也有流復(fù)制和高級復(fù)制等功能,這里就不再提及。

這里復(fù)制的技術(shù)很多,有shared disk failover , write-Ahead log shipping , logincal replication , 等等今天我們要學習的就是 

Write-ahead log shipping ,這個功能。

那使用這個功能對我們有什么好處

1 它是一個內(nèi)建功能

2 連接的方式是通過 wal ahead log 的方式

3 沒有特別的硬件需求

4 對主機的運行基本沒有影響

5 可以設(shè)置數(shù)據(jù)的同步和異步 

6 Standy 庫是可以進行只讀的活動

讀完上面的點,發(fā)現(xiàn)通過流的方式復(fù)制其實比邏輯的復(fù)制好的地方,就是1 沒有事務(wù)沖突  2 不會有事務(wù)較大,造成延遲的問題  3 數(shù)據(jù)在切換過程中,不會有數(shù)據(jù)丟失的擔心。

以上都是MYSQL 在復(fù)制的過程中,我可能會擔心的問題。

流復(fù)制是PostgreSQL 在 9.0 推出的功能,其中主要由三個進程

1  walsender

2  walreceiver

3  startup

這三者是怎么工作的我們的畫一個圖來 分析一下。

1  Standby 庫通過 walreciever 來嘗試連接到 主庫

2  Primary 主庫會通過wal sender來進行 tcp -IP 方式的連接,握手確認連接

3  從庫的standby 會發(fā)送目前他最后的一次的LSN 號碼給主庫,從庫的LSN 號必然必須小于主庫(如果是反向的,說明主庫的數(shù)據(jù)落后于從庫,或是其他問題,這樣的復(fù)制是沒有辦法進行的)

4 主庫會提供 WAL Segments 并開始進行復(fù)制的數(shù)據(jù)發(fā)送的工作

PostgreSQL中流復(fù)制的原理是什么

通過

select application_name,state from pg_stat_replication;以下的語句來查看當前庫是否在進行sender 的狀態(tài)。

PostgreSQL中流復(fù)制的原理是什么

說到這里,其實每種數(shù)據(jù)庫的復(fù)制都會存在一個問題就是如果STANDBY 庫重新啟動或者STANDBY 沒有跟上 PRIMARY 庫的發(fā)送日志的速度,則結(jié)果就是復(fù)制失敗。而PostgreSQL有兩個方法來盡力拯救這樣的事情,

1  提高 wal_keep_segments  這讓我想起了 MongoDB 提高OPLOG 的存儲大小來讓MONGODB 復(fù)制不會產(chǎn)生類似的問題。

2  使用replication slot 的方式和功能來靈活的進行WAL 數(shù)據(jù)的發(fā)送。

其實大白話就是  要不我在 發(fā)送端做點什么,要不我在接收端做點什么。

同時我們可以通過 sent_lsn, write_lsn,flush_lsn, replay_lsn, 來判斷我們的復(fù)制的狀態(tài)如何。

PostgreSQL中流復(fù)制的原理是什么

3  PG 的復(fù)制中,可以是多從的結(jié)構(gòu)。

說完這些,需要探討配置流復(fù)制中的參數(shù)了

首先要打開 POSTGRESQL 的復(fù)制

1   wal_level =  replica

確定寫入WAL 的信息的多少, 如果想調(diào)整這個參數(shù),需要在開啟服務(wù)前就進行設(shè)置

如果設(shè)置為 minimal level 則類似 create table as  create index , copy 等命令的日志就不會被記錄

2  synchronous_commit    相關(guān)的選項

   on , remote_apply , remote_write , local

默認的安全值是ON  同時 如果你選擇 remote_apply  或者 remote_write  則會等待standby的主機進行相關(guān)的回饋,主庫才能繼續(xù)后面操作。

3 max_wal_sender  設(shè)置最大的primary standby的 連接數(shù),默認為10

4  wal_keep_segments 這里指定最大可以保持多少  wal 日志的數(shù)量,一個WAL 的日志數(shù)量是 16MB 。 

5 wal_sender_timeout  默認檢測 standby 的沒有響應(yīng)的時間默認是60 秒

6  synchronous_standby_name = 'standby_name one by one'

  在PG的設(shè)置中有一個功能是可以設(shè)置一個備用機,與PG 的主機進行流復(fù)制,當備用機停止工作的時候,主機也停止工作。在上面的參數(shù)選項中,需要填寫具體的那臺standby機器需要,與主庫中這樣的關(guān)系。

同時需要在standby庫去設(shè)置

需要在從庫的recovery.conf 中來設(shè)置

7  以下的設(shè)置時在 standby下進行的

hot_standby = on   允許在recovery 的狀態(tài)下,進行查詢的語句

 

其他,在配置完相關(guān)的參數(shù)后,需要使用 pg_basebackup 將主庫的數(shù)據(jù)拉到備庫,配置參數(shù)后啟動備庫,則類似 ORACLE dataguard  的PG 流復(fù)制就生效了。

看完上述內(nèi)容,你們對PostgreSQL中流復(fù)制的原理是什么有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。

網(wǎng)站題目:PostgreSQL中流復(fù)制的原理是什么
URL鏈接:http://jinyejixie.com/article18/jjpidp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號、品牌網(wǎng)站建設(shè)、、ChatGPT網(wǎng)站改版、電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運營
固镇县| 佳木斯市| 宣威市| 门头沟区| 社会| 新宾| 东兴市| 福安市| 郴州市| 怀远县| 梅河口市| 繁峙县| 芷江| 鹤庆县| 东乌珠穆沁旗| 福安市| 博乐市| 崇阳县| 密山市| 开平市| 合作市| 宁晋县| 株洲市| 清水县| 巴里| 抚顺市| 郯城县| 清镇市| 新晃| 凉城县| 泰安市| 简阳市| 腾冲县| 洛隆县| 耒阳市| 枝江市| 绥阳县| 句容市| 卓资县| 通辽市| 曲松县|