PostgreSql 主从配置

PostgreSql 主从配置(主从的版本必须一致)

在进行配置之前先把数据库环境准备好

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
#在最后面加上以下配置:
#监听可访问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、创建用于复制的用户
#启动数据库服务(或者用:service postgresql start)
/etc/init.d/postgresql start  
#为复制过程创建一个新的PostgreSQL用户。 登录postgres用户并启动PostgreSQL shell
su - postgres psql
#创建一个新用户:
postgres=# CREATE USER repuser REPLICATION LOGIN ENCRYPTED PASSWORD '123456';
#关闭shell.
#主服务器配置结束。

3、从服务器(Mac)Postgresql安装

#如果已安装的,查看当前版本是否与主服务器一致(一致的可以跳到从服务器配置)
psql -V
#MAC brew查看可安装版本
brew search postgresql@
#选择跟主服务器版一样的版本进行安装,原来的版本不需要卸载
brew install [email protected]

4、从服务器配置

#4.1、pg_basebackup 创建备库
#如果是安装了多版本的,需要指定一下要使用的版本环境变量
#指定pg_ctl,psql,pg_basebackup版本命令路径
export PATH=/usr/local/Cellar/[email protected]/9.5.20/bin:$PATH
#创建一个新目录
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/[email protected])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下创建一个新的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

你可能感兴趣的:(PostgreSql 主从配置)