天天看点

postgres配置主从流复制postgres主从流复制postgres的主配置postgres的从配置确认主库和从库都配置好了查看复制状态同步复制

postgres在9.0之后引入了主从的流复制机制,所谓流复制,就是从库通过tcp流从主库中同步相应的数据。postgres的主从看过一个视频,大概效率为3w多事务qps。

postgres的主从主称之为primary,从称为stand_by。主从配置需要注意的一个是主从的postgres的版本,环境,等最好都需要一致,否则可能产生奇奇怪怪的问题。

主是10.12.12.10这台机器

首先需要配置一个账号进行主从同步。

修改pg_hba.conf,增加replica用户,进行同步。

这样,就设置了replica这个用户可以从10.12.12.12 对应的网段进行流复制请求。

给postgres设置密码,登录和备份权限。

修改postgresql.conf,注意设置下下面几个地方:

重启主

pg_ctl restart

从是10.12.12.12这台机器

创建的目录为 /data/pgsql/data2

这里使用了pg_basebackup这个命令,/data/pgsql/data2这个目录是空的

成功之后,就可以看到这个目录中现有的文件都是一样的了。

进入到/data/pgsql/data2目录,复制recovery.conf,这个文件可以从pg的安装目录的share文件夹中获取,比如

修改recovery.conf,只要修改几个地方就行了

postgresql.conf中也有几个地方要进行修改

好了,现在启动从库

查看进程,主库所在的机器中会看到sender进程

从库所在的机器中会看到receiver进程

主库中执行:

看到上面的sync_state的状态有同步和异步的区别。

我们之前的概念都是异步备份,就是一个事务完成了之后,直接返回程序,然后纪录日志,由复制进程重放日志进行数据复制。同步备份的概念,就是一个事务只有当完成了数据复制之后,才返回到程序中。当然同步的性能一定会比异步的性能差一个量级。

继续阅读