mysql 数据库偶现入库失败排查及解决

尾调棱镜
• 阅读 2495

背景

利用python脚本进行服务器关键进程的24小时持续监控,监控的数据入库到数据库中,便于事后进行分析。

问题列表
1、解决The total number of locks exceeds the lock table size错误
2、解决1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1")错误

发现问题1:

发现偶尔mysql会报入库失败的问题

定位分析:


修改python中存入数据库源码;通过try except去捕获报错信息,报错的详情信息存入在e变量中,可以直接进行打印;因为是偶现bug,还在日志中打印了报错的时间以及正在执行的语句。
    #print(insert_sql)
    try:
        # 执行SQL语句
        cursor.execute(insert_sql)
        # 提交到数据库执行
        db.commit()
        #print('提交数据表成功')
    except  Exception as e:
        # 发生错误时回滚
        db.rollback()
        print("失败回滚"+str(datetime.now()))
        print(e)
        print("SQL:"+insert_sql)

结果抓取定位问题

mysql 数据库偶现入库失败排查及解决
报错信息提示The total number of locks exceeds the lock table size,是缓存不足导致。
原因分析:因为监控的进程数量较多,而且执行的是批量入口操作,所以可能会导致数据抓取的值不足。

问题解决

可以通过登录mysql数据库服务器,修改配置问题my.ini中胡配置
innodb_buffer_pool_size=2GB    #默认值为8M修改为2G或 3G,根据表大小,进行调优。

重启MySQL服务器

在linux下可以直接使用脚本修改,window服务器参考Windows 命令行重启MySQL服务进行重启。

问题2
报错信息如下
mysql 数据库偶现入库失败排查及解决
问题分析
可能为使用了mysql的关键字导致
https://blog.csdn.net/wukong_...

参考
1:mysql 数据库缓存调优之解决The total number of locks exceeds the lock table size错误
https://www.cnblogs.com/nulig...
1:Windows 命令行重启MySQL服务
https://cloud.tencent.com/dev...
2

点赞
收藏
评论区
推荐文章
Stella981 Stella981
3年前
Python3:sqlalchemy对mysql数据库操作,非sql语句
Python3:sqlalchemy对mysql数据库操作,非sql语句python3authorlizmdatetime2018020110:00:00coding:utf8'''
Wesley13 Wesley13
3年前
MySQL基础(一)
一、连接MySQL数据库1连接:2mysqlhhostuuserp34常见错误:5ERROR2002(HY000):Can'tconnecttolocalMySQLserverthroughsocket'/tmp/my
Wesley13 Wesley13
3年前
MYSQL基础知识小盲区
MYSQL必会的知识新学的MySQL小技能:show PROCESSLIST; 查看当前数据库的进程(也就是正在进行的sql操作)!(https://oscimg.oschina.net/oscnet/c7908995a15dcf322850eb4ba0416cc34b1.png)kil
Wesley13 Wesley13
3年前
MySQL 的这个 BUG,坑了多少人?
来源:cloud.tencent.com/developer/article/1367681内容整理转自Java基基学习MySQL可以看头条文章问题描述内核问题排查背景知识1背景知识2现场分析及复现验证解决方案
Wesley13 Wesley13
3年前
mysql Index column size too large错误解决方案
mysql在执行脚本时,报出了以下错误:indexcolumnsizetoolarge.themaximumcolumnsizeis767bytes解决方案:1\.对数据库进行设置setglobalinnodb\_file\_formatBARRACUDA;setglobalinn
Wesley13 Wesley13
3年前
thinkphp 基本配置
12returnarray(34//定义数据库连接信息5'DB\_TYPE''mysql',//指定数据库是mysql67'DB\_HOST''localhost',89'DB\_NAME''uchome',//数据库名1011'DB\_USER''root
Stella981 Stella981
3年前
PowerDesigner列名、注释内容互换
在用PowerDesigner时,常常在NAME或Comment中写中文在Code中写英文,Name只会显示给我们看,Code会使用在代码中,但Comment中的文字会保存到数据库TABLE的Description中,有时候我们写好了Name再写一次Comment很麻烦,以下两段代码就可以解决这个问题。在PowerDesigner中PowerDesig
《计算机视觉与信息取证攻与防之间关系》
改进式背景差分算法研究改进式背景差分算法,并应用于监控系统中。针对人流量较少的监控情况,提出一种基于计算机视觉的嵌入式监控系统解决方案,其以DSPDM642为核心处理芯片,可对3路视频视角同时处理。系统利用动态权值的改进式背景差分算法对视频流进行实时监控,若发现异常事件,则自动存储一段时间的视频数据,并利用H.264压缩后保存至外存中以供事后取证
Vitess全局唯一ID生成的实现方案 | 京东云技术团队
为了标识一段数据,通常我们会为其指定一个唯一id,比如利用MySQL数据库中的自增主键。但是当数据量非常大时,仅靠数据库的自增主键是远远不够的,并且对于分布式数据库只依赖MySQL的自增id无法满足全局唯一的需求。因此,产生了多种解决方案,如UUID,Sn
MySQL的index merge(索引合并)导致数据库死锁分析与解决方案 | 京东云技术团队
背景在DBS集群列表更多连接查询死锁中,看到9月22日有数据库死锁日志,后排查发现是因为mysql的优化indexmerge(索引合并)导致数据库死锁。定义indexmerge(索引合并):该数据库查询优化的一种技术,在mysql5.1之后进行引入,它可以
云监控的核心:确保稳定性的关键监控指标
云监控是指对云服务进行实时监控,收集和分析各种运行数据,以便及时发现和解决潜在问题。云监控的目的是确保云服务的稳定性、可用性和性能。为了实现这一目标,需要选择一系列关键监控指标来全面反映云服务的运行状态。