zoukankan      html  css  js  c++  java
  • pgsql的同步须知

    pgsql的同步模式是根据master上的日志来做的同步,有两种同步方式,参考
    http://www.chinaxing.org/articles/Postgres/2012/12/14/2012-12-14-hight-availability-in-postgresql.html

    pgsql的日志有一个自动回收的特性,如果某些日志发现不需要了,pgsql会重命名他们,并且用新日志覆盖;这带来一个问题,如果传送给备机的日志还没有全部传好,但是master上已经没有了,就会导致问题,所以,pgsql提供了一个接口,在postgresql.conf里面配置archive_command,这个用于在流复制的时候,pgsql会调用这里配置的命令,官方wiki的例子是cp到自定义的日志目录(你可以自己rsync到备机,如果用rsync,master上的wal_keep_segments也要设大一些,防止在rsync完成之前日志就没了),在备机上修改recovery.conf,里面配置restore_command,这个命令也会被调用

    关于9.1新增的pg_basebackup命令,德哥建议用rsync,看http://blog.163.com/digoal@126/blog/static/16387704020133277305874

    archive模式的例子,亲测通过
    master的postgresql.conf

    wal_level = hot_standby
    wal_keep_segments = 32
    max_wal_senders = 3
    
    archive_mode = on
    #这里之所以mkdir,是自己在配置的时候死活提示没有权限,发现路径不过,自己mkdir以后,就很清楚的知道在哪里了
    archive_command = 'mkdir -p pg_archive;cp -i %p pg_archive/%f'


    slave的recovery.conf,暂时随便找个地方放好了

    standby_mode = on
    primary_conninfo = 'host=192.168.1.111 user=repuser password=123456'
    restore_command = 'cp pg_archive/%f %p'
    #某个时候会自动调用cleanup清理,默认pg_archivecleanup没有安装,需要apt-get install postgresql-contrib
    archive_cleanup_command = 'pg_archivecleanup pg_archive %r'

    slave上使用pg_basebackup来同步的测试

    sudo service postgresql stop;sudo rm -rf /var/lib/postgresql/9.4/main;sudo -u postgres pg_basebackup -h 192.168.1.111 -D /var/lib/postgresql/9.4/main -U repuser -v -P;sudo cp /home/mmc/Desktop/recovery.conf /var/lib/postgresql/9.4/main/;sudo service postgresql start;
  • 相关阅读:
    第一节:RestfulCRUD案例
    第三节:<mvc:annotationdriven />标签解析
    第二节:SpringMVC 的表单标签
    第一节:SpringMVC—数据绑定流程分析
    第四章:(2)Web开发 之 webjars&静态资源映射规则
    第三节:处理静态资源
    10.05
    四则运算二柱子1
    10.08
    10.02
  • 原文地址:https://www.cnblogs.com/ziyouchutuwenwu/p/4299397.html
Copyright © 2011-2022 走看看