1. 程式人生 > >PostgreSQL使用pg_basebackup搭建主備流複製環境

PostgreSQL使用pg_basebackup搭建主備流複製環境

今天用pg_basebackup搭建了主備流複製環境,操作流程很簡單,可線上操作,相當方便。

環境均為CentOS6.6 + postgresql9.4,我用已安裝的庫做測試,埠不一致,不影響環境搭建,但要注意某些相關配置:

主:192.168.3.201 port:5431

備:192.168.3.202 port:5432

資料庫安裝過程省略。可參考

http://blog.csdn.net/baiyinqiqi/article/details/45560229

主庫引數配置postgresql.conf:

wal_level = hot_standby

checkpoint_segments = 16

checkpoint_timeout = 5min

archive_mode = on

max_wal_senders = 3

wal_keep_segments = 16 

主庫建立具有replication許可權的使用者:

create user rep replication login encrypted password 'udbac';

主庫修改認證配置檔案,新增rep的replication認證資訊:

host replicationrep 192.168.3.202/32md5

主庫過載資料庫配置資訊:pg_ctl reload

從庫只安裝資料庫軟體,不進行資料庫初始化。

根據主庫相關路徑配置,建立日誌目錄,表空間目錄。

比如主庫的表空間如下:


在從庫中建立相同的目錄,並授權給postgres使用者:

[[email protected]_202 postgres]# mkdir -p /pg_tablespace/pg_5431/ts_bigtable
[[email protected]_202 postgres]# chown -R postgres.postgres /pg_tablespace
[[email protected]_202 postgres]# chown -R postgres.postgres /pg_tablespace/pg_5431
[[email protected]_202 postgres]# chown -R postgres.postgres /pg_tablespace/pg_5431/ts_bigtable
[

[email protected]_202 postgres]# mkdir -p /pg_tablespace/pg_5431/ts_udbac
[[email protected]_202 postgres]# chown -R postgres.postgres /pg_tablespace/pg_5431/ts_udbac
[[email protected]_202 postgres]# chmod 0700 /pg_tablespace
[[email protected]_202 postgres]# chmod 0700 /pg_tablespace/pg_5431
[[email protected]_202 postgres]# chmod 0700 /pg_tablespace/pg_5431/ts_bigtable
[[email protected]_202 postgres]# chmod 0700 /pg_tablespace/pg_5431/ts_udbac

當然$PGDATA目錄同樣不可少。

配置從庫無密碼訪問主庫的密碼檔案:

在postgres使用者home目錄下建立.pgpass檔案,新增如下內容:

192.168.3.201:5431:replication:rep:udbac

.pgpass檔案許可權為0600:chmod 0600 .pgpass

測試無密碼是否可連線主庫:

psql -h 192.168.3.201 -p 5431 -U rep -d postgres

使用pg_basebackup進行資料庫備份恢復:

pg_basebackup -D $PGDATA -F p -X stream -v -P -h 192.168.3.201 -p 5431 -U rep


檢視資料檔案恢復情況:


表空間恢復情況:


配置備庫引數postgresql.conf:

hot_standby=on

注意:我這裡主備庫所用埠不一樣,需要詳細修改配置檔案,比如port,有些目錄是以埠命名的也需要修改。第一次做就碰到找不到log日誌的情況,因為我的安裝目錄帶有埠號,所以找不到。一般情況下,儘量使用一樣的埠。

配置備庫recovery.conf配置檔案:

cp $PGHOME/share/recovery.conf.sample $PGDATA/recovery.conf

vi $PGDATA/recovery.conf

修改下列引數:

standby_mode = on

primary_conninfo = 'host=192.168.3.201 port=5431 user=rep'

trigger_file = '/usr/local/postgresql/9.4.1/pg5432/data/postgresql.trigger.5431'

啟動備庫,檢視服務程序,請注意有一個wal receiver progress程序,這個是接收wal日誌的程序:


同樣主庫也多了一個wal sender process程序,用於日誌傳送。

測試:

在主庫中新建一張表tbl6,並插入一些資料:


在從庫中進行查詢,從庫可查詢,但不可更新資料:


參考文章:

http://francs3.blog.163.com/blog/static/4057672720136210240967/

相關推薦

PostgreSQL使用pg_basebackup搭建複製環境

今天用pg_basebackup搭建了主備流複製環境,操作流程很簡單,可線上操作,相當方便。 環境均為CentOS6.6 + postgresql9.4,我用已安裝的庫做測試,埠不一致,不影響環境搭建,但要注意某些相關配置: 主:192.168.3.201 port:543

PostgreSQL 9.4 複製環境搭建

此方法並不完全屬於熱備,因為主機宕掉備機無法自動替換,備機只是起到資料自動備份的功能,如果想實現自動備份需要使用pgpool 環境介紹 IP 角色 192.169.77.211 主 192.169.77.215 備 首先、務必保證兩臺都安裝有相同版本的Postgre

【MySQL】MySQL一二從複製環境切換主從庫

mysql> show slave status\G; *************************** 1. row *************************** Slave_IO_State: Waiting for master to send ev

lvs+keepalived+nginx 搭建

上一篇講了nginx+tomcat搭建了反向代理和負載均衡  那麼如果nginx掛掉了 即使兩個tomcat都沒有掛也是無法訪問的 所以這個時候需要一個主備管理 如果主nginx掛了立即由備用nginx來接管 那麼我們需要現搭建一個備用的nginx配置方式和主nginx完全

