Centos7 yum安裝postgresql 9.5


添加RPM

yum install https://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-7-x86_64/pgdg-centos95-9.5-3.noarch.rpm

安裝PostgreSQL 9.5

yum install postgresql95-server postgresql95-contrib

初始化數據庫

/usr/pgsql-9.5/bin/postgresql95-setup initdb

 開機啟動

systemctl enable postgresql-9.5.service

 啟動數據庫服務

systemctl start postgresql-9.5.service

查詢版本

psql --version

修改用戶密碼

su - postgres
psql -U postgres
ALTER USER postgres WITH PASSWORD '123456'
\q

 

 

postgresql9.5主從復制

系統版本

主機名

IP地址

postgresql版本

角色

centos7.6

postgresql-master

192.168.216.130

9.5.18

主庫

centos7.6

postgresql-slave

192.168.216.129

9.5.18

從庫

說明:兩台服務器都已經提前用yum方式安裝好了postgresql 9.5,注意這里從庫不需要進行初始化及啟動服務,本文檔配置的是主從復制,主庫可以讀寫,從庫只能讀取不能寫入數據。

主庫配置:

cat >>/var/lib/pgsql/9.5/data/postgresql.conf <<EOF

wal_level = hot_standby     #(默認是minimal)

max_wal_senders=2           #(默認是0)

wal_keep_segments=64        #(默認是0)

EOF

說明

wal_level表示啟動搭建Hot Standby,max_wal_senders則需要設置為一個大於0的數,它表示主庫最多可以有多少個並發的standby數據庫,而最后一個wal_keep_segments也應當設置為一個盡量大的值,以防止主庫生成WAL日志太快,日志還沒有來得及傳送到standby就被覆蓋,但是需要考慮磁盤空間允許,一個WAL日志文件的大小是16M

如上圖,一個WAL日志文件是16M,如果wal_keep_segments設置為64,也就是說將為standby庫保留64個WAL日志文件,那么就會占用16*64=1GB的磁盤空間,所以需要綜合考慮,在磁盤空間允許的情況下設置大一些,就會減少standby重新搭建的風險。接下來還需要在主庫創建一個超級用戶來專門負責讓standby連接去拖WAL日志

創建同步用戶

postgres=# create user rep1 superuser password '123456';

 修改配置文件,允許從庫服務器連接主庫去拖WAL日志數據

vim /var/lib/pgsql/9.5/data/pg_hba.conf

host     replication     rep1            192.168.216.0/24        md5

  

 這里需要配置監聽地址,因為默認監聽本地

vi /var/lib/pgsql/9.5/data/postgresql.conf
listen_addresses = '192.168.216.130' 

  

重啟服務

systemctl restart postgresql-9.5.service

 從庫配置:

執行以下命令,從主庫備份數據

/usr/pgsql-9.5/bin/pg_basebackup -h 192.168.216.130 -U rep1 -F p -x -P -R -D /var/lib/pgsql/9.5/data/ -l rep_backup

備份過程實際上就是從主庫的data目錄里物理拷貝數據的過程。

參數說明

-F 指定了輸出的格式,支持p(原樣輸出)或者t(tar格式輸出)。

-x 表示備份開始后,啟動另一個流復制連接從主庫接收WAL日志。

-p 表示允許在備份的過程中實時的打印備份的進度。

-R 表示會在備份結束后自動生成recovery.conf文件,這樣就避免了手動創建。

-D 指定把備份寫到哪個目錄,注意:在做基礎備份之前從庫的數據目錄需要手動清空。

-l 表示指定一個備份的標識。

由於拷貝過來的文件屬主是root這里需要更改屬主和組

chown -R postgres.postgres /var/lib/pgsql/9.5/data/

 修改從庫的配置文件

vim /var/lib/pgsql/9.5/data/postgresql.conf

247 #hot_standby = off          # "on" allows queries during recovery

248 hot_standby = on    #添加此行

 注意這里59行監聽地址需要進行注釋,由於拷貝主庫的/data下的所有文件,因此這里需要修改

 

啟動從庫

systemctl start postgresql-9.5.service

 測試:

從庫寫入測試:

在主庫上創建一個test表,同時在從庫上進行查詢

在從庫上進行查詢:如下圖所示

 安裝可參考:https://blog.51cto.com/wn2100/2239518


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM