gpt4 book ai didi

mysql - 在包含 InnoDB 和 MyISAM 表的数据库的 RDS 中创建只读副本。

转载 作者:行者123 更新时间:2023-11-29 02:25:42 26 4
gpt4 key购买 nike

谁能告诉我是否可以从包含 Amazon RDS 服务中的 InnoDB 和 MyISAM 表的数据库创建只读副本。

我知道 Amazon 不备份 MyISAM 表,但在涉及只读副本创建时,文档似乎有点武断。

这段文档对我来说似乎有点争议:“只读副本需要事务性存储引擎,并且仅支持 InnoDB 存储引擎。非事务性引擎(如 MyISAM)可能会阻止只读副本按预期工作。但是,如果您仍然选择将 MyISAM 与只读副本一起使用,我们建议您仔细观察 Amazon CloudWatch“副本滞后”指标(可通过 AWS 管理控制台或 Amazon Cloud Watch API 获取),并在因复制错误而落后时重新创建只读副本。”

一方面,它声明需要事务引擎,但另一方面,以下句子不禁止使用 MyIsam 表。我的意思是,我愿意承担在一定程度上丢失数据并发性的风险。

为什么我需要这个?我注意到我在 RDS 上有一个相当大的队列,CPU 使用率 < 20%。由于 CPU 使用率低,我花了一周时间优化查询。但是,队列就在那里,因为那里有很多流量。我得出结论,为了减少队列的大小,我需要创建一个主从解决方案并将错误宽松查询移动到从属以减少等待时间。

最佳答案

根据 AWS 文档:

准备使用 MyISAM 的 MySQL 数据库实例

如果您的 MySQL 数据库实例使用 MyISAM 等非事务性引擎,您将需要执行以下步骤才能成功设置只读副本。这些步骤是确保只读副本具有一致的数据副本所必需的。请注意,如果您的所有表都使用 InnoDB 等事务引擎,则不需要执行这些步骤。

停止对源数据库实例中非事务性表的所有 DML 和 DDL 操作并等待它们完成。 SELECT 语句可以继续运行。

刷新并锁定源数据库实例中的表。

使用以下部分中的方法之一创建只读副本。

使用 DescribeDBInstances API 操作等检查只读副本创建的进度。只读副本可用后,解锁源数据库实例的表并恢复正常的数据库操作。 http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReadRepl.html

关于mysql - 在包含 InnoDB 和 MyISAM 表的数据库的 RDS 中创建只读副本。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22458411/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com