MySQL高可用(三)搭建同步實戰

### 目標 掌握如何搭建一主一備的主備架構 ### 實驗環境 - 系統:Ubuntu 18.04.1 LTS - MySQL版本:5.7.32 - 主庫IP:192.168.200.120 - 備庫IP:192.168.200.121 ### 操作步驟 #### 1.分別在兩臺伺服器上安裝MySQ

Linux下PostgreSQL環境搭建和切換

1. 概念 資料庫熱備:資料庫熱備是指為主資料庫的建立、維護和監控一個或多個備用資料庫,它們時刻處於開機狀態,同主機保持同步。當主機失靈時,可以隨時啟用熱備資料庫來代替,以保護資料不受故障、災難、錯誤和崩潰的影響。 流複製(streaming replication):PostgreSQL提

mysql+mycat搭建穩定高可用叢集,負載均衡,複製,讀寫分離

資料庫效能優化普遍採用叢集方式,oracle叢集軟硬體投入昂貴,今天花了一天時間搭建基於mysql的叢集環境。 主要思路 簡單說,實現mysql主備複製-->利用mycat實現負載均衡。 比較了常用的讀寫分離方式,推薦mycat,社群活躍,效能穩定。 測試環境 MYSQL版

Redis叢集主從複製(一兩從)搭建配置教程【Windows環境

由於本地環境的使用,所以搭建一個本地的Redis叢集,本篇講解Redis主從複製叢集的搭建,使用的平臺是Windows,搭建的思路和Linux上基本一致! (精讀閱讀本篇可能花費您15分鐘,略讀需5分鐘左右) Redis主從複製簡單介紹 為了使得叢集在一部分節點下線或

PostgreSQL 複製切換

文章目錄 概述 如何判斷主備角色 檔案觸發方式切換 pg_ctl promote方式切換 pg_rewind命令 概述 流複製的主庫和備庫的角色不是靜態存在的,在維護過程中可以對二者進行角色切換。例

mysql環境搭建

#主機配置: service mysqld stop #配置my.cnf: vim /etc/my.cnf log-bin=mysql-bin-master #啟用二進位制日誌 server-id = 1 #本機資料庫ID 標示 binlog-do-db=sdg

postgresql 9.5 (庫)複製簡單配置

本人是用了兩臺虛擬機器搭建主備流複製環境,操作流程很簡單: 虛擬機器 的 IP和 埠     主庫:   192.168.1.189 5432  使用者:postgres     備庫:  192.168.1.200 5432   使用者:postgres 虛擬機器必須先安

postgres HA 環境搭建

1. postgres 主備環境搭建 1.1  HA 實現方式       熱備份、冷備份      冷備份:物理備份,也就是檔案複製。主機寫完一個WAL日誌檔案後,才複製到standby伺服器上去應用。      熱備份:流複製,也就是同步複製或非同步複製。主備機實時同步

mysql複製搭建

這裡我使用單臺伺服器上的兩個mysql例項進行搭建,主要用到了mysql自帶的mysqld_multi 一、複製原理 開始搭建前有個mysql複製原理的基礎知識需要補充: mysql進行主備複製使用到了三個執行緒: 1.主庫上的轉儲存執行緒:     會將mysql se

postgresql雙機熱複製)及切換

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

mysql+mycat搭建穩定高可用集群,負載均衡,復制,讀寫分離

root用戶 架構 .bat 出現 內存 ace 權威指南 上層 復制 主要思路 測試環境 實現mysql主備復制 配置A主mysql 配置B備mysql 驗證同步配置結果 驗證是否同步 關閉B備mysql的同步,驗證讀寫分離

MongoDB副本(一+仲裁)環境部署記錄

mar rim con 讀寫 就會 應用 color ring 部署過程 MongoDB復制集是一個帶有故障轉移的主從集群。是從現有的主從模式演變而來,增加了自動故障轉移和節點成員自動恢復。MongoDB復制集模式中沒有固定的主結點,在啟動後,多個服務節點間將自動選舉產

keepalive基礎知識及模型搭建

其中 devel ring ice inux 文件中 實現 unit emd lvs模型屬於單點故障,對real server的健康狀態檢查可以通過寫腳本實現,keepalived可以實現高可用:keepalive:vrrp協議在Linux主機上以守護進程方式的實現; 能夠

圖文:Linux-DNS服務器搭建(高可用)

重啟 slave 配置文件 服務器 image http img -a 建立 DNS主服務器(master):192.168.127.147從服務器(slave):192.168.127.1481、首先在master和slave上安裝DNS包: 2、編輯master上的D

Linux實戰第九篇:基於Centos6.9+7.4DNS服務器搭建實戰

服務器搭建 word uda notes centos6 fcc bfc data 閱讀 個人筆記分享(在線閱讀): http://note.youdao.com/noteshare?id=7898fa39596740bfcc9ca42ad643f045&sub=28A00

centos7 搭建雙網卡bond1(模式)實例

sum 模式 address ethernet mas link back 14. ip配置 前景須知: 在redhat6 中網卡叫bond,在redhat7及centos7中改名team,此處只記錄centos7中雙網卡主備搭建過程。 應用情景:實現網絡的高可用,防止一條