关于Temporary error: 1218错误的思考

本文探讨了在MySQL Cluster操作过程中遇到的1218错误,并提供了几种有效的解决方案,包括调整网络带宽、修改SendBufferMemory设置以及暂时禁用日志记录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    在操作mysql cluster的时候,尤其是涉及到数据更新,比如大批量的insert语句、利用ndb_restore还原数据库的时候,经常会出现Temporary error: 1218: Send Buffers overloaded in NDB kernel的错误。出现这个错误是因为SendBufferMemory的使用已经超过了一定的比值,默认是0.8.
   搜索网上的一些解决办法无非是加大SendBufferMemory的值以及TotalSendBufferMemory的值,查看到官网的mysql cluster的论坛说是那个东西和mysql的日志有关系,建议彻底关闭log。这个解决办法的却很让人郁闷。通过我不停的实验,发现这个和你的网路情况有很大的关系,我的环境是因为有一个节点的网络是100M的,其他的都是1000M,当我把那个节点的带宽调整到1000M时,那个问题再没出现过。对此,我分析可能由于ndb是网络数据库,当网络情况不好的时候,会导致发送内容堆积在SendBufferMemory,从而导致1218错误的发生。
    如果你的mysql cluster经常出现这样的错误,请检查你的mysql cluster的网络环境,以及用ethtool查看每个节点上的带宽。

    如果还不能解决这个问题,请临时的暂停日志记录,比如在配置文件中注释掉log-bin=mysql-bin,然后重启mysqld节点,这个可以临时解决这个问题,希望这篇文章对大家有帮助!


备注:经过本人的反复实践,发现这个参数和mysql的二进制日志关系很密切,所以在导入大量数据的时候,吧log-bin=mysql-bin注释,能回避这个错误!

转载于:https://www.cnblogs.com/feihongwuhen/archive/2011/04/01/7170056.html

Loaded plugins: product-id, search-disabled-repos, subscription-manager This system is not registered with an entitlement server. You can use subscription-manager to register. base | 3.6 kB 00:00:00 Could not retrieve mirrorlist http://mirrorlist.centos.org?arch=x86_64&release=7&repo=sclo-rh error was 14: curl#6 - "Could not resolve host: mirrorlist.centos.org; Unknown error" One of the configured repositories failed (Unknown), and yum doesn't have enough cached data to continue. At this point the only safe thing yum can do is fail. There are a few ways to work "fix" this: 1. Contact the upstream for the repository and get them to fix the problem. 2. Reconfigure the baseurl/etc. for the repository, to point to a working upstream. This is most often useful if you are using a newer distribution release than is supported by the repository (and the packages for the previous distribution release still work). 3. Run the command with the repository temporarily disabled yum --disablerepo=<repoid> ... 4. Disable the repository permanently, so yum won't use it by default. Yum will then just ignore the repository until you permanently enable it again or use --enablerepo for temporary usage: yum-config-manager --disable <repoid> or subscription-manager repos --disable=<repoid> 5. Configure the failing repository to be skipped, if it is unavailable. Note that yum will try to contact the repo. when it runs most commands, so will have to try and fail each time (and thus. yum will be be much slower). If it is a very temporary problem though, this is often a nice compromise: yum-config-manager --save --setopt=<repoid>.skip_if_unavailab
最新发布
04-02
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值