zoukankan      html  css  js  c++  java
  • Tidb数据库导入数据出现oom问题

    今天使用insert操作向tidb中插入数据,发现正在导入的过程中出现如下错误:

    mysql: [Warning] Using a password on the command line interface can be insecure.
    ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (111)

    也就是说客户端不能连接mysql服务器端。有的人会想到可能是mysql客户端连接至服务器端超时导致的:

    mysql> show variables like '%connect%';
    +-----------------------------------------------+-----------------+
    | Variable_name                                 | Value           |
    +-----------------------------------------------+-----------------+
    | connect_timeout                               | 10              |

    一般情况下我的错误也有可能由connect_timeout时间太短这种情况导致的。比如查询数据集比较大的数据的时候。

    不过针对这个错误tidb官方也有另外的解释,看看是不是oom问题,因此我就排查了一下:

    [root@:vg_adn_tidbCkhsTest /data/splits]#dmesg -T | grep -i oom
    [Thu Nov 29 11:16:42 2018] mysqld invoked oom-killer: gfp_mask=0x201da, order=0, oom_score_adj=0
    [Thu Nov 29 11:16:42 2018]  [<ffffffff8bd97c44>] oom_kill_process+0x254/0x3d0
    [Thu Nov 29 11:16:42 2018] [ pid ]   uid  tgid total_vm      rss nr_ptes swapents oom_score_adj name
    [Thu Nov 29 12:05:50 2018] mysqld invoked oom-killer: gfp_mask=0x201da, order=0, oom_score_adj=0
    [Thu Nov 29 12:05:50 2018]  [<ffffffff8bd97c44>] oom_kill_process+0x254/0x3d0
    [Thu Nov 29 12:05:51 2018] [ pid ]   uid  tgid total_vm      rss nr_ptes swapents oom_score_adj name

    果然是内存溢出问题,我仔细看了一下,发现mysql程序是比较消耗内存的,因此被内核给干掉了。

    但是数据还必须继续导入才行,那我们只好停止一些暂时不用的程序,接着导入数据

    然后导入数据就成功了。

    下面是官方给出的问题解决方法:

    因此我们下次要注意二点:

    1、在导入数据的时候,比较消耗内存,因此我们先给程序释放空间运行

    2、开启swap功能

  • 相关阅读:
    从Oracle提供两种cube产品说开
    Sql Server DWBI的几个学习资料
    Unload Oracle data into text file
    初学Java的几个tips
    我常用的Oracle知识点汇总
    benefits by using svn
    如何在windows上使用putty来显示远端linux的桌面
    building commercial website using Microsoft tech stack
    Understand Thread and Lock
    Update google calendar by sunbird
  • 原文地址:https://www.cnblogs.com/FengGeBlog/p/10186373.html
Copyright © 2011-2022 走看看