Linux yum 安裝PostgresSQL10 及 主從復制配置(包括安裝相關)


PostgresSQL10 主從復制配置(包括安裝相關)(centos7.6)

安裝步驟(yum安裝):

$ yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm  -y
$ yum install postgresql10 -y  
$ yum install postgresql10-server -y  

常用命令

重啟:systemctl restart postgresql-10  
查看狀態:systemctl status postgresql-10 
啟動:systemctl start postgresql-10 
停止:systemctl stop postgresql-10 

一、主服務器配置

1、創建數據目錄、歸檔目錄

$ mkdir -p /home/postgresql/data/  
$ chown -R postgres:postgres /home/postgresql/data/ #修改data目錄的用戶及組為postgres  
$ chmod 700 -R /home/postgresql/data #修改data目錄的權限為700 (讀:4,寫:2,執行:1,-表示0,-R表示級聯)  

2、修改數據存儲路徑

$ vim /usr/lib/systemd/system/postgresql-10.service  
  Environment=PGDATA=/home/postgresql/data/ #找到Environment=PGDATA, 修改  

3、初始化數據庫

$ /usr/pgsql-10/bin/postgresql-10-setup initdb

4、配置數據庫

$ vim /home/postgresql/data/postgresql.conf
data_directory = '/home/postgresql/data'
listen_addresses = '*'
port = 9999 #端口號(請修改)
max_connections = 100
unix_socket_directories = '/var/run/postgresql, /tmp, /home/postgresql/data'
wal_level = replica
archive_mode = on
archive_command = 'cp %p /home/postgresql/data/pg_archive/%f'
max_wal_senders = 16
wal_keep_segments = 256
wal_sender_timeout = 60s  

$ mkdir -p /home/postgresql/data/pg_archive/  
$ chown -R postgres:postgres /home/postgresql/data/ #修改data目錄的用戶及組為postgres  

$ vim /home/postgresql/data/pg_hba.conf # 在末尾添加從服務器信息
host all all 0.0.0.0/0 md5
host    replication     主從復制角色         從服務器IP/24      md5

5、配置全局配置

$ vim /etc/profile 
export PGDATA=/home/postgresql/data # 數據庫的數據目錄
export PGPORT=9999 # 數據庫端口  
$ source /etc/profile  

6、開機自啟

$ systemctl enable postgresql-10  
$ systemctl start postgresql-10  

7、創建主從同步replica用戶

$ su - postgres  
$ psql  
postgres=# CREATE ROLE 主從復制角色 login replication encrypted password '主從復制密碼';
$ \q #退出
$ psql -U postgres   #設置local all all md5  #trust 可以直接登錄
alter user postgres with password 'postgres用戶的遠程密碼';

8、若有任何修改,最好重啟數據庫

systemctl restart postgresql-10  

二、從服務器配置

1、創建數據目錄、歸檔目錄 (先安裝PostgreSQL)

$ mkdir -p /home/postgresql/data/  
$ chown -R postgres:postgres /home/postgresql/data/ #修改data目錄的用戶及組為postgres  
$ chmod 700 -R /home/postgresql/data #修改data目錄的權限為700 (讀:4,寫:2,執行:1,-表示0,-R表示級聯)  

2、修改數據存儲路徑

$ vim /usr/lib/systemd/system/postgresql-10.service  
  Environment=PGDATA=/home/postgresql/data/ #找到Environment=PGDATA, 修改 

3、 初始化數據庫

$ /usr/pgsql-10/bin/postgresql-10-setup initdb
$ cd /home/postgresql/data/ #先進入/home/postgresql/data/在刪除data下的所有文件
$ rm -rf *
$ su - postgres
$ pg_basebackup -h 主服務器IP -U 主從復制角色 -D /home/postgresql/data -X stream -P -p 主服務器端口  
  Password: replica  
  (等待同步)  
$ cp /usr/pgsql-10/share/recovery.conf.sample /home/postgresql/data/recovery.conf  
$ exit  

4、修改相關配置文件(recovery.conf和postgresql.conf)

  $ vim /home/postgresql/data/recovery.conf
  
  standby_mode = on 
  primary_conninfo = 'user=主服務器用戶名 password=主服務器密碼 host=主服務器IP port=主服務器端口'
  #trigger_file = '/var/lib/pgsql/9.6/data/trigger.kenyon' #主從切換時后的觸發文件 (沒有配置,使用默認, 暫時未啟用)
  recovery_target_timeline = 'latest'

  $ vim /home/postgresql/data/postgresql.conf

   
  max_connections = 300  (master的最大連接數要小於slaver,一定要改大)
  hot_standby_feedback = on #如果有錯誤的數據復制,是否向主進行范例  

  port = 999 #端口號(一般不需要改) 
  hot_standby = on #說明這台機器不僅僅用於數據歸檔,也用於查詢  (默認值一般不需要改)
  max_standby_streaming_delay = 30s  (默認值一般不需要改)
  wal_receiver_status_interval = 10s #多久向主報告一次從的狀態  (默認值一般不需要改)

5、配置全局配置

$ vim /etc/profile 
export PGDATA=/home/postgresql/data # 數據庫的數據目錄
export PGPORT=9999 # 數據庫端口  
$ source /etc/profile  

6、開機自啟

$ systemctl enable postgresql-10  
$ systemctl start postgresql-10  

測試主從是否可用(主服務器創建一個庫看從服務器是否有)

$ su - postgres  
$ psql  
$ select client_addr,sync_state from pg_stat_replication;	#在主服務器查看同步記錄是否存在

修改遠程登錄密碼(創建用戶就不在這寫了,使用postgres登錄測試下)

$ su - postgres  
$ psql -U postgres  
alter user postgres with password '密碼';


免責聲明!

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



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