我有一台运行 Postgres 9.4 的生产服务器。数据库 > 10 GB。是否可以在不停机和不丢失数据的情况下升级到 Postgres 9.5?
升级教程建议在执行时停止 Postgres sudo pg_upgradecluster 9.4 main
,但这可能需要很长时间。更新一个 10 GB 的集群可能需要几个小时!
我也试过了pg_dump mydb > db.sql
。删除数据库并在 PG 9.4 ( psql -d mydb -f db.sql
) 中再次插入转储大约需要 50 分钟。
但是在 PG 9.5 中插入转储仅在 7 个多小时后才完成。特别是创建索引真的很慢......
2016-07-18 00:13:55 CEST [60358-5] ERROR: canceling autovacuum task
2016-07-18 00:13:55 CEST [60358-6] CONTEXT: automatic analyze of table ...
2016-07-18 00:36:20 CEST [60366-1] ERROR: canceling autovacuum task
2016-07-18 00:36:20 CEST [60366-2] CONTEXT: automatic analyze of table ...
2016-07-18 …
Run Code Online (Sandbox Code Playgroud) 同步正在运行的生产服务器的大量数据的最佳方法是什么?
我们的服务器在 100 万个目录中存储了超过 2000 万个文件(10k 的小文件和高达 50MB 的更大文件)。所有数据的大小约为 5 TB(稳步增加)。
是否可以使用 lsyncd 同步数据以及有哪些限制(尤其是 inotify)?lsyncd 需要多少额外空间?负载(CPU 和内存)和实时时间如何?
另一种解决方案是 GlusterFS。是否可以在没有停机或停机时间最短的生产中使用 GlusterFS?GlusterFS 在 x-attributes 文件中存储了大量魔法数据,存储量比没有 GlusterFS 的系统大 15% 到 20%。好像浪费了很多……?负载呢?
至少 rsync 和 cronjobs 可以完成这项工作。rsync 只会在从属服务器上运行......所以主服务器上不需要额外的空间,但是每次 cron 运行时 rsync 必须读取完整的目录树......