`
ycsk
  • 浏览: 154771 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

记录一次MySQL故障处理

阅读更多
因为开发之初数据库没有进行好的设计,有很多表的查询字段没有创建索引,系统运行几年以后,表的记录数达到了几千万,这时性能问题突显出来。

诱因是在系统繁忙的时间,突发来了很多无索引的查询,导致一个关键的表被锁。这时候系统无法对外提供服务。

采取措施:
在mysql中kill所有的慢查询语句。但还是不停的有查询进来,停止应用,iptables封掉数据库端口,再kill。

这时出现了奇怪的状态,数据库自动重启了,查看数据库错误日志:
引用

mysqld got signal 11;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.
We will try our best to scrape up some info that will hopefully help diagnose
the problem, but since we have already crash
Number of processes running now: 0
100510 15:58:41  mysqld restarted
100510 15:58:41 [Warning] Changed limits: max_open_files: 65535  max_connections: 16384  table_cache: 24570
100510 15:58:41 [ERROR] Can't start server : Bind on unix socket: No space left on device
100510 15:58:41 [ERROR] Do you already have another mysqld server running on socket: /var/lib/mysql/mysql.sock ?
100510 15:58:41 [ERROR] Aborting

100510 15:58:41 [Note] /usr/sbin/mysqld: Shutdown complete

自动重启并没有成功启动,原因是磁盘空间不足。这时删除冗余数据,重新启动mysql成功。这时窃以为数据库正常了,没想到又遇到一个问题show processlist时,有很多查询的状态为statistics。

查找文档,解决方法为:
引用

CHECK TABLE tokens;
REPAIR TABLE tokens; -- if the CHECK was not 'ok'
ANALYZE TABLE tokens; -- maybe its stats need refreshing


这时数据库工作正常了,但此数据库的slave都不工作了,下篇文章写出slave解决过程。

分享到:
评论

相关推荐

    Oracle MySQL数据库故障处理应急方案

    Oracle MySQL数据库故障处理应急方案是一系列针对数据库在运行过程中可能遇到的锁等待、latchfree、cachebufferchains以及librarycachelock等高资源消耗和CPU负载问题的处理方法和步骤。该方案详细描述了上述问题的...

    mysql热备及mysql主从配置

    2. 获取主库的binlog位置和文件名:在完成一次主库上的事务后,获取当前binlog的位置,这将在从库初始化时用到。 3. 配置从库:设置server-id,指定主库的连接信息(IP、端口、用户名、密码),并使用主库的binlog...

    服务器软件故障应急预案.docx

    - **备份恢复**: 如果有定期备份机制,可以直接使用最近一次的完整备份来恢复数据。 - **Binlog恢复**: 对于 MySQL 数据库而言,如果误操作发生在事务期间,还可以通过 binlog 日志来还原丢失的数据。Binlog 记录...

    MySql_C 接口集合

    - **功能**:返回上一次`mysql_fetch_field()`操作的字段游标位置。 - **使用场景**:在循环处理字段时保持状态跟踪。 #### 22. `mysql_free_result()` - **功能**:释放结果集占用的内存。 - **使用场景**:优化...

    mysql-5.7版本源码包

    11. **优化的二进制日志**:MySQL 5.7的二进制日志格式改进,支持ROW格式,记录了每个变更的精确行级信息,有助于故障恢复和复制。 12. **查询缓存**:虽然在5.7.8版本后被废弃,但在早期5.7版本中,查询缓存被...

    一次MySQL慢查询导致的故障

    我们知道分析MySQL语句查询性能的方法除了使用EXPLAIN 输出执行计划,还可以让MySQL记录下查询超过指定时间的语句,我们将超过指定时间的SQL语句查询称为“慢查询”。 一、 起因 研发反应某台数据库僵死,后面的...

    mysql安装使用说明文档

    MySQL是目前使用最为广泛的开源数据库管理系统之一,它以其高性能、高可靠性和易用性受到广泛好评。为了帮助用户更好地安装和使用MySQL,本知识点将从多个方面对MySQL进行详细介绍,以便新手用户快速上手,同时为...

    记一次MySQL Slave库恢复实战记录

    本文所涉及的是一次实际的从库恢复案例,为读者提供了对常见故障处理的实战经验。 案例中提到的从库恢复问题涉及到以下几个关键点: 1. 复制延迟与错误日志分析:当从库的复制出现故障时,首先应该查看从库的状态...

    MYSQL编程材料01.zip_mysql编程材料

    - "00_开篇词,这一次让我们一起来搞懂MySQL(1).pdf"和"00_开篇词,这一次让我们一起来搞懂MySQL.pdf"可能引导读者逐步深入了解MySQL,从基础概念到高级特性和最佳实践。 这个压缩包的内容覆盖了MySQL的基础知识,...

    mysql ocp题库总结

    在MySQL中,一次ALTER TABLE语句可以删除多个分区,所以选项A是错误的。正确答案是,这个语句会删除分区p1和p3,并且所有在这些分区内的数据都会被一并删除。这不会影响其他分区,也不会限制在同一时间只能删除一个...

    mysql数据库增量备份

    增量备份基于上一次全量备份或最近一次增量备份,只备份自那之后发生改变的数据。这种策略可以显著提高备份效率,特别是在频繁进行小规模改动的情况下。在本项目中,开发者编写了预处理程序来识别和记录这些变化,...

    MySQL High Availability.zip

    在默认的异步复制中,主服务器不等待从服务器确认就可能执行下一次写操作,可能导致数据丢失。半同步复制引入了一个中间状态,主服务器在提交事务前等待至少一个从服务器确认接收到binlog事件,确保数据至少被一处...

    mysql high performance

    - **案例一:**某大型电商平台采用MySQL作为核心数据库,在经历多次双11高峰后总结出的一套完整的性能调优方案。 - **案例二:**社交应用通过引入分区表技术和读写分离策略,成功应对用户数量激增带来的挑战。 - **...

    MySql数据库备份工具

    3. **差异备份**:与增量备份类似,差异备份也仅备份自上次全量备份以来更改的数据,但备份的起点是最近一次全量备份,而非上次增量备份。 4. **日志备份**:MySQL的日志备份主要涉及二进制日志(Binary Log)和...

    MYSQL语法参考手册参考大全

    INSERT INTO语句用于向表中插入新记录,可以一次性插入多行数据。UPDATE语句用于修改已存在的数据,通常配合WHERE子句来指定更新条件。DELETE FROM语句删除满足特定条件的记录,不加WHERE子句则会删除表中的所有记录...

    MySQL 数据库架构全掌握

    MySQL的第一个内部版本发布于1995年,随后经历了多次重大升级。在2002年,MySQL 4.0版本发布,引入了InnoDB作为默认的存储引擎,极大地增强了其事务处理能力和数据缓存能力。此后,MySQL逐渐成为互联网开发中最受...

    强烈推荐MySQL面试题和答案(仅供参考)

    此外,MySQL 5.6还引入了GTID(全局事务ID)复制机制,确保每个GTID在所有实例上仅被执行一次,进一步提高了复制的一致性。 - **半同步复制**:MySQL 5.5引入了半同步复制机制,通过设置超时时间来确保在一定时间...

    mysql-connector-java-5.1.12.rar 源代码

    MySQL Connector/J 是 MySQL AB 公司(现为 Oracle 公司的一部分)开发的一个 JDBC 驱动程序,它遵循 Java Database Connectivity (JDBC) 标准,提供了一个接口来与 MySQL 数据库进行交互。该驱动程序支持多种连接...

Global site tag (gtag.js) - Google Analytics