zoukankan      html  css  js  c++  java
  • 数据库问题处理

    一、表被破坏

    1.  问题报错:table is marked as crashed and should be repaired

    2.  解析: 某些不可测的问题造成表的损坏(频繁查询和更新)。进而造成无法读取数据。

    3.  处理:

    check table tbname  -- 用来检查出现问题的表的状态,出现错误就正常(tbname--出现错误的表)
    
    repair table tbname  -- 修理
    check table tbname  -- 用来检查是否修理好

    4. 情景 :由于同事清理一个二十多G的表直接使用 truncate tbname 清理,导致数据库进程堵塞,然后表被破坏。(原因不一定是这个原因,但结果是这个结果)

    二、进程堵塞

    1. 问题 wait millis 60000, active 50, maxActive 50, creating 0, runningSqlCount 41

    2.  解析: 数据库活动的连接数与最大连接数相同,连接用完了,在等待新的连接,却没有新连接可用,然后超时了

    3.  处理:查询数据库进程

    show full processlist; -- 查看数据库进程
    
    kill 528094; -- 杀死堵塞进程(进程编号)

    show OPEN TABLES where In_use > 0; -- 查看被锁住的表

    4. 情景 :数据库表被破坏,然后修改表的sql进程堵塞,造成死锁,复制堵塞语句,杀死堵塞进程,修复表,运行进程语句

    总结:不当操作引起 ,表坏了,阻塞了进程!!

    三、开启慢查询日志报错

    报错:

    mysql> set global slow_query_log=on;开启慢查询日志,报错如下:
    ERROR 29 (HY000): File '/data/log/mysql/slow.log' not found (Errcode: 13 - Permission denied

    解决办法:

    # cd /data/log/mysql
    # touch slow.log
    #chmod 777 -R slow.log

    清空大量数据表技巧:

    create table a like b ; -- 复制表结构
    drop table b ;  -- 彻底删除
    alter table a rename to b ; -- 重命名空表 
  • 相关阅读:
    SQLServer多表连接查询
    SQLServer基本查询
    SQLServer索引
    SQLServer之数据类型
    设计模式小结
    SQL跨项目查询语法
    利用CountDownLatch和Semaphore测试案例
    JUC包下Semaphore学习笔记
    JUC包下CountDownLatch学习笔记
    JUC包下CyclicBarrier学习笔记
  • 原文地址:https://www.cnblogs.com/dztHome/p/13344276.html
Copyright © 2011-2022 走看看