mysql ndb 关闭_Mysql NDB 常见问题
在安裝和使用mysql cluster集群的過(guò)程中,遇到了很多問(wèn)題,現(xiàn)在把那些問(wèn)題列出來(lái),并復(fù)上解決方法,希望大家在以后的使用中能少花時(shí)間少走彎路
1、導(dǎo)入數(shù)據(jù)的時(shí)候遇到如下報(bào)錯(cuò):
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
分析原因:表但行數(shù)據(jù)太大
解決辦法:需要更改表結(jié)構(gòu),使最大單行數(shù)據(jù)的大小小于8KB!
2、導(dǎo)入大量數(shù)據(jù)的時(shí)候遇到如下報(bào)錯(cuò)
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
分析原因:遇到這個(gè)錯(cuò)誤,是表示redo log用完了,需要增加
解決辦法:修改config.ini文件,更改或添加如下參數(shù):
FragmentLogFileSize=256M
NoOfFragmentLogFiles=16
NoOfFragmentLogFiles這個(gè)參數(shù)可以更改到更大,但是初始化的時(shí)候會(huì)慢一點(diǎn)
3、在導(dǎo)入大量數(shù)據(jù)的時(shí)候,出現(xiàn)如下報(bào)錯(cuò):
ERROR 1114 (HY000) at line 54: The table 'gps_led_sendadverthistory' is full
分析原因:你分配的內(nèi)存或者硬盤空間已經(jīng)用完(如果你采用磁盤表的話),需要通過(guò)ndb管理節(jié)點(diǎn)客戶端和登錄mysql查看具體的原因,通過(guò)ndb_mgm登錄,執(zhí)行命令:
All report memory看下分配的內(nèi)存是否使用完,如果采用磁盤表的,還需要登錄mysqld節(jié)點(diǎn),然后執(zhí)行如下查詢,來(lái)確定是否是磁盤不足:
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";
解決辦法:如果是數(shù)據(jù)內(nèi)存不足的情況,直接更改文件config.ini中[NDBD DEFAULT]下的
DataMemory=11480M
IndexMemory=1024M
根據(jù)實(shí)際情況加大
如果是采用磁盤表,磁盤文件空間不足的情況,就需要添加磁盤文件,格式如下:
ALTER TABLESPACE ts_1
ADD DATAFILE 'data_4.dat'
INITIAL_SIZE 10240M
ENGINE NDBCLUSTER;
4、在還原的時(shí)候遇到如下報(bào)錯(cuò):
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.
分析原因:因?yàn)檫€原的時(shí)候會(huì)去連接mysqld,而在配置ndb的時(shí)候沒(méi)有添加空的mysqld節(jié)點(diǎn),因此出現(xiàn)這個(gè)報(bào)錯(cuò)
解決辦法:在config.ini添加幾個(gè)空的mysqld節(jié)點(diǎn),語(yǔ)法如下:
[MYSQLD]
[MYSQLD]
[MYSQLD]
[MYSQLD]
5、導(dǎo)入大量數(shù)據(jù)的時(shí)候或者執(zhí)行大量的insert或者update操作的時(shí)候,經(jīng)常會(huì)出現(xiàn)如下報(bào)錯(cuò):
ERROR 1297 (HY000) at line 1: Got temporary error 1218 'Send Buffers overloaded in NDB kernel' from NDBCLUSTER
這個(gè)報(bào)錯(cuò)的原因有幾個(gè),第一、是參數(shù)SendBufferMemory設(shè)置過(guò)小,第二、和mysqld的二進(jìn)制日志有關(guān)系,第三、和網(wǎng)絡(luò)環(huán)境有關(guān)系
解決辦法:查看網(wǎng)絡(luò)環(huán)境是否OK,是否出現(xiàn)雙工模式部隊(duì),是否都是千兆網(wǎng)或者百兆網(wǎng),加大SendBufferMemory的設(shè)置,一般2M就夠了,設(shè)置TotalSendBufferMemory = 256M,最后如果還是出現(xiàn)如此報(bào)錯(cuò),建議關(guān)閉mysql的二進(jìn)制日志,在my.cnf中注釋掉相關(guān)的參數(shù)就可以了,比如:
#log-bin=mysql-bin
6、錯(cuò)誤日志
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
分析原因:這個(gè)問(wèn)題是因?yàn)閡ndo日志文件空間用完了!
解決辦法:增加undo日志空間文件,語(yǔ)法如下:
ALTER LOGFILE GROUP lg_1
ADD UNDOFILE 'undo_2.log'
INITIAL_SIZE 2048M
ENGINE NDBCLUSTER;
7、還原的時(shí)候出現(xiàn)如下報(bào)錯(cuò):
Temporary error: 266: Time-out in NDB, probably caused by deadlock
分析原因:出現(xiàn)這個(gè)問(wèn)題是鎖定超過(guò)1.2s
解決辦法:在config.ini中加入:TransactionDeadLockDetectionTimeOut=10000默認(rèn)是1200
8、創(chuàng)建日志文件組的時(shí)候,出現(xiàn)如下報(bào)錯(cuò):
Error CODE : 1528 Failed TO CREATE LOGFILE GROUP
用SHOW WARNINGS;查看詳細(xì)報(bào)錯(cuò)如下:
Got error 1504 'Out of logbuffer memory' FROM NDB
Failed TO CREATE LOGFILE GROUP
分析原因:是因?yàn)镾haredGlobalMemory的值比UNDO_BUFFER_SIZE小導(dǎo)致錯(cuò)誤
解決辦法:把SharedGlobalMemory調(diào)大,原來(lái)我的UNDO_BUFFER_SIZE為128,但是我的SharedGlobalMemory為80,將SharedGlobalMemory設(shè)置成384M解決問(wèn)題。
--文檔來(lái)自于百度文庫(kù)。
總結(jié)
以上是生活随笔為你收集整理的mysql ndb 关闭_Mysql NDB 常见问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 动软代码生成器连接oracle数据库
- 下一篇: 数据库 10 大常见安全问题盘点~