自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

PostgreSQL主備環(huán)境搭建

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

PostgreSQL主備環(huán)境搭建

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

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

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

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

安裝部署還是得啰嗦幾句,使用的是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è)過(guò)程很可能有問(wèn)題,比如下面的錯(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)給啟用了。

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

3)開(kāi)始編譯安裝

這兩個(gè)過(guò)程耗時(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ù)庫(kù)軟件部署就搞定了,在這里我們只做了功能,還沒(méi)有涉及性能層面的調(diào)整和優(yōu)化。

2.配置主庫(kù)

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

192.168.179.128  主庫(kù)

192.168.253.134  備庫(kù)

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

CREATE ROLE replica login replication encrypted password 'replica';

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

添加一條記錄,使得備庫(kù)可以訪問(wèn),修改后需要重啟 

  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.配置備庫(kù)

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

這個(gè)時(shí)候備庫(kù)上還沒(méi)有初始化數(shù)據(jù),我們模擬客戶端的方式來(lái)訪問(wèn),可能會(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或者命令行的方式來(lái)做備份恢復(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)容修改如下,配置和主庫(kù)差別較大,需要注意。 

  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備庫(kù) 

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

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

可以在主庫(kù)端查看復(fù)制狀態(tài),參考pg_stat_replication視圖,在查看的過(guò)程中,這個(gè)視圖字段較大,看起來(lái)會(huì)有些亂,我們可以使用類似MySQL \G的方式來(lái)查看,即\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   
責(zé)任編輯:龐桂玉 來(lái)源: 楊建榮的學(xué)習(xí)筆記
相關(guān)推薦

2022-03-09 12:26:04

MySQL高可用性主備延遲

2021-10-26 08:00:00

數(shù)據(jù)庫(kù)架構(gòu)技術(shù)

2013-10-30 22:41:23

Clouda環(huán)境

2011-03-09 13:02:31

LAMP環(huán)境搭建

2011-03-14 13:06:58

LAMP搭建

2023-11-27 07:23:39

2023-12-12 07:24:06

MySQL策略主服務(wù)器

2021-07-14 23:38:02

PostgreSQLOracle模式

2017-12-12 14:26:16

數(shù)據(jù)庫(kù)PostgreSQL邏輯優(yōu)化

2011-08-25 15:02:17

Lua環(huán)境搭建EditPlus

2013-07-23 06:11:44

Android開(kāi)發(fā)學(xué)習(xí)Android開(kāi)發(fā)環(huán)境Java

2015-10-26 10:14:13

Android開(kāi)發(fā)環(huán)境robolectric

2009-06-17 17:02:22

2011-04-02 11:40:17

LAMP測(cè)試環(huán)境

2024-05-31 13:55:25

2011-09-01 19:06:57

UbuntuLua安裝環(huán)境

2022-04-26 11:06:50

環(huán)境搭建

2016-08-16 13:44:28

AndroidLinuxADT

2010-06-07 17:33:14

Linux測(cè)試環(huán)境搭建

2009-07-03 16:56:37

JSP開(kāi)發(fā)環(huán)境
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)