AWS Aurora 自动缩放导致 mysqld_stmt_execute 的参数不正确
AWS Aurora auto scaling causes Incorrect arguments to mysqld_stmt_execute
我们在生产环境中使用 运行 AWS Aurora(Serverless RDS)。它必须在 2 个容量单位(4GB RAM)和 8 个容量单位(16GB RAM)之间扩展。
在过去的 2 个月里,我们的数据库从未自动缩放过,最小容量单位是 运行。在过去一周,由于系统使用量增加,自动缩放开始每隔几分钟触发一次。它在白天扩展了 4 到 8 个容量单位。
自上周以来,当我们的应用程序触发 SQL 对数据库的查询时,我们遇到了一个问题(不是一直都是,而是每隔几分钟),[=28 的参数不正确=]。读取和写入操作都会发生此错误。
因此,我们怀疑自动缩放可能是原因,我们为 min(8) 和 max(8) 保留了相同的容量单位以避免缩放。因此,缩放没有发生,我们也没有再次遇到该错误。因此,我们确认错误是由自动缩放引起的。实际上,自动缩放帮助我们降低了成本,但不幸的是导致了错误。
我们不明白为什么在缩放期间会出现此错误。有人可以解释为什么缩放会导致这个问题以及如何避免这个问题吗?
还是与连接池问题有关?我在连接池项目中也提出过。
这是缓存准备好的语句的问题。当为扩展配置新服务器并且在新服务器上触发缓存的准备好的语句时,MySQL 引发了此错误。因此,我们禁用了预处理语句缓存,我们不再收到错误。
虽然它有效,但我们无法缓存可能会略微降低性能的准备好的语句。到目前为止,还好,因为我们没有注意到延迟。
我们在生产环境中使用 运行 AWS Aurora(Serverless RDS)。它必须在 2 个容量单位(4GB RAM)和 8 个容量单位(16GB RAM)之间扩展。
在过去的 2 个月里,我们的数据库从未自动缩放过,最小容量单位是 运行。在过去一周,由于系统使用量增加,自动缩放开始每隔几分钟触发一次。它在白天扩展了 4 到 8 个容量单位。
自上周以来,当我们的应用程序触发 SQL 对数据库的查询时,我们遇到了一个问题(不是一直都是,而是每隔几分钟),[=28 的参数不正确=]。读取和写入操作都会发生此错误。
因此,我们怀疑自动缩放可能是原因,我们为 min(8) 和 max(8) 保留了相同的容量单位以避免缩放。因此,缩放没有发生,我们也没有再次遇到该错误。因此,我们确认错误是由自动缩放引起的。实际上,自动缩放帮助我们降低了成本,但不幸的是导致了错误。
我们不明白为什么在缩放期间会出现此错误。有人可以解释为什么缩放会导致这个问题以及如何避免这个问题吗?
还是与连接池问题有关?我在连接池项目中也提出过。
这是缓存准备好的语句的问题。当为扩展配置新服务器并且在新服务器上触发缓存的准备好的语句时,MySQL 引发了此错误。因此,我们禁用了预处理语句缓存,我们不再收到错误。
虽然它有效,但我们无法缓存可能会略微降低性能的准备好的语句。到目前为止,还好,因为我们没有注意到延迟。