PostgreSql 主從配置(主從的版本必須一致)
在進行配置之前先把數據庫環(huán)境準備好
1官地、主服務器(Ubuntu16.04)Postgresql安裝(已安裝好的,跳過這一步)
#查尋當前可安裝版本
apt-cache show postgresql | grep Version
#選擇版本安裝
sudo apt-get install postgresql=< version >
#例子:
sudo apt-get install postgresql=9.5
2、主服務器配置
#2.1镀钓、修改主配置文件
#不清楚當前已安裝版本的可以psql -V查詢當前版本
vim /etc/postgresql/9.5/main/postgresql.conf
#在最后面加上以下配置:
#監(jiān)聽可訪問IP配置进栽,*代表全部
listen_addresses = '*'
#主從配置
wal_level = hot_standby
synchronous_commit = local
hot_standby = on
max_wal_senders = 10
wal_keep_segments = 64
max_connections = 100
#2.2雷滋、配置可訪問的用IP段
vim /etc/postgresql/9.5/main/pg_hba.conf
#在最后加上以下配置
host all all 0.0.0.0/0 md5
host replication repuser 從服務器IP md5
#2.3类缤、創(chuàng)建用于復制的用戶
#啟動數據庫服務(或者用:service postgresql start)
/etc/init.d/postgresql start
#為復制過程創(chuàng)建一個新的PostgreSQL用戶种吸。 登錄postgres用戶并啟動PostgreSQL shell
su - postgres psql
#創(chuàng)建一個新用戶:
postgres=# CREATE USER repuser REPLICATION LOGIN ENCRYPTED PASSWORD '123456';
#關閉shell.
#主服務器配置結束。
3呀非、從服務器(Mac)Postgresql安裝
#如果已安裝的,查看當前版本是否與主服務器一致(一致的可以跳到從服務器配置)
psql -V
#MAC brew查看可安裝版本
brew search postgresql@
#選擇跟主服務器版一樣的版本進行安裝镜盯,原來的版本不需要卸載
brew install postgresql@9.5
4岸裙、從服務器配置
#4.1、pg_basebackup 創(chuàng)建備庫
#如果是安裝了多版本的速缆,需要指定一下要使用的版本環(huán)境變量
#指定pg_ctl,psql,pg_basebackup版本命令路徑
export PATH=/usr/local/Cellar/postgresql@9.5/9.5.20/bin:$PATH
#創(chuàng)建一個新目錄
mkdir /usr/local/pgsql/data
#更改權限
chmod 700 /usr/local/pgsql/data
#使用pg_basebackup將主目錄從主服務器復制到從服務器:
pg_basebackup -D /usr/local/pgsql/data -Fp -Xs -v -P -h 主服務器IP -p 5432 -U repuser
#顯示類容如下則表示成功
transaction log start point: 0/2000060 on timeline 1
pg_basebackup: starting background WAL receiver
22806/22806 kB (100%), 1/1 tablespace
transaction log end point: 0/2000130
pg_basebackup: waiting for background process to finish streaming ...
pg_basebackup: base backup completed
#4.2降允、復制默認安裝數據目錄下的(/usr/local/var/postgres@9.5)pg_hba.conf,pg_ident.conf艺糜,postgresql.conf到/usr/local/pgsql/data下剧董,并修改配置文件
#不清楚當前已安裝版本的可以psql -V查詢當前版本
vim /usr/local/pgsql/data/postgresql.conf
#在最后面加上以下配置:
#主從配置
wal_level = hot_standby
synchronous_commit = local
hot_standby = on
max_wal_senders = 10
wal_keep_segments = 64
max_connections = 100
#修改 pg_hba.conf
vim /usr/local/pgsql/data/pg_hba.conf
#在最后添加
host replication repuser master md5
#4.3、在/usr/local/pgsql/data下創(chuàng)建一個新的recovery.conf文件破停,并粘貼以下內容
recovery_target_timeline = 'latest'
standby_mode = on
primary_conninfo = 'host=主服務器IP port=5432 user=repuser password=123456'
trigger_file = '/Users/xxx/Public/postgres/trigger.5432'
#啟動服務器翅楼,在主服務器修改表內容,查看從數據是否有變化
pg_ctl -D /usr/local/pgsql/data start