postgresql – 在ubuntu服务器上从postgres 9.1升级到9.3
我有我的生产服务器(ubuntu 13.10)与
postgresql 9.1一起运行.
我想使用9.3的一些功能,因此想要升级. 有人可以帮助我从9.1升级到9.3,以便停机时间不超过30分钟.或者? 主要关注是防止数据丢失或文件冗余.
从不同的主要版本(例如9.1到9.3)升级PostgreSQL基本上有三种方法.
使用pg_dump进行升级 第一个,如果可能,建议使用较新(9.3)版本的二进制文件转储旧版本(9.1),并将其恢复到由较新版本创建的新集群上. 通常,这种方法较慢,但也是最可行的方法.使其更快的一个提示是使用并发.要使用并行作业转储,您可以执行以下操作: $pg_dump --format=directory --jobs=4 --no-synchronized-snapshots --file=/path/to/mydump mydatabase 您必须为每个数据库执行此操作,将–jobs = 4值调整为任何值(测试从2到核数的某些值,并查看哪个值提供更好的速度).此外,在此阶段,任何人都不应该被绑定到数据库,任何修改都会导致转储损坏(因为非安全选项–no-synchronized-snapshots). 之后,您可以使用pg_restore将转储恢复到新实例: $createdb <options> -T template0 mydatabase $pg_restore --exit-on-error --jobs=4 --dbname=mydatabase /path/to/mydump 之后,建议在您的数据库上运行ANALYZE: $vacuumdb --analyze-only mydatabase (如果你能负担得起时间,只运行 – 分析到VACUUM数据库并更新可见性图) 使用pg_upgrade进行升级 另一种选择是使用the contrib 在使用之前,您必须备份整个数据目录,因为在–link模式下,如果出现问题,您可能会丢失这两个数据(新旧).另外,阅读整个文档,特别是底部的notes(pg_upgrade有一些限制). 更新: 使用基于触发器的复制工具升级 升级版本的另一个选择是使用基于触发器的复制工具.像Slony,Bucardo和Londiste. 这是需要尽可能减少停机时间的选项,但它是最难处理的选项. 为此,您需要构建一个主从,其中主服务器是您当前的版本(9.1),从服务器是新版本(9.3).然后,等待第一次同步(系统仍在生产中),然后关闭连接到数据库的所有人(停机时间从这里开始),等待奴隶赶上,促使它(奴隶)掌握和将所有客户端/应用程序重定向到此新版本.而且你已经完成了. Slony文档提供了到upgrade PostgreSQL using Slony的分步骤. 哪一个选择 嗯,一如既往地依赖,恢复: >转储恢复是最可靠的,但通常是最慢的(虽然并行性可以给出相当好的结果) 我希望我能提供帮助.祝好运. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Solr配置文件schema.xml和solrconfig.xml分析
- flex布局制作导航两边的线条
- swift – 带闭包的属性初始化
- postgresql – 在指定的距离限制和顺序中找到沿线串的最近点
- Unity3D研究院之将场景导出XML或JSON或二进制并且解析还原场
- postgresql之vacuum
- Function Maps: A Flexible Representation of Maps Betwee
- 区分关联、依赖和聚集关系
- oracle-golden-gate – 如何为Oracle GoldenGate编写Java适
- vb6 – 为什么Windows安装程序每次启动时都启动Visual Basi