日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務,提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747



postgres主從流復制

postgres在9.0之后引入了主從的流復制機制,所謂流復制,就是從庫通過tcp流從主庫中同步相應的數(shù)據(jù)。postgres的主從看過一個視頻,大概效率為3w多事務qps。

postgres的主從主稱之為primary,從稱為stand_by。主從配置需要注意的一個是主從的postgres的版本,環(huán)境,等最好都需要一致,否則可能產(chǎn)生奇奇怪怪的問題。

postgres的主配置

主是10.12.12.10這臺機器

首先需要配置一個賬號進行主從同步。

修改pg_hba.conf,增加replica用戶,進行同步。

host replication replica 10.12.12.12/32 md5

這樣,就設(shè)置了replica這個用戶可以從10.12.12.12 對應的網(wǎng)段進行流復制請求。

給postgres設(shè)置密碼,登錄和備份權(quán)限。

postgres# CREATE ROLE replica login replication encrypted password 'replica'

修改postgresql.conf,注意設(shè)置下下面幾個地方:

wal_level = hot_standby # 這個是設(shè)置主為wal的主機

max_wal_senders = 32 # 這個設(shè)置了可以最多有幾個流復制連接,差不多有幾個從,就設(shè)置幾個
wal_keep_segments = 256 # 設(shè)置流復制保留的最多的xlog數(shù)目
wal_sender_timeout = 60s # 設(shè)置流復制主機發(fā)送數(shù)據(jù)的超時時間

max_connections = 100 # 這個設(shè)置要注意下,從庫的max_connections必須要大于主庫的

重啟主

pg_ctl restart

postgres的從配置

從是10.12.12.12這臺機器

創(chuàng)建的目錄為 /data/pgsql/data2

pg_basebackup -F p --progress -D /data/pgsql/data2 -h 10.12.12.10 -p 5432 -U replica --password

這里使用了pg_basebackup這個命令,/data/pgsql/data2這個目錄是空的

成功之后,就可以看到這個目錄中現(xiàn)有的文件都是一樣的了。

進入到/data/pgsql/data2目錄,復制recovery.conf,這個文件可以從pg的安裝目錄的share文件夾中獲取,比如

cp /usr/local/postgres94/share/recovery.conf.sample /data/pgsql/data2/recovery.conf

修改recovery.conf,只要修改幾個地方就行了

standby_mode = on # 這個說明這臺機器為從庫
primary_conninfo = 'host=10.12.12.10 port=5432 user=replica password=replica' # 這個說明這臺機器對應主庫的信息

recovery_target_timeline = 'latest' # 這個說明這個流復制同步到最新的數(shù)據(jù)

postgresql.conf中也有幾個地方要進行修改

max_connections = 1000 # 一般查多于寫的應用從庫的最大連接數(shù)要比較大

hot_standby = on # 說明這臺機器不僅僅是用于數(shù)據(jù)歸檔,也用于數(shù)據(jù)查詢
max_standby_streaming_delay = 30s # 數(shù)據(jù)流備份的最大延遲時間
wal_receiver_status_interval = 1s # 多久向主報告一次從的狀態(tài),當然從每次數(shù)據(jù)復制都會向主報告狀態(tài),這里只是設(shè)置最長的間隔時間
hot_standby_feedback = on # 如果有錯誤的數(shù)據(jù)復制,是否向主進行反饋

現(xiàn)在需要對/data/pgsql/data2賦權(quán)

chmod 0700 data2

好了,現(xiàn)在啟動從庫

確認主庫和從庫都配置好了

查看進程,主庫所在的機器中會看到sender進程

8467 postgres 20 0 255m 2396 1492 S 0.0 0.1 0:00.66 postgres: wal sender process replica 

從庫所在的機器中會看到receiver進程

8466 postgres 20 0 298m 1968 1096 S 0.0 0.1 0:06.88 postgres: wal receiver process streaming 3/CF118C18

查看復制狀態(tài)

主庫中執(zhí)行:

postgres=# select * from pg_stat_replication;
-[ RECORD 1 ]----+------------------------------
pid | 8467 # sender的進程
usesysid | 44673 # 復制的用戶id
usename | replica # 復制的用戶用戶名
Application_name | walreceiver 
client_addr | 10.12.12.12 # 復制的客戶端地址
client_hostname |
client_port | 55804 # 復制的客戶端端口
backend_start | 2015-05-12 07:31:16.972157+08 # 這個主從搭建的時間
backend_xmin |
state | streaming # 同步狀態(tài) startup: 連接中、catchup: 同步中、streaming: 同步
sent_location | 3/CF123560 # Master傳送WAL的位置
write_location | 3/CF123560 # Slave接收WAL的位置
flush_location | 3/CF123560 # Slave同步到磁盤的WAL位置
replay_location | 3/CF123560 # Slave同步到數(shù)據(jù)庫的WAL位置
sync_priority | 0 #同步Replication的優(yōu)先度
 0: 異步、1~?: 同步(數(shù)字越小優(yōu)先度越高)
sync_state | async # 有三個值,async: 異步、sync: 同步、potential: 雖然現(xiàn)在是異步模式,但是有可能升級到同步模式

同步復制

看到上面的sync_state的狀態(tài)有同步和異步的區(qū)別。

我們之前的概念都是異步備份,就是一個事務完成了之后,直接返回程序,然后紀錄日志,由復制進程重放日志進行數(shù)據(jù)復制。同步備份的概念,就是一個事務只有當完成了數(shù)據(jù)復制之后,才返回到程序中。當然同步的性能一定會比異步的性能差一個量級。

分享到:
標簽:postgres
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定