PostgreSQL Hot Standby功能简析

来源:未知 责任编辑:责任编辑 发表时间:2014-01-25 11:37 点击:

一、简介
   PostgreSQL数据库提供了类似Oracle的standby数据库的功能。PostgreSQL9.0 standby数据库在应用WAL日志的同时,也可以提供只读服务,这是PostgreSQL9.0中最激动人心的功能,这个功能在oracle数据库中也只是最新版本11g中才有的新功能。这个功能在oracle中叫active dataguard,在PostgreSQL中称为hot standby。在利用日志恢复数据的同时可以用只读的方式打开数据库,用户可以在备用数据库上进行查询、报表等操作,也可用做读写分离。在PostgreSQL9.0之前,也可以搭建standby数据库,但standby数据库只能处于恢复状态中,不能打开,也不支持只读打开。而这种情况在9.0之后彻底改变了。  www.2cto.com  
 
   PostgreSQL 9.0中日志传送的方法有两种:
   基于文件(base-file)的传送方式,这种方式是PostgreSQL9.0之前就提供的方法。也就是服务器写完一个WAL日志文件后,才把WAL日志文件拷贝到standby数据库上去应用。
   流复制(streaming replication)的方法,这是PostgreSQL9.0才提供的新方法。这个方法就是事务提交后,就会把生成的日志异步的传送到standby数据库上应用,这比基本文件的日志传送方法有更低的数据延迟。
 
二、设置步骤
   基于文件(base-file)的传送方式在PostgreSQL8.X中就有的方式,这里不就介绍了,这里主要介绍流复制的standby的搭建方法,设置步骤如下:
   对主数据库做一个基础备份,然后把基础备份拷贝到standby机器,把基础备份恢复到standby机器上。
   1、在主库上设置wal_level = hot_standby。
   2、在主数据库上设置wal_keep_segments为一个足够大的值,以防止主库生成WAL日志太快,日志还没有来得及传送到standby,就会循环覆盖了;
   3、在主数据库上设置max_wal_sender参数,这个参数是控制主库可以最多有多少个并发的standby数据库;  www.2cto.com  
   4、在主数据库上建一个超级用户,standby数据库会使用这个用户连接到主库上拖WAL日志。
   5、在主数据库上的pg_hba.conf中设置listen_addresses和连接验证选项,允许standby数据库连接到主库上来拖WAL日志数据,如下所示:
   # TYPE DATABASE USER CIDR-ADDRESS METHOD
 
   host    replication     postgres        10.0.0.136/8              md5
   其中数据库名必须填“replication”, 这是一个为standby连接使用了一个虚拟的数据库名称。用户postgres就是步骤4上给standby连接使用的在主库上建的一个超级用户。10.0.0.136就是standby数据库的IP地址。
 
   6、在备份上建一个recovery.conf,设置以下几项:
standby_mode = 'on'
 
primary_conninfo = 'host=127.0.0.1 port=5432 user=postgres password=123456'
 
trigger_file = '/opt/pgstb/trigger_standby'
   standby_mode设置为'on',表明数据库恢复完成后,不会被断开,仍然处理等待日志的模式。
   primary_conninfo上standby连接到主数据库所需要的连接串。
   7. 启动standby数据库,这样standby数据库就算搭建好了。
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • Request.ServerVariables 参数大全
  • 执行全文索引时出现权限不足的解决方法
  • 导入excel文件处理流程节点的解决方案
  • 查看sql修改痕迹(SQL Change Tracking on Table)
  • MongoDB安装为Windows服务方法与注意事项
  • App数据层设计及云存储使用指南
  • PostgreSQL启动过程中的那些事三:加载GUC参数
  • 写给MongoDB开发者的50条建议Tip1
  • Percolator与分布式事务思考(二)
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1