mysql cluster 问题_Mysql cluster问题列表

Mysql cluster问题列表

在安装和使用mysql cluster集群的过程中,遇到了很多问题,现在把那些问题列出来,并复上解决方法,希望大家在以后的使用中能少花时间少走弯路

1、导入数据的时候遇到如下报错:

ERROR 1005 (HY000) at line 25: Can't create table

'tuge.pangolin_fnc_accountverification' (errno: 140)

Error | 1296 | Got error 738 'Record too big' from NDB

分析原因:表但行数据太大

解决办法:需要更改表结构,使最大单行数据的大小小于8KB!

2、导入大量数据的时候遇到如下报错

Error 1297: Got temporary error 'REDO' log overloaded.

ERROR : Got temporary error 1204 'Temporary failure, distribution

changed' from NDBCLUSTER

ERROR : Got temporary error 1234 'REDO log files overloaded

(increase disk hardware)' from NDBCLUSTER

分析原因:遇到这个错误,是表示redo log用完了,需要增加

解决办法:修改config.ini文件,更改或添加如下参数:

FragmentLogFileSize=256M

NoOfFragmentLogFiles=16

NoOfFragmentLogFiles这个参数可以更改到更大,但是初始化的时候会慢一点

3、在导入大量数据的时候,出现如下报错:

ERROR 1114 (HY000) at line 54: The table 'gps_led_sendadverthistory'

is full

分析原因:你分配的内存或者硬盘空间已经用完(如果你采用磁盘表的话),需要通过ndb管理节点客户端和登录mysql查看具体的原因,通过ndb_mgm登录,执行命令:

All report memory看下分配的内存是否使用完,如果采用磁盘表的,还需要登录mysqld节点,然后执行如下查询,来确定是否是磁盘不足:

SELECT TABLESPACE_NAME, FILE_NAME,

EXTENT_SIZE*TOTAL_EXTENTS/1024/1024 AS TOTAL_MB,

EXTENT_SIZE*FREE_EXTENTS/1024/1024 AS FREE_MB, EXTRA FROM

information_schema.FILES WHERE FILE_TYPE="DATAFILE";

解决办法:如果是数据内存不足的情况,直接更改文件config.ini中[NDBD DEFAULT]下的

DataMemory=11480M

IndexMemory=1024M

根据实际情况加大

如果是采用磁盘表,磁盘文件空间不足的情况,就需要添加磁盘文件,格式如下:

ALTER TABLESPACE ts_1

ADD DATAFILE 'data_4.dat'

INITIAL_SIZE 10240M

ENGINE NDBCLUSTER;

4、在还原的时候遇到如下报错:

Configuration error: Error : Could not alloc node id at

192.168.100.223 port 1186: Id 12 configured as ndbd(NDB), connect attempted as

mysqld(API).

Unable to connect to management server.

分析原因:因为还原的时候会去连接mysqld,而在配置ndb的时候没有添加空的mysqld节点,因此出现这个报错

解决办法:在config.ini添加几个空的mysqld节点,语法如下:

[MYSQLD]

[MYSQLD]

[MYSQLD]

[MYSQLD]

5、导入大量数据的时候或者执行大量的insert或者update操作的时候,经常会出现如下报错:

ERROR 1297 (HY000) at line 1: Got temporary error 1218 'Send Buffers

overloaded in NDB kernel' from NDBCLUSTER

这个报错的原因有几个,第一、是参数SendBufferMemory设置过小,第二、和mysqld的二进制日志有关系,第三、和网络环境有关系

解决办法:查看网络环境是否OK,是否出现双工模式部队,是否都是千兆网或者百兆网,加大SendBufferMemory的设置,一般2M就够了,设置TotalSendBufferMemory = 256M,最后如果还是出现如此报错,建议关闭mysql的二进制日志,在my.cnf中注释掉相关的参数就可以了,比如:

#log-bin=mysql-bin

6、错误日志

Status: Temporary error, restart node

Message: System error, node killed during node restart by other node

(Internal error, programming error or missing error message, please report a

bug)

Error: 2303

Error data: Node 12 killed this node because GCP stop was detected

Error object: NDBCNTR (Line: 273) 0x00000006

分析原因:这个问题是因为undo日志文件空间用完了!

解决办法:增加undo日志空间文件,语法如下:

ALTER LOGFILE GROUP lg_1

ADD UNDOFILE 'undo_2.log'

INITIAL_SIZE 2048M

ENGINE NDBCLUSTER;

7、还原的时候出现如下报错:

Temporary error: 266: Time-out in NDB, probably caused by deadlock

分析原因:出现这个问题是锁定超过1.2s

解决办法:在config.ini中加入:TransactionDeadLockDetectionTimeOut=10000默认是1200

8、创建日志文件组的时候,出现如下报错:

Error CODE : 1528 Failed TO CREATE LOGFILE GROUP

用SHOW WARNINGS;查看详细报错如下:

Got

error 1504 'Out of logbuffer memory' FROM NDB

Failed TO CREATE LOGFILE GROUP

分析原因:是因为SharedGlobalMemory的值比UNDO_BUFFER_SIZE小导致错误

解决办法:把SharedGlobalMemory调大,原来我的UNDO_BUFFER_SIZE为128,但是我的SharedGlobalMemory为80,将SharedGlobalMemory设置成384M解决问题

暂时就遇到这么多问题,以后遇到了再补充!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值