Мы используем AWS Aurora (Serverless RDS) в нашей производственной среде. Он должен масштабироваться между 2 единицами емкости (4 ГБ ОЗУ) и 8 единицами емкости (16 ГБ ОЗУ).
За последние 2 месяца наша база данных ни разу не масштабировалась автоматически, она работала в минимальной единице мощности. На прошлой неделе из-за увеличения нагрузки на систему автомасштабирование стало срабатывать каждые несколько минут. В дневное время он масштабировался от 4 до 8 единиц емкости.
И с прошлой недели у нас возникла проблема (не постоянно, а каждые несколько минут), когда наше приложение запускает SQL-запросы к базе данных, Неправильные аргументы для mysqld_stmt_execute. Эта ошибка возникает как для операций чтения, так и для записи.
Итак, мы подозревали, что причиной может быть автоматическое масштабирование, и мы оставили одни и те же единицы емкости как для min(8), так и для max(8), чтобы избежать масштабирования. Таким образом, масштабирование не произошло, и мы больше не получили эту ошибку. Итак, мы подтвердили, что ошибка была вызвана автомасштабированием. На самом деле автомасштабирование помогло нам снизить стоимость, но, к сожалению, вызывает ошибку.
Мы не понимаем, почему эта ошибка возникает при масштабировании. Может кто-нибудь объяснить, почему масштабирование вызывает эту проблему и как этого избежать?
Или это связано с проблемой пула соединений? Я также поднял его в проекте пула соединений.






Это проблема с кэшированием подготовленных операторов. Когда новые серверы предоставляются для масштабирования и когда на новых серверах запускаются кэшированные подготовленные операторы, MySQL выдает эту ошибку. Итак, мы отключили кеш подготовленных операторов, и мы больше не получаем ошибку.
Хотя это работает, мы не смогли кэшировать подготовленные операторы, что может немного отставать в производительности. На данный момент все в порядке, так как мы не заметили задержки.
Похоже, вы пригвоздили это к ошибке AWS.