1. 程式人生 > >Linux系統中postgresql雙機熱備(流複製)

Linux系統中postgresql雙機熱備(流複製)

環境:
宿主機系統:windows7

虛擬機器:Oracle VMVirtualBox

Linux: ubuntukylin-14.04.1-amd64.iso

postgresql:9.3.12


虛擬主機2臺
MASTER: 192.16.41.125
 SLAVE:    192.16.41.121

資料儲存位置
/var/lib/postgresql/9.3/main/

/var/lib/postgresql/9.3/main/

Step1:安裝PG資料庫
安裝過程可參考:http://blog.csdn.net/lanonola/article/details/51376640

mater端安裝,並初始化資料

slave端可以只裝資料庫,不初始化資料庫

Step2:初始化master資料庫

1.利用pgadmin工具,將tewoo_pj中的資料進行備份,tewoo_pj_back.backup

2.將備份好的tewoo_pj_back.backup檔案,恢復到master庫中。
Step3:建立流複製使用者

master端執行: CREATE USER repuser replication LOGIN CONNECTION LIMIT 3ENCRYPTED PASSWORD 'repuser'; 

Step4:配置Master端的訪問檔案pg_hba.conf    

cd /etc/postgresql/9.3/main

vim pg_hba.conf

增加一行:
host replication repuser 192.16.41.121/16 md5

Step5:配置MASTER端配置檔案 postgresql.conf

cd /etc/postgresql/9.3/main

vim postgresql.conf

max_wal_senders = 1
wal_level = hot_standby

archive_mode = on 
archive_command = 'cd ./'

hot_standby = on
wal_keep_segments = 64

  注:max_wal_senders是Slave庫的節點數,有多少個slave庫就設多少,
      wal_level是write ahead log引數值,設定流複製務必將此值更新成hot_standby
     wal_keep_segments預設值是16,是PG_XLOG下的日誌檔案數相關引數
    archive也可以選擇關閉,歸檔是定時恢復用的,流複製不是必須的

Step6

:主庫備份(Master端)
6.1:開啟檔案備份,前提是wal_level引數值必須是archive或者hot_standby,前面已做
select pg_start_backup('Replition work');

6.2:拷貝master端/var/lib/postgresql/9.3/main/資料夾,並複製到Slave伺服器上,排除pg_xlog內容,排除pg_xlog內容

打包

cd   /var/lib/postgresql/9.3/
tar czvf  main.tar.gz main--exclude=main/pg_xlog 
備機端如果已經安裝了postgres資料庫,資料資料夾名稱一樣的話,可以先停掉備機資料庫,改名資料資料夾名稱
mv main /var/lib/postgresql/9.3/main.old

遠端拷貝至slave端並在備機端解壓
1.scp main.tar.gz [email protected]:/var /lib/postgresql/9.3

報錯:ssh:connect to host 192.16.41.121 port 22 :Connection refused lostconnection

具體的解決方法見:http://blog.csdn.net/lanonola/article/details/51384956
2.tar  xzvf  main.tar.gz

 6.3:上述步驟完成後,結束master端的備份

select pg_stop_backup(),current_timestamp;

Step7:修改Slave端配置資訊

7.1:postgresql.conf檔案
 hot_standby = on

7.2:recovery.conf檔案(注意該檔案的存放位置),放在資料相關資料夾下,和postgresql.conf的位置不同

將usr/share/postgresql/9.3/recovery.conf.sample檔案拷貝到

/var/lib/postgresql/9.3/main資料夾下,重新命名為recovery.conf

新增以下內容:

 standby_mode = 'on'

 primary_conninfo ='host=192.16.41.125port=5432 user=repuser password=repuserkeepalives_idle=60'

Step8:啟動Slave
正常啟動備庫,有異常可以看log

Step9:測試

On Master:
CREATE TABLE  t

(

  id integer NOTNULL,

  name charactervarying(20),

  CONSTRAINTt_pkey PRIMARY KEY (id)

)

INSERT INTO t(id, name)VALUES (1, 'xxxxxxxxx');

