首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在RDS上,我是否可以在读取副本中创建主服务器上不存在的表?

在RDS上,我是否可以在读取副本中创建主服务器上不存在的表?
EN

Stack Overflow用户
提问于 2013-01-19 02:20:56
回答 2查看 5.2K关注 0票数 9

我们有一个单独的RDS实例来处理会话状态表,但是发现会话DB负载非常低。如果我们可以将实例处理会话转换为主数据库的读取副本,那么我们可以将其用于只读任务,即使在副本中有很大的延迟也是安全的。

有没有人在RDS上做过这样的事情(可能而且安全吗)?我应该注意任何严重的副作用吗?更好地理解这一点的任何链接或帮助都会有所帮助。

http://aws.amazon.com/rds/faqs/#95试图回答这个问题,但我正在寻找更多的见解。

EN

回答 2

Stack Overflow用户

发布于 2017-05-27 06:36:38

是的,这是可能的。我使用RDS成功地使用了它,用于本地缓存的特定情况。

您需要将复制副本上的read_only参数设置为0。我必须重新启动服务器才能使该参数起作用。

如果使用不同表名,效果会很好,因为RDS不允许设置:replicate-ignore-table参数。

请记住,master<>slave之间不能有任何数据冲突。如果有一条语句在MASTER上运行正常,但在SLAVE上失败,那么您就中断了复制。例如,当您首先在SLAVE上创建表,然后在一段时间后将该表添加到MASTER中时,可能会发生这种情况。CREATE语句将在MASTER上干净地工作,但在SLAVE上失败,因为表已经存在。

假设您需要非常小心,允许您的应用程序写入SLAVE。如果您忘记/或犯了一个错误,并开始为您的一些其他数据写入读取副本,最终您可能会丢失数据或遇到难以调试的问题。

票数 3
EN

Stack Overflow用户

发布于 2014-06-24 22:15:28

没有什么可添加的--在纯读取副本上真正有意义的唯一正常情况是,如果主要用于报告或其他读取密集型的情况,则添加一些索引之类的东西。

如果您正在尝试预计算大量数据并修改读取副本上的内容,则需要非常小心,不要更改数据--如果读取不再一致,那么您就有麻烦了:)

如果你想知道如果你改变从服务器上的数据,而主服务器试图更新它,会发生什么,那么你已经走错了路。

不要这样做,除非你真的知道你在做什么,你知道所有的后果。

  • ,坦率地说,在我的经验中,MySQL复制可能是奇怪的,所以即使知道应该发生什么,以及当主机试图将更新的数据写入从机时会发生什么,你也已经更新了……谁知道呢。
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14405163

复制
相关文章

相似问题

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