现在 AWS 正在通过 i3 系列服务器提供 NVMe,是否有在其中一个服务器的实例存储上托管数据库的最佳实践?
我的理解是,如果实例停止,存储可能会被完全删除。如果服务器有意或无意地重新启动,情况似乎并非如此,但您仍然只需按一下按钮即可删除重要数据,因此这非常可怕。
我对底层基础设施的理解是,这是因为 NVMe 存储直接连接到物理主机,因此如果亚马逊决定将您的 VM 移动到另一台主机,您将丢失数据。此外,将关键任务数据存储在 AWS 旁边的单个硬件设备上也是不好的。
但考虑到 NVMe 相对于 EBS(SAN?)存储的性能优势,推荐的设置是什么? VM 副本、事务日志备份到永久存储等。
最佳答案
可以将 i3 实例上的 NVMe SSD 变成持久的高可用存储。
选项:
1) 在 2 或 3 个实例上的 NVMe SSD 之间进行镜像
2) NVMe SSD 和 EBS 之间的镜像(EBS 可以在不同的实例上),主要从 NVMe SSD 读取数据。
虽然写入性能仍将受到网络或 EBS 的限制,但您可以获得 NVMe 的完整读取性能。在大多数情况下,读取带宽是大型数据库运行繁重查询真正需要的带宽。
但是,关于实例之间的数据库故障转移以及实例停止/启动故障后恢复冗余的问题仍然存在。
具体查看此白皮书和第 9 页,了解有关如何为 Oracle 数据库集群完成的详细信息: https://www.flashgrid.io/wp-content/sideuploads/resources/FlashGrid_OracleRAC_on_AWS.pdf
本文主要关注 Oracle RAC 数据库,但同样的解决方案适用于单实例 Oracle 以及任何其他基于 Linux 的数据库。尽管如此,您仍然需要 Oracle Clusterware(免费)。
关于sql-server - AWS NVMe 存储 - 托管数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43201991/