成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

PostgreSQL主備環境搭建

數據庫 其他數據庫 PostgreSQL
關于主備環境的搭建,我使用的基于流復制的方式搭建,這是在PG 9.0之后提供的對WAL傳遞日志的方法,是基于物理復制,在9.4開始有了邏輯解碼,而細粒度的邏輯復制在PG 10中會有較大的改進。

PostgreSQL主備環境搭建

記得在2年前寫過一篇PostgreSQL的文章,當時處于興趣,本來想在工作中接一下PG的業務,***因為各種各樣的原因就擱置了。

今天整理了下PostgreSQL的一些基礎內容,參考的書是唐成老師的那本《PostgreSQL修煉之道》,有了Oracle和MySQL的基礎,看起來會比從零開始要容易一些,總體的感覺,PG功能確實很多很全,功能上像Oracle看齊,技術風格和MySQL很像,在做一些總結的時候,不停的在兩個數據庫之間來回切換。

關于主備環境的搭建,我使用的基于流復制的方式搭建,這是在PG 9.0之后提供的對WAL傳遞日志的方法,是基于物理復制,在9.4開始有了邏輯解碼,而細粒度的邏輯復制在PG 10中會有較大的改進。

1.安裝部署數據庫軟件

安裝部署還是得啰嗦幾句,使用的是9.5版本的源碼安裝,源碼包很小,就幾十兆。

1)解壓 

  1. tar -zxvf  postgresql-9.5.0.tar.gz 

2)切換到解壓目錄,嘗試編譯準備 

  1. cd postgresql-9.5.0  
  2. ./configure -prefix /usr/local/pgsql  

這個過程很可能有問題,比如下面的錯誤。 

  1. configure: error: zlib library not found  
  2. If you have zlib already installed, see config.log for details on the  
  3. failure.  It is possible the compiler isn't looking in the proper directory.  
  4. Use --without-zlib to disable zlib support.  

類似的錯誤還有readline,實際的情況zlib包和readline包都是有的。

這里需要注意一點:

redhat 系列下這個軟件包叫  readline-devel     ubuntu 下叫readline-dev    細分又分為libreadline5-dev   和 libreadline6-dev

所以我們需要安裝的是readline-devel和zlib-devel的包即可搞定,而不要只是懷疑,然后把--without-zlib選項給啟用了。

接下來的步驟就簡單了。

3)開始編譯安裝

這兩個過程耗時相對會多一些,大概幾分鐘吧,比MySQL的源碼編譯要快很多。 

  1. make  
  2. make install  

4)創建用戶和組 

  1. useradd postgres  
  2. mkdir -p /data/pgsql9.5  
  3. chown -R postgres:postgres /data/pgsql9.5  
  4. su - postgres  

5)初始化部署 

  1. /usr/local/pgsql/bin/initdb -D  /data/pgsql9.5 

至此,數據庫軟件部署就搞定了,在這里我們只做了功能,還沒有涉及性能層面的調整和優化。

2.配置主庫

使用的環境是兩臺服務器

192.168.179.128  主庫

192.168.253.134  備庫

1)創建一個復制角色

CREATE ROLE replica login replication encrypted password 'replica';

2)配置訪問權限文件gp_hba.conf

添加一條記錄,使得備庫可以訪問,修改后需要重啟 

  1. host   replication  replica   192.168.253.134/24   trust 

因為是跨網段,我額外補充了一條網關的記錄 

  1. host   replication  replica   192.168.179.1/24   trust 

3)修改參數配置文件postgresql.conf

修改如下的幾個參數設置,端口還是保留默認的5432 

  1. listen_addresses = '*"  
  2. port = 5432  
  3. wal_level = hot_standby  
  4. max_wal_senders = 2  
  5. wal_keep_segments = 32  
  6. wal_sender_timeout =60s  
  7. max_connections =100 

這些步驟完成后,切記要重啟一下PG使得配置生效

4)重啟PG 

  1. $ /usr/local/pgsql/bin/pg_ctl -D /data/pgsql9.5 -l logfile restart 

3.配置備庫

備庫需要同樣的步驟來部署數據庫軟件,參考***部分即可。

這個時候備庫上還沒有初始化數據,我們模擬客戶端的方式來訪問,可能會有如下的錯誤。 

  1. $ psql -Ureplica -h192.168.179.128 -p5432 --password  
  2. Password for user replica:   
  3. psql: FATAL:  no pg_hba.conf entry for host "192.168.179.1"user "replica"database "replica"  

1)使用pg_basebackup還原數據

先不必擔心,我們可以使用pg_basebackup或者命令行的方式來做備份恢復 

  1. $ pg_basebackup -F p --progress -D /data/pgsql9.5 -h 192.168.179.128 -p 5432 -U replica --password  
  2. Password:   
  3. 22484/22484 kB (100%), 1/1 tablespace  
  4. NOTICE:  WAL archiving is not enabled; you must ensure that all required WAL segments are copied through other means to complete the backup 

