Postgres的Standby数据库搭建,异步流复制示例及同步流复制实例
来源:互联网 发布:已恢复的网络购彩 编辑:程序博客网 时间:2024/05/22 08:14
参考:《PostgreSQL修炼之道》以及http://www.postgresql.org/docs/9.5/
异步复制的缺点是Standby上的数据落后于主库上的数据,如果使用Hot Standby做读写分离,就会存在数据一致性的问题,这对于一些一致性较高的应用来说是不可接受的。
同步复制要求在数据写入Standby数据库后,事务的commit才返回,所以Standby库出现问题时,会导致主库被hang住,解决这个问题的方法是启动两个Standby库,这两个Standby库只要有一个正常,就不会让主库hang住。
1.异步流复制示例
配置环境:
主库 —— IP:192.168.1.110 数据目录:/var/lib/pgsql/9.5/data
Standby—— IP:192.168.1.122 数据目录:/var/lib/pgsql/9.5/data
主库配置:修改/var/lib/pgsql/9.5/data/pg_hba.conf配置 加入 host replication postgres 192.168.1.0/24 trust
修改/var/lib/pgsql/9.5/data/postgresql.conf配置 加入 listen_addresses='*'
max_wal_senders=5
wal_level=hot_standby
完成准备工作后使用pg_basebackup工具在122机器上生成基础备份,命令:pg_basebackup -h 192.168.1.110 -U postgres -F p -P -x -R -D /var/lib/pgsql/9.5/data -l postgresbackup20160101(如果提示目录非空时清空相应目录)
命令执行完后可以看到数据目录下有了数据文件。注意这些文件的拥有者,如果不是postgres,则进行修改chown -R postgres.postgres /var/lib/pgsql/9.5/data
启动Standby库时需要修改122上的/var/lib/pgsql/9.5/data/postgresql.conf配置参数 hot_standby=on。
启动/bin/systemctl start postgresql-9.5.service
至此异步流复制实例搭建完成。测试可以在主库建立一个表 ,插入数据,去Standby库查看。在Standby库进行操作会失败因为Hot Standby是只读的。
2.同步流复制示例
同步流复制一般至少两个standby库,这里简单的只用一个。
配置环境:
主库 —— IP:192.168.1.110 数据目录:/var/lib/pgsql/9.5/data
Standby—— IP:192.168.1.122 数据目录:/var/lib/pgsql/9.5/data
主库配置:修改/var/lib/pgsql/9.5/data/pg_hba.conf配置 加入 host replication postgres 192.168.1.0/24 trust
修改/var/lib/pgsql/9.5/data/postgresql.conf配置 加入 listen_addresses='*'
max_wal_senders=5
wal_level=hot_standby
基础备份工作同异步流复制示例。
主库和Standby库都停止掉。
主库修改配置 /var/lib/pgsql/9.5/data/postgresql.conf 中加入 synchronous_standby_names='standby01'
Standby库配置修改:/var/lib/pgsql/9.5/data/recovery.conf 加入application_name配置,变为 standby_mode = 'on'
primary_conninfo = 'application_name=standby01 user=postgres host=192.168.1.110 port=5432 sslmode=prefer sslcompression=1 krbsrvname=postgres'
启动
主库进行操作时,Standby库同步改变。如果停掉Standby库,主库进行操作会hang住,直到Standby库重新启动可用时。
1 0
- Postgres的Standby数据库搭建,异步流复制示例及同步流复制实例
- postgres standby实现同步流复制
- 流复制实现standby数据库【双机热备】及异步、同步流复制测试
- postgresql 异步流复制hot standby搭建
- PostgreSQL学习篇16.2 同步流复制的standby数据库
- postgresql同步流复制的Hot Standby
- PostgreSQL学习第十六篇 异步流复制Hot Standby的示例
- postgresql异步流复制Hot Standby
- postgres 9.2.3流复制环境搭建
- Postgres主从流复制
- postgresql 数据库异步流 hot-standby异步流环境搭建及主备库切换
- postgres复制数据库
- centos6.5下postgresql9.4.3同步流复制的standby安装与配置
- postgres 流复制环境大家
- postgres配置主从流复制
- postgres配置主从流复制
- postgres主从异步复制配置
- Postgres 主从复制搭建步骤
- Fragment生命周期
- 单例模式
- 深入理解GCD(一)
- js获取当前时间戳
- 使用FormData对象
- Postgres的Standby数据库搭建,异步流复制示例及同步流复制实例
- std::set
- 电阻屏和电容屏的区别
- git 本地代码仓库搭建
- java 异常(二)代码
- ubuntu五笔输入法设置过程
- Material Design
- 数字签名和加密的区别
- 三大框架整合