mysql cluster 1186_mysql cluster排错经验分享
发布日期:2021-06-24 17:00:41 浏览次数:2 分类:技术文章

本文共 2368 字,大约阅读时间需要 7 分钟。

mysql cluster排错经验分享

折腾mysql

cluster有一段时间了,期间遇到了很多问题,也翻看了不少关于mysql cluster的文档,学习到了很多经验,下面就将在mysql cluster下的排错步骤和方法和大家分享下!

mysql cluster中很多时候都会直接返回错误,让你一看就知道问题出在什么地方,举几个明显报错的例子:

The table 'test' is full

FATAL: failed to create test table!

很明显,这是说表已经慢了,没有空间了。需要检查你的DataMemory,IndexMemory的空间,如果采用硬盘存储表的话,还要检查数据文件的空间

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

这个也是很明显,表单行数据太大,需要更改表结构,因为mysql cluster最大单行数据的大小为8KB!

另外一个例子是,当你导入大量数据的时候,出现如下报错:

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或和NoOfFragmentLogFiles参数的值

但是在mysql cluster中,很多报错是不太明显的,从报错中很难看出是什么问题,因此我们就需要一些日志文件的辅助,比如:

Error handler restarting system

(unknown type: xxxxxxxxxxx)

Error handler shutdown completed -

exiting

看了这个报错以后,你会觉得不知所措,要获取更多的信息就需要查看日志文件,发生错误以后有两个地方能查看到问题的蛛丝马迹,第一个地方是数据节点的DataDir目录,文件名为ndb_xxxx_error.log,xxxx为在config.ini中设置的id号,还是上面的报错,在这个文件中显示的信息如下:

Type of error: error

Message: Invalid Configuration

fetched from Management Server

Fault ID: 2350

Problem data: Unable to alloc node id

Object of reference: Could not alloc

node id at 10.0.0.1 port 1186:

Connection done from wrong host imp

10.0.0.99.

ProgramName: ndbd

ProcessID: 2644

TraceFile:

Version 5.0.11 (beta)

***EOM***

从这里我们就清楚的知道了是什么问题了,是因为10.0.0.99这个ip在config.ini中没有设置,因此这里显示为wrong host,

第二个地方是管理节点的日志,文件名为ndb_XXXX_cluster.log,XXXX为你设置的id号,也可以在config.ini直接指定日志文件的名字,比如:LogDestination=FILE:filename=ndb_1_cluster.log,maxsize=10000000,maxfiles=6,上面那个报错,在这个文件中显示为:

2005-08-31 12:21:52 [MgmSrvr]

WARNING-- Allocate nodeid (0) failed.

Connection from ip 10.0.0.99.

Returned error string

"Connection done from wrong host ip 10.0.0.99."

一般的问题都可以从这两个文件中找到蛛丝马迹,这样对我们处理问题就会更加有针对性,而不会像无头苍蝇,浪费了很多时间。

在排错的时候,还有几个技巧拿出来和大家分享。

1、一般,报错的时候都会有error

code。比如ERROR 1504,Error: 2303等等,遇到这些报错,我们可以先用mysql的报错工具perror查看,比如查看报错号为1504的错误,使用命令为:perror --ndb 1504

2、在出现报错以后,查看WARNINGS或ERRORS信息,比如出现Error

CODE : 1528 Failed TO CREATE LOGFILE GROUP后输入SHOW WARNINGS;,会显示出具体的报错信息:

Got error 1504 'Out of logbuffer memory' FROM NDB

Failed TO CREATE LOGFILE GROUP

暂时写那么多,如果大家有更好的经验,欢迎留言

转载地址:https://blog.csdn.net/weixin_33983809/article/details/113230871 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:mysql备份怎么锁库_MySQL全局锁:如何做全库的逻辑备份?
下一篇:poi excel导入mysql_使用poi进行excel导入并解析插入数据库

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月27日 02时07分59秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章