首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在同时包含InnoDB和MyISAM表的数据库的RDS中创建读取副本。

在同时包含InnoDB和MyISAM表的数据库的RDS中创建读取副本。
EN

Stack Overflow用户
提问于 2014-03-17 23:26:48
回答 2查看 1.1K关注 0票数 2

谁能告诉我,有没有可能在Amazon RDS服务中从包含InnoDB和MyISAM表的数据库中创建一个读取副本。

我知道亚马逊不备份MyISAM表,但在创建read副本时,文档似乎有点武断。

这篇文档对我来说似乎有点争议:“读副本需要事务存储引擎,并且只支持InnoDB存储引擎。MyISAM等非事务引擎会阻止读副本按预期工作。但是,如果您仍然选择将MyISAM与读副本一起使用,我们建议您仔细观察亚马逊CloudWatch”副本延迟“指标(可通过亚马逊网络服务管理控制台或亚马逊云观察API获得),并在由于复制错误而落后时重新创建读副本。”

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

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

EN

回答 2

Stack Overflow用户

发布于 2015-04-28 12:05:20

根据AWS文档:

准备使用MyISAM的MySQL DB实例

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

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

刷新并锁定源DB实例中的表。

使用以下各节中的方法之一创建读取复制副本。

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

票数 2
EN

Stack Overflow用户

发布于 2014-05-10 15:37:27

基本上,文档是说他们建议只使用InnoDB表。这有助于复制和崩溃恢复。从技术上讲,您仍然可以使用MyISAM表,但结果可能不是您所期望的,如果出现问题,您将只能靠自己。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22458411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档