MySQL Error number: MY-010512; Symbol: ER_NDB_CLUSTER_OOM_THD_NDB; SQLSTATE: HY000 报错 故障修复 远程处理

文档解释 Error number: MY-010512; Symbol: ER_NDB_CLUSTER_OOM_THD…

文档解释

Error number: MY-010512; Symbol: ER_NDB_CLUSTER_OOM_THD_NDB; SQLSTATE: HY000

Message: Could not allocate Thd_ndb object

错误说明

MY-010512(ER_NDB_CLUSTER_OOM_THD_NDB)是MySQL定义的一个错误。它表明MySQL在用于使用Ndb Cluster表时缺乏可用的资源。缺乏Ndb(Network Data Base)的资源的资源可能会终止交互式查询或其他操作,从而导致数据库连接或查询无法完成。

一般来说,MySQL的这个错误是由Ndb Cluster使用过程中由于内部内存使用而引起的。可以指定Ndb Cluster中需要使用到的内存大小,在这种情况下,如果所需的内存大于可用内存,则可能引发该错误。

常见案例

最常见的情况是,使用Ndb Cluster表的操作量过大,从而超出可用的Ndb Cluster内存限制。这些可能包括运行大量查询,开始大量事务,使用大量表空间,压缩/解压缩拷贝的数据,创建多个表或行的复杂查询,以及其他可能使用大量内存的操作。

另外,当游标(cursor)深度很高或复杂查询当中包含了联合查询或排序操作时,也可能会引发这一错误。在高负载的情况下缺乏内存可能会导致异常失败,导致MVCC中存在停滞,进而缩短事务执行时间。

解决方法

下面的步骤可帮助解决这一错误:

(1) 将内存设置提高到满足需求的大小。可以使用ndb_mgm -e show内存设置来查看Ndb Cluster中当前内存大小设置,以及适当的设置来满足当前要求。如果未使用ndb_mgm,可以使用SET GLOBAL命令来修改内存设置,当然也可以使用Ndb Cluster控制表(ndb_config)来调整内存设置 。

(2) 调整请求。在追查原因时,可以采取措施以降低内存负荷,如调整查询及游标深度,降低表的大小等。

(3) 调整MySQL的连接数。增加MySQL客户端的连接数可以减少对Ndb Cluster的单次请求量,从而将内存负荷减少到可控范围。

(4) 关闭表或行上的SBR(混合日志)。某些情况下,在不使用SBR时可以将负荷降低到合理水平。

总之,使用Ndb Cluster表时,当可用内存不足时会发生MY-010512(ERROR_NDB_CLUSTER_OOM_THD_NDB)错误,从而缩短交互式查询或其他操作的执行时间。通过调整内存设置,调整查询和游标,调整连接数以及关闭SBR等,可以有效地减轻负荷,从而降低这一信号的发生概率。

香港美国云服务器首选港服(Server.HK),2H2G首月10元开通。
港服(Server.HK)(www.IDC.Net)提供简单好用,价格厚道的香港/美国云服务器和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。

为您推荐

港服(Server.HK)MongoDB教程:MongoDB 索引

MongoDB 索引 索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件...

港服(Server.HK)PostgreSQL教程PostgreSQL 别名

PostgreSQL 别名 我们可以用 SQL 重命名一张表或者一个字段的名称,这个名称就叫着该表或该字段的别名。 创建...

港服(Server.HK)Memcached教程:Memcached stats 命令

Memcached stats 命令 Memcached stats 命令用于返回统计信息例如 PID(进程号)、版本号...

港服(Server.HK)Redis教程:Redis 数据类型

Redis 数据类型 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集...

港服(Server.HK)Redis教程:Redis GEO

Redis GEO Redis GEO 主要用于存储地理位置信息,并对存储的信息进行操作,该功能在 Redis 3.2 ...
返回顶部