postgresql - pg_upgradecluster 花费太多时间(165GB 数据库大约需要 8 小时)任何解决方法?
问题描述
我正在尝试将 postgres-9.3 升级到 postgres-10,数据库大小约为 165GB。我正在使用“sudo pg_upgradecluster 9.3 main”来执行此操作,但这需要大约 8 小时,这对于我的实时 web 应用程序来说停机时间太长了。任何建议以减少停机时间和更快地使其更好。
解决方案
您可以告诉pg_upgradecluster使用 Postgres 的 pg_upgrade 工具和该--link
选项,该选项应该在几分钟而不是几小时内完成:
pg_upgradecluster --method=upgrade --link ......
请注意,--link 不会复制您的数据,因此恢复升级的唯一方法是将上次备份恢复到 9.3 安装。
如果使用链接模式,升级会更快(无需复制文件)并且使用更少的磁盘空间,但是一旦升级后启动新集群,您将无法访问旧集群。
...
如果您想使用链接模式并且不希望在新集群启动时修改旧集群,请制作旧集群的副本并在链接模式下升级它。要制作旧集群的有效副本,请在服务器运行时使用 rsync 创建旧集群的脏副本,然后关闭旧服务器并再次运行 rsync --checksum 以使用任何更改更新副本以使其持续的。
推荐阅读
- asp.net-mvc - ASP.NET MVC 需要 DRY 类似的控制器动作
- javascript - Jenkins-量角器集成-Centos7
- angular - 如何为 FormGroup 设置名称?
- python - 如何清理字符串列表
- regex - 期望脚本:从 $argv 构造正则表达式字符串
- excel - 计算未来到期日
- xml - 如何将字符串输出到循环 XSLT 中
- reactjs - webpack.config with font-awesome
- c++ - Why is Vector used as a second argument to Priority Queue?
- swiftui - 使父视图的宽度成为最小孩子的宽度?