Postgres配置主从流复制

发表于:2015-8-03 10:53

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:叶剑峰    来源:51Testing软件测试网采编

  postgres主从流复制
  postgres在9.0之后引入了主从的流复制机制,所谓流复制,就是从库通过tcp流从主库中同步相应的数据。postgres的主从看过一个视频,大概效率为3w多事务qps。
  postgres的主从主称之为primary,从称为stand_by。主从配置需要注意的一个是主从的postgres的版本,环境,等最好都需要一致,否则可能产生奇奇怪怪的问题。
  postgres的主配置
  主是10.12.12.10这台机器
  首先需要配置一个账号进行主从同步。
  修改pg_hba.conf,增加replica用户,进行同步。
  host    replication     replica     10.12.12.12/32                 md5
  这样,就设置了replica这个用户可以从10.12.12.12 对应的网段进行流复制请求。
  给postgres设置密码,登录和备份权限。
  postgres# CREATE ROLE replica login replication encrypted password 'replica'
  修改postgresql.conf,注意设置下下面几个地方:
  wal_level = hot_standby  # 这个是设置主为wal的主机
  max_wal_senders = 32 # 这个设置了可以最多有几个流复制连接,差不多有几个从,就设置几个
  wal_keep_segments = 256 # 设置流复制保留的最多的xlog数目
  wal_sender_timeout = 60s # 设置流复制主机发送数据的超时时间
  max_connections = 100 # 这个设置要注意下,从库的max_connections必须要大于主库的
  重启主
  pg_ctl restart
  postgres的从配置
  从是10.12.12.12这台机器
  创建的目录为 /data/pgsql/data2
  pg_basebackup -F p --progress -D /data/pgsql/data2 -h 10.12.12.10 -p 5432 -U replica --password
  这里使用了pg_basebackup这个命令,/data/pgsql/data2这个目录是空的
  成功之后,就可以看到这个目录中现有的文件都是一样的了。
  进入到/data/pgsql/data2目录,复制recovery.conf,这个文件可以从pg的安装目录的share文件夹中获取,比如
  cp /usr/local/postgres94/share/recovery.conf.sample /data/pgsql/data2/recovery.conf
  修改recovery.conf,只要修改几个地方就行了
  standby_mode = on  # 这个说明这台机器为从库
  primary_conninfo = 'host=10.12.12.10 port=5432 user=replica password=replica'  # 这个说明这台机器对应主库的信息
  recovery_target_timeline = 'latest' # 这个说明这个流复制同步到最新的数据
  postgresql.conf中也有几个地方要进行修改
  max_connections = 1000 # 一般查多于写的应用从库的最大连接数要比较大
  hot_standby = on  # 说明这台机器不仅仅是用于数据归档,也用于数据查询
  max_standby_streaming_delay = 30s # 数据流备份的最大延迟时间
  wal_receiver_status_interval = 1s  # 多久向主报告一次从的状态,当然从每次数据复制都会向主报告状态,这里只是设置最长的间隔时间
  hot_standby_feedback = on # 如果有错误的数据复制,是否向主进行反馈
  好了,现在启动从库
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号