我们有一个单独的RDS实例来处理会话状态表,但是发现会话DB负载非常低。如果我们可以将实例处理会话转换为主数据库的读取副本,那么我们可以将其用于只读任务,即使在副本中有很大的延迟也是安全的。
有没有人在RDS上做过这样的事情(可能而且安全吗)?我应该注意任何严重的副作用吗?更好地理解这一点的任何链接或帮助都会有所帮助。
http://aws.amazon.com/rds/faqs/#95试图回答这个问题,但我正在寻找更多的见解。
发布于 2017-05-27 06:36:38
是的,这是可能的。我使用RDS成功地使用了它,用于本地缓存的特定情况。
您需要将复制副本上的read_only参数设置为0。我必须重新启动服务器才能使该参数起作用。
如果使用不同表名,效果会很好,因为RDS不允许设置:replicate-ignore-table参数。
请记住,master<>slave之间不能有任何数据冲突。如果有一条语句在MASTER上运行正常,但在SLAVE上失败,那么您就中断了复制。例如,当您首先在SLAVE上创建表,然后在一段时间后将该表添加到MASTER中时,可能会发生这种情况。CREATE语句将在MASTER上干净地工作,但在SLAVE上失败,因为表已经存在。
假设您需要非常小心,允许您的应用程序写入SLAVE。如果您忘记/或犯了一个错误,并开始为您的一些其他数据写入读取副本,最终您可能会丢失数据或遇到难以调试的问题。
https://stackoverflow.com/questions/14405163
复制相似问题