日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
PostgreSQL主備環(huán)境搭建

記得在2年前寫過一篇PostgreSQL的文章,當(dāng)時(shí)處于興趣,本來想在工作中接一下PG的業(yè)務(wù),***因?yàn)楦鞣N各樣的原因就擱置了。

宿豫網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司,宿豫網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為宿豫數(shù)千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的宿豫做網(wǎng)站的公司定做!

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

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

1.安裝部署數(shù)據(jù)庫軟件

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

1)解壓 

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

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

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

這個(gè)過程很可能有問題,比如下面的錯(cuò)誤。 

 
 
 
 
  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.  

類似的錯(cuò)誤還有readline,實(shí)際的情況zlib包和readline包都是有的。

這里需要注意一點(diǎn):

redhat 系列下這個(gè)軟件包叫  readline-devel     ubuntu 下叫readline-dev    細(xì)分又分為libreadline5-dev   和 libreadline6-dev

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

接下來的步驟就簡(jiǎn)單了。

3)開始編譯安裝

這兩個(gè)過程耗時(shí)相對(duì)會(huì)多一些,大概幾分鐘吧,比MySQL的源碼編譯要快很多。 

 
 
 
 
  1. make  
  2. make install  

4)創(chuàng)建用戶和組 

 
 
 
 
  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 

至此,數(shù)據(jù)庫軟件部署就搞定了,在這里我們只做了功能,還沒有涉及性能層面的調(diào)整和優(yōu)化。

2.配置主庫

使用的環(huán)境是兩臺(tái)服務(wù)器

192.168.179.128  主庫

192.168.253.134  備庫

1)創(chuàng)建一個(gè)復(fù)制角色

CREATE ROLE replica login replication encrypted password 'replica';

2)配置訪問權(quán)限文件gp_hba.conf

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

 
 
 
 
  1. host   replication  replica   192.168.253.134/24   trust 

因?yàn)槭强缇W(wǎng)段,我額外補(bǔ)充了一條網(wǎng)關(guān)的記錄 

 
 
 
 
  1. host   replication  replica   192.168.179.1/24   trust 

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

修改如下的幾個(gè)參數(shù)設(shè)置,端口還是保留默認(rèn)的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.配置備庫

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

這個(gè)時(shí)候備庫上還沒有初始化數(shù)據(jù),我們模擬客戶端的方式來訪問,可能會(huì)有如下的錯(cuò)誤。 

 
 
 
 
  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還原數(shù)據(jù)

先不必?fù)?dān)心,我們可以使用pg_basebackup或者命令行的方式來做備份恢復(fù) 

 
 
 
 
  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)配置恢復(fù)配置recovery.conf

這個(gè)步驟是關(guān)鍵,和Oracle里面的歸檔參數(shù)或者和MySQL里的change master的設(shè)置類似。

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

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

recovery.conf文件的內(nèi)容改動(dòng)參考如下: 

 
 
 
 
  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)修改參數(shù)文件postgresql.conf的配置

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

 
 
 
 
  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)啟動(dòng)PG備庫 

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

5)查看復(fù)制狀態(tài)

可以在主庫端查看復(fù)制狀態(tài),參考pg_stat_replication視圖,在查看的過程中,這個(gè)視圖字段較大,看起來會(huì)有些亂,我們可以使用類似MySQL \G的方式來查看,即\x的擴(kuò)展模式。 

 
 
 
 
  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   

當(dāng)前標(biāo)題:PostgreSQL主備環(huán)境搭建
路徑分享:http://www.5511xx.com/article/dpgopso.html