INSERT INTO t(id, name)VALUES (2, 'xxxxxxxxx');
On Slave:

select * from t;

update t set name = 'YYYYY' where id=1;

delete from t where id = 2;

ERROR:  cannot execute UPDATE in a read-onlytransaction

ERROR:  cannot execute DELETE in a read-onlytransaction


新增的資料已經傳輸過去,且slave端的會話為只讀,不能進行update和delete操作。

遇到的問題:

備份完成後,slave庫的服務無法啟動:

原因:許可權問題

解決方法:在建與postgresql有關的檔案或者資料夾的時候,不要用root,要切換到postgres使用者,否則會報許可權不足。


相關推薦

Linux系統postgresql複製

環境:宿主機系統:windows7 虛擬機器:Oracle VMVirtualBox Linux: ubuntukylin-14.04.1-amd64.iso postgresql:9.3.12 虛擬主機2臺 MASTER: 192.16.41.125  SLAVE:  

postgresql複製及主切換

一、環境 系統:redhat6.5 64位 ip:192.168.11.68(主) 192.168.11.70(備) 資料庫版本:postgresql9.4.4 二、雙機熱備的過程 兩臺系統之中安裝

Nginx + keepalived 主從模式

綁定 html 負載均衡 基於 模式 主備 class 接管 主主 雙機高可用一般是通過虛擬IP(飄移IP)方法來實現的,基於Linux/Unix的IP別名技術。 雙機高可用方法目前分為兩種: 1)雙機主從模式:即前端使用兩臺服務器,一臺主服務器和一臺熱備服務器,正常情況

windows server2016安裝服務

1首先,點選管理2 下一步3預設下一步4下一步5選擇Active Directory 域服務和DNS伺服器6 下一步7下一步8下一步9下一步10終於到了安裝了11在兩個伺服器上都要安裝以上的AD服務和DNS。(MasterZhu,Slave)12 在node1上配置,提升為域控制器13 新增新林,根域名為:l

Nginx+keepalived主從模式

負載均衡技術對於一個網站尤其是大型網站的web伺服器叢集來說是至關重要的!做好負載均衡架構,可以實現故障轉移和高可用環境,避免單點故障,保證網站健康持續執行。 關於負載均衡介紹,可以參考:linux負載均衡總結性說明(四層負載/七層負載) 由於業務擴充套件,網站的訪

使用win8 r2的故障轉移叢集實現自己實現

(網上的教程太不全,浪費了我大量時間,自己總結!圖就不用了) 準備工作: 軟體準備:本地裝虛擬機器,虛擬機器裝三臺win8 server r2系統,都使用橋接上網(公司通過代理上網)配置兩塊網絡卡,記憶體分配2G,硬碟分配40G。 理論準備:(1)故障轉移群集要求 使用者為

Nginx+keepalived主主模式

