No operations allowed after statement closed.
情景: 应用端 部分数据在插入数据到数据库的时候报这个错误,其他数据正常保存数据库。
原因:使用分库分表技术,使用drds分库分表,导致下面的一个rds数据库已经满了,数据库已经锁定中(当然这个锁定是可以查数据的,也可以truncate table,delete table 等操作,但是不能进行 插入,更新,删除数据操作)
根本原因:报这个错,是数据库连接在服务端被关闭了,但是事务并没有执行完成导致的,这个是根本原因,这个根本原因没有问题,
那是什么导致数据库连接在服务端被关闭了呢,
网上查,是wait_timeout的设置导致服务端连接关闭,wait_timeout mysql默认是8小时,这个如果不改动是不会变的,也就是说一个connection空闲超过8个小时,Mysql将自动断开该connection,与mysql服务器对应的,应用使用druid连接池,也有这个配置,那么连接池的这个配置不能出现>mysql的这个值,如果大于那肯定会存在一个异常保错。
但是试过将连接池的这个参数调小,重新调应用,还是报错,排除这个原因
看了一下数据库的状态,发现drds下的一个rds数据库在锁定中,看存储已经满了,所以是磁盘满导致的数据库锁定,
数据库锁定中,导致报的这个错误,
问题: 数据库锁定后会在数据库端断开连接,导致报的这个异常????
问题:数据库分库分表,存在数据库分配不均衡如何处理,数据库数据过大如何处理???