当前位置:  开发笔记 > 编程语言 > 正文

AWS Aurora服务器有时会响应"未知数据库:..."

如何解决《AWSAurora服务器有时会响应"未知数据库:"》经验,为你挑选了1个好方法。

我有一个.NET应用程序,它在Amazon Aurora RDS中的MySQL数据库上执行查询.该数据库是MySQL 5.6数据库 - Aurora附带的版本.

我对数据库中的模式(名称:flight)执行查询(名称:SSIMLoader).我正在使用MySQL 6.9.8.0库.

edit:连接字符串指向群集中的主服务器,而不是指向特定服务器.

执行插入,选择和更新时会发生错误,因此没有真正的模式.即使简单的select语句也会随机失败

但是,通过MySQL工作台执行查询时,我们没有收到此类错误.

重新启动服务器后,错误消失了几天然后返回.

我们有一些非常激烈的查询,可以在长时间内将CPU提高到90%,但即使在CPU降低到10%之后,错误仍然存​​在.

有没有其他人经历过这个,如果有的话,你是怎么过去的?

提前致谢.

编辑: 最后再次出错:

MySql.Data.MySqlClient.MySqlException(0x80004005):在MySql.Data.MySqlClient.MySqlConnection的MySql.Data.MySqlClient.NativeDriver.ReadOk(布尔读取)的MySql.Data.MySqlClient.MySqlStream.ReadPacket()中的未知数据库'flight'位于Universal.Access.Database.BaseDatabaseConnection的Universal.Access.Database.BaseDatabaseConnection.EstablishFactoryConnection()的MySql.Data.MySqlClient.MySqlConnection.Open()的MySql.Data.MySqlClient.MySqlConnection.Open()处的.ChangeDatabase(String databaseName)位于C:\ tc-projects\universal-platform\Universal.Core\DataModel\ExecutableDatabaseConnection.cs:第65行的Universal.Core.DataModel.ExecutableDatabaseConnection.ExecuteQuery(String sqlQuery)中的.ExecuteReader(CommandType commandType,CommandText commandText).

这是正在运行的查询:

UP-DEV | Universal.Core.Data.Importer Error finding current record, SQL: SELECT aircraft_config,updated_by,asa_flight_id,atd_utc,bay,terminal,is_cancelled,flight_number,created_at,from_iata,flight_date_utc,std_local,takeoff_time_local,is_international,is_aerocare,cobt_local,customer_atd_local,takeoff_time_utc,std_utc,atd_local,asa_state,aircraft_type,customer_atd_utc,carrier_code,updated_at,gate,service_type,etd_local,cobt_utc,flight_status,etd_utc,aircraft_rego,created_by,id,flight_date,to_iata FROM flight.departure_flight WHERE carrier_code='JQ' AND flight_date_utc='2017-01-20T00:00:00' AND flight_number='57' AND from_iata='MEL'. Database returned: Unknown database 'flight'

小智.. 6

虽然我不确定是什么导致了该问题(似乎打开的连接可能会以某种方式在RDS群集端终止),但似乎该问题因激进的连接池和重新使用而激怒了。客户端发生在MySQL .NET Connector中。

一旦出现问题,受影响的连接似乎就留在池中,从池中任意取回并反复使用。(很可能与您看到问题一旦开始就继续随机发生的方式有关。)

添加Connection Lifetime=x到连接字符串中,x是使连接保持活动状态以供重用的时间(以秒为单位),至少似乎可以减轻症状。



1> 小智..:

虽然我不确定是什么导致了该问题(似乎打开的连接可能会以某种方式在RDS群集端终止),但似乎该问题因激进的连接池和重新使用而激怒了。客户端发生在MySQL .NET Connector中。

一旦出现问题,受影响的连接似乎就留在池中,从池中任意取回并反复使用。(很可能与您看到问题一旦开始就继续随机发生的方式有关。)

添加Connection Lifetime=x到连接字符串中,x是使连接保持活动状态以供重用的时间(以秒为单位),至少似乎可以减轻症状。

推荐阅读
郑谊099_448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有