實現 nginx keepalived Nginx+keepalived實現高可用負載均衡的主主模式由於網站的訪問需求不斷加大,負載越來越高。現需要在web前端放置nginx負載均衡,同時結合keepalived對前端nginx實現HA高可用。1、nginx進程基於Master+Slave(wor

nginx+tomcat實現負載均衡以及tomcat宕導致客戶端無法訪問

首先,在這裡分享一個java技術交流群,純粹技術交流,拒絕廣告,歡迎各位進群交流。QQ群:817997079 大家都知道nginx可以代理多臺伺服器(以tomcat為例),那麼當被nginx代理的tomcat伺服器宕機時,我們怎麼保證客戶端能繼續訪問系統?接下來就說一下ng

Nginx+keepalived 高可用主從模式/主模式

基礎介紹 負載均衡技術對於一個網站尤其是大型網站的web伺服器叢集來說是至關重要的!做好負載均衡架構,可以實現故障轉移和高可用環境,避免單點故障,保證網站健康持續執行。 由於業務擴充套件,網站的訪問量不斷加大,負載越來越高。現需要在web前端放置ngin

PostgreSQL-生產

postgresql、雙機熱備PostgreSQL-生產雙機熱備:下載:http://down.51cto.com/data/2336617本文出自 “雲計算與大數據” 博客,請務必保留此出處http://linuxzkq.blog.51cto.com/9379412/1967448PostgreSQL-生產

U-Mail郵件系統分布式+方案確保同步穩定傳輸

郵件服務器 解決方案 郵件系統 眼下隨著企業信息化建設如火如荼的推進,越來越多的企業選擇自建郵件系統作為信息中轉樞紐和儲存檔案庫。員工對郵件系統的依賴和信任也帶來了潛在隱患,那就是假如該系統服務器發生宕機或不可控因素而停止服務,會出現難以估量的後果。 首先讓我們來看看都有哪些情況困擾著企業的

Postgresql】postgresql9.3.9版本基於復制方式方案

postgresql 雙機熱備 流復制 9.3.9 系統環境:centos6.5數據庫版本: postgres9.3.9虛擬機2臺:Master:10.0.2.160Slave:10.0.2.69數據存儲位置:/usr/local/pgsql/data/ 安裝pgsql數據庫 安裝過程可參

Linux學習總結五十四keepalived+lvs 負載均衡架構

DR LVS keepalived+lvs 一 LVS IP tunnel 模式介紹 IP隧道(IP tunneling)是將一個IP報文封裝在另一個IP報文的技術,這可以使得目標為一個IP地址的數據報文能被封裝和轉發到另一個IP地址。IP隧道技術亦稱為IP封裝技術(IP encapsulatio

兩臺Linux完美實現

兩臺Linux完美實現雙機熱備 2012年09月22日 18:57:30 閱讀數:1844 http://www.51testing.com/html/06/n-186706-4.html 一直想做基於linux的雙機熱備,一直沒有時間和機會。一直以為只要做雙機熱備的實驗就必須兩臺機

系統的方案與軟體淺析

一、概述 雙機熱備指基於高可用系統中的兩臺伺服器的熱備(或高可用),因兩機高可用在國內使用較多,故得名雙機熱備。雙機高可用按工作中的切換方式分為:主-備方式(Active-Standby方式)和雙主機方式(Active-Active方式),主-備方式指的是一臺

NEC高可用集群軟件NEC EXPRESSCLUSTER是一款專業的高可用集群軟件產品(軟件)

雙機軟件 集群軟件NEC高可用集群軟件NEC EXPRESSCLUSTER是一款專業的高可用集群軟件產品(雙機熱備軟件)商務qq1912078946,可為您提供Windows和Linux平臺上完整的高可用性解決方案。當集群中的某個節點由於軟件或硬件原因發生故障時,集群系統可以把IP、客戶業務等資源切換到其他

keepalived+nginx+負載均衡

ethernet auth 超時任務 collision boot .rpm ocl bnl host keepalived+nginx雙機熱備+負載均衡最近因業務擴展,需要將當前的apache 轉為nginx(web), 再在web前端放置nginx(負載均衡)。同時結合

MySQL-Jira

ref 安裝 times ant all del lock 參數 time 主服務器:192.168.1.23 從服務器:192.168.1.243 一、主服務器Master配置 1. 創建同步賬號、賦權 在主服務器上為從服務器建立一個連接帳戶,此處用root,該帳戶必

mysql的

數據庫主從mysql的雙機熱備 雙機熱備,就是要保持兩個數據庫的狀態自動同步。對任何一個數據庫的操作都自動應用到另外一個數據庫,始終保持兩個數據庫數據一致。 這樣的做法好處在於:1、可以做災備,其中一個壞了可以切換到另一個;2、可以做負載均衡,可以請求分攤到其中任何一臺上,提高網站吞吐

keepalived實現

lin fire per 安裝 arp index 正常 綁定 type   keepalived的作用是檢測後端TCP服務的狀態,如果有一臺提供TCP服務的後端節點死機,或者工作出現故障,keepalived會及時檢測到,並將有故障的節點從系統中剔除,當提供TCP服務的節