一、主库配置:
1.配置 master postgresql.conf
ubuntu在此目录下可找到:/etc/postgresql/9.6/mian
wal_level = 'logical'
max_worker_processes = 10 # one per database needed on provider node
# one per node needed on subscriber node
max_replication_slots = 10 # one per node needed on provider node
max_wal_senders = 10 # one per node needed on provider node
shared_preload_libraries = 'pglogical'
2.相同目录下配置 pg_hba.conf 的备份设置:
根据自己数据库服务器地址情况配置。这里是本地环境地址。
3.在master上进入需要被同步的数据库,这里样例使用的是安装后默认的postgres数据库:
切换 postgres 用户进入 数据库后台:sudo -u postgres psql
\c dbname 进入需要同步的数据库,
在此输入创建pglogical 扩展:
creaste extension pglogical;
创建节点:
SELECT pglogical.create_node(node_name := 'master',dsn := 'host=自己IP port=5432 dbname=synctest user=自己dbuser password=自己dbpassword');
一定要封号结尾!!!!
创建同步规则:
select pglogical.replication_set_add_all_tables('default',array['public'])
二、从库配置:
1.配置 slave数据库 postgresql.conf
ubuntu在此目录下可找到:/etc/postgresql/9.6/mian
wal_level = 'logical'
max_worker_processes = 10 # one per database needed on provider node
# one per node needed on subscriber node
max_replication_slots = 10 # one per node needed on provider node
max_wal_senders = 10 # one per node needed on provider node
shared_preload_libraries = 'pglogical'
2.在slave服务器上进入备份的数据库,这里样例使用的是安装后默认的postgres数据库:
切换 postgres 用户进入 数据库后台:sudo -u postgres psql
\c postgres 进入需要同步的postgres 数据库,
在此输入创建pglogical 扩展:
creaste extension pglogical;
创建节点 :
SELECT pglogical.create_node(node_name := 'slave',dsn := 'host=slaveIP port=5432 dbname=synctest user=slave-dbuser password=slave-dbpassword');
创建subscription:
select pglogical.create_subscription(subscription_name:='sync',provider_dsn:='host=provider_ip port=5432 user=user password=pwd dbname=synctest') ;#创建同步作业,开始同步
注意事项:
1.主从库数据库名一致,表名,表结构一致。
2.需要备份的数据库表一定要有主键 ;
3.一定要先创建数据库主从表结构,后开始执行文档的内容。