Nie*_*ian 3 postgresql database-performance pg-upgrade
我打算将一个很大的PostgreSQL集群从9.3升级到11。
升级
该集群的大小约为1,2Tb。该数据库具有一个磁盘系统,该磁盘系统由8个具有192GB内存和64个内核的DC版本SSD的快速HW RAID 10阵列组成。我通过先将数据复制到具有流复制的新服务器来执行升级,然后将其升级到11。
我使用pg_upgrade该--link选项测试了升级,这花费了不到一分钟的时间。我还定期(没有--link)对许多工作进行了升级测试,这需要几个小时(+4)。
问题
现在,显而易见的选择让我使用了该--link选项,但是,所有这些使我感到奇怪-与常规的较慢方法相比,使用该选项是否有任何不利之处(在性能或功能方面)?我不知道postgresql数据结构的内部工作原理,但是我觉得升级后完全重写数据和仅使用数据之间可能会有性能差异hard links-意味着什么?
注意事项
我可以大概的缺点的文档中找到的唯一的事情--link就是升级完成之后不能够访问旧数据目录的缺点https://www.postgresql.org/docs/11/pgupgrade.htm但是,这种只是出于安全考虑,而不是性能缺陷,并且在我首先复制数据的情况下并没有真正应用。我能想到的唯一的另一件事就是回收空间,无论性能如何。但是,据我了解,还可以通过在升级升级的数据库之后运行VACUUM FULL DATABASE(或CLUSTER?)命令来实现--link?另外,据我了解,回收空间对SSD的性能并不是很重要。
我很高兴有人能对此有所帮助。
使用硬链接绝对没有缺点(除了您指出的那样,旧群集已死,必须删除)。
硬链接与普通文件没有任何区别。
UNIX中的“文件”实际上是“ inode”,即包含文件元数据的结构。目录中的条目是指向该索引节点的(硬)链接。
如果您创建到索引节点的另一个硬链接,则同一文件将位于两个不同的目录中,但这对文件的行为没有任何影响。
当然,您必须确保不要同时启动唯一服务器和新服务器。立即数据损坏将随之发生。因此,您应该尽快删除旧群集。
| 归档时间: |
|
| 查看次数: |
168 次 |
| 最近记录: |