2)配置恢復配置recovery.conf

這個步驟是關鍵,和Oracle里面的歸檔參數或者和MySQL里的change master的設置類似。

recovery.conf文件可以從模板里拿到: 

  1. cp /usr/local/pgsql/share/recovery.conf.sample  /data/pgsql9.5/recovery.conf 

recovery.conf文件的內容改動參考如下: 

  1. standby_mode = on  
  2. primary_conninfo = 'host=192.168.179.128 port=5432 user=replica password=replica'  
  3. recovery_target_timeline = 'latest'  
  4. trigger_file = '/data/pgsql9.5/trigger_activestb' 

3)修改參數文件postgresql.conf的配置

postgresql.conf文件的內容修改如下,配置和主庫差別較大,需要注意。 

  1. listen_addresses = '*'  
  2. port = 5432  
  3. wal_level = minimal  
  4. max_wal_senders = 0  
  5. wal_keep_segments = 0  
  6. max_connections = 1000  
  7.  
  8.  
  9. synchronous_commit = off  
  10. synchronous_standby_names = ''  
  11. hot_standby = on  
  12. max_standby_streaming_delay = 30  
  13. wal_receiver_status_interval = 1s  
  14. hot_standby_feedback = on  

4)啟動PG備庫 

  1. $ /usr/local/pgsql/bin/pg_ctl -D /data/pgsql9.5 -l logfile start 

5)查看復制狀態

可以在主庫端查看復制狀態,參考pg_stat_replication視圖,在查看的過程中,這個視圖字段較大,看起來會有些亂,我們可以使用類似MySQL \G的方式來查看,即\x的擴展模式。 

  1. postgres=# \x  
  2. Expanded display is on 
  3. postgres=# select * from pg_stat_replication;   
  4. -[ RECORD 1 ]----+------------------------------  
  5. pid              | 20539  
  6. usesysid         | 16384  
  7. usename          | replica  
  8. application_name | walreceiver  
  9. client_addr      | 192.168.179.1  
  10. client_hostname  |   
  11. client_port      | 49374  
  12. backend_start    | 2018-03-25 05:19:15.215181+08  
  13. backend_xmin     | 1756  
  14. state            | streaming  
  15. sent_location    | 0/302F600  
  16. write_location   | 0/302F600  
  17. flush_location   | 0/302F600  
  18. replay_location  | 0/302F600  
  19. sync_priority    | 0  
  20. sync_state       | async   
責任編輯:龐桂玉 來源: 楊建榮的學習筆記
相關推薦

2022-03-09 12:26:04

MySQL高可用性主備延遲

2021-10-26 08:00:00

數據庫架構技術

2013-10-30 22:41:23

Clouda環境

2011-03-09 13:02:31

LAMP環境搭建

2011-03-14 13:06:58

LAMP搭建

2023-12-12 07:24:06

MySQL策略主服務器

2023-11-27 07:23:39

2021-07-14 23:38:02

PostgreSQLOracle模式

2017-12-12 14:26:16

數據庫PostgreSQL邏輯優化

2011-08-25 15:02:17

Lua環境搭建EditPlus

2015-10-26 10:14:13

Android開發環境robolectric

2013-07-23 06:11:44

Android開發學習Android開發環境Java

2011-04-02 11:40:17

LAMP測試環境

2009-06-17 17:02:22

2024-05-31 13:55:25

2016-08-16 13:44:28

AndroidLinuxADT

2022-04-26 11:06:50

環境搭建

2011-09-01 19:06:57

UbuntuLua安裝環境

2010-06-07 17:33:14

Linux測試環境搭建

2011-09-27 11:30:29

SSH 環境搭建
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 九色在线 | 免费观看一级特黄欧美大片 | 久久久青草婷婷精品综合日韩 | a在线视频| 成人国产精品久久久 | 国产精品久久网 | 天天操天天天干 | 龙珠z国语版在线观看 | 精品国产一区二区三区免费 | 中文二区 | 亚洲国产二区 | 国产一区二区三区免费观看在线 | 二区av | 黄色在线免费观看视频 | 欧美精品久久久 | 韩日精品视频 | 在线观看国产www | 久久国产欧美日韩精品 | 久久不卡 | 欧美一区二区三区 | 伊人超碰在线 | 久久久久免费精品国产小说色大师 | 日韩视频一区 | 91av视频在线观看 | 久久久爽爽爽美女图片 | 久久久久久国产精品免费免费狐狸 | 性一爱一乱一交一视频 | 国产一区二区在线观看视频 | 成人a视频在线观看 | 久久精品国产免费 | 国产女人精品视频 | 成人在线精品 | 黄色日批视频 | 一区二区三区四区在线播放 | aa级毛片毛片免费观看久 | 日本视频免费观看 | 高清一区二区三区 | 免费观看羞羞视频网站 | av看片| 国产一区二区三区在线看 | 国产成人精品一区 |