postgresql热备.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
postgresql热备

postgresql热备 PostgreSQL数据库提供了类似Oracle的standby数据库的功能。PostgreSQL9.0 standby数据库在应用WAL日志的同时,也可以提供只读服务,这是PostgreSQL9.0中最激动人心的功能,这个功能在oracle数据库中也只是必威体育精装版版本11g中才有的新功能。这个功能在oracle中叫active dataguard,在PostgreSQL中称为hot standby。在利用日志恢复数据的同时可以用只读的方式打开数据库,用户可以在备用数据库上进行查询、报表等操作,也可用做读写分离。在PostgreSQL9.0之前,也可以搭建standby数据库,但standby数据库只能处于恢复状态中,不能打开,也不支持只读打开。而这种情况在9.0之后彻底改变了。 PostgreSQL 9.0中日志传送的方法有两种: 基于文件(base-file)的传送方式,这种方式是PostgreSQL9.0之前就提供的方法。也就是服务器写完一个WAL日志文件后,才把WAL日志文件拷贝到standby数据库上去应用。 流复制(streaming replication)的方法,这是PostgreSQL9.0才提供的新方法。这个方法就是事务提交后,就会把生成的日志异步的传送到standby数据库上应用,这比基本文件的日志传送方法有更低的数据延迟。 基于文件(base-file)的传送方式在PostgreSQL8.X中就有的方式,这里不就介绍了,这里主要介绍流复制的standby的搭建方法,设置步骤如下: 对主数据库做一个基础备份,然后把基础备份拷贝到standby机器,把基础备份恢复到standby机器上 在主库上设置wal_level = hot_standby。 在主数据库上设置wal_keep_segments为一个足够大的值,以防止主库生成WAL日志太快,日志还没有来得及传送到standby,就会循环覆盖了; 在主数据库上设置max_wal_sender参数,这个参数是控制主库可以最多有多少个并发的standby数据库; 在主数据库上建一个超级用户,standby数据库会使用这个用户连接到主库上拖WAL日志。 在主数据库上的pg_hba.conf中设置listen_addresses和连接验证选项,允许standby数据库连接到主库上来拖WAL日志数据,如下所示: # TYPE DATABASE USER CIDR-ADDRESS METHOD host replication repl 192.168.1.100/32 md5 其中数据库名必须填“replication”, 这是一个为standby连接使用了一个虚拟的数据库名称。用户repl就是步骤4上给standby连接使用的在主库上建的一个超级用户。192.168.1.100就是standby数据库的IP地址。 6. 在备份上建一个recovery.conf,设置以下几项: standby_mode = on primary_conninfo = host=127.0.0.1 port=5432 user=repl password=replpwd trigger_file = /opt/pgstb/trigger_activestandby standby_mode设置为on,表明数据库恢复完成后,不会被找开,仍然处理等待日志的模式。 primary_conninfo上standby连接到主数据库所需要的连接串。 7. 启动standby数据库,这样standby数据库就算搭建好了。 下面以实际的例子,为看standby上如何搭建的,我把standby数据库与主数据库建在一台机器上。 主数据库的数据目录为:/opt/pgpri,standby数据库的数据目录为/opt/pgstb。 为了便于启动和停止PostgreSQL,在.bash_profile文件中添加以下两行: alias pgstart=pg_ctl -D $PGDATA start alias pgstop=pg_ctl kill INT `head -1 $PGDATA/postmaster.pid` 在主数据库的/opt/pgpri/postgresql.conf文件中设置如下配置项: wal_level = hot_standby max_wal_senders = 2 wal_keep_segments = 32 在主数据库中的/opt/pgpri/pg_hba.conf中添加如下配置: host replication repl 127.0.0.1/32 md5 在数据库中建一个repl用户用

文档评论(0)

mn93322 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档