MYSQL ibdata1空间爆满处理

成都MYSQL服务器磁盘空间清理

2.7.1 项目名称

成都项目

2.7.2 问题描述

磁盘空间90%

2.7.3 影响范围

计划停机

2.7.4 问题分析

数据库磁盘空间爆满,查看是日志文件导致

2.7.5 解决方案

一、操作步骤:

1. 关闭MAP服务

2. 备份数据库

mysqldump -uroot –pXXXX --quick --routines --add-drop-database --all-databases --add-drop-table > /bak/mysqldump.sql

3. 关闭备用服务端Heartbeat

1) service heartbeat stop

2) cat /proc/drbd,确保状态如下:

0: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r----

4. 关闭主服务端heartbeat

1) service heartbeat stop

2) cat /proc/drbd,确保状态如下:

0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r----

5. 备份主服务端mysql数据库文件

为防止清理失败,便于回退,在使用mysqldump导出所有用户数据库外,还请将/drbddata/mysql目录及下面文件同时备份走,待确认清理成功无问题后方可删除

登陆主mysql服务器

ssh  [email protected]

关闭mysql服务

service mysql stop

进入drbd目录

cd /drbddata/

备份drbddata目录下mysql目录到备份服务器

scp -r mysql [email protected]: /backup

对比源文件夹和目标文件夹文件数及大小

6. 删除主服务端drbddata/mysql中除mysql目录之外的所有文件和目录

rm -f ibdata1

rm -f ib_logfile*

rm –f global/* (删除相应数据库目录下的文件, 如有多个数据库,须删除其它数据库目录下的文件)

7. 修改主服务端my.cnf配置文件增加innodb_file_per_table选项

vi /etc/my.cnf

在[mysqld]后面增加innodb_file_per_table

innodb_file_per_table=1

8. 修改备服务端my.cnf配置文件增加innodb_file_per_table选项

vi /etc/my.cnf

在[mysqld]后面增加innodb_file_per_table

innodb_file_per_table=1

9. 开启主服务端mysql服务

service mysql start

10. 开启主服务端heartbeat

1) service heartbeat start

2) cat /proc/drbd,确保状态如下:

0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r----

11. 开启备用服务端heartbeat

1) service heartbeat start

2) cat /proc/drbd,确保状态如下:

0: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r----

12. 恢复数据库

使用mysqldump备份的dump文件进行还原恢复

a.source /bak/mysqldump.sql

或者

b.mysql –uroot –p < /bak/mysqldump.sql

13. 检查磁盘使用率是否下降

14. 验证数据是否正确,数据库错误日志是否有报错日志。

15. 开启MAP服务

二、清理失败回退操作:

1. 关闭备用服务端Heartbeat

1) service heartbeat stop

2) cat /proc/drbd,确保状态如下:

0: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r----

2. 关闭主服务端heartbeat

1) service heartbeat stop

2) cat /proc/drbd,确保状态如下:

0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r----

3. 还原/drbddata/mysql原文件

4. 开启主服务端heartbeat

1) service heartbeat start

2) cat /proc/drbd,确保状态如下:

0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r----

5. 开启备用服务端heartbeat

1) service heartbeat start

2) cat /proc/drbd,确保状态如下:

0: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r----

6. 开启MAP服务

时间: 2024-10-12 07:22:56

MYSQL ibdata1空间爆满处理的相关文章

MySQL ibdata1占用空间大 释放MySQL ibdata1文件的空间

MySQL ibdata1占用空间大  释放MySQL ibdata1文件的空间 背景:最近公司一台服务器报警,磁盘空间报警超阀值.  原来mysql数据库数据目录特别大,前一篇文章中介绍的是变更mysql数据文件的目录,此文主要介绍如何把mysql占用的空间释放出来. 说明: mysql有多种存储引擎,比如MyISAM.InnoDB很常用. 如果用的InnoDB, 且使用mysql默认的配置文件,MySQL的数据都会存放在ibdata1文件中,经过一段时间此文件会变的非常大,占用大量磁盘空间.

[转]MySql ibdata1文件太大如何缩小

From : http://blog.chinaunix.net/uid-24373487-id-4223322.html 原文地址:MySql ibdata1文件太大如何缩小 作者:emailwht MySql ibdata1文件太大如何缩小 MySql innodb如果是共享表空间,ibdata1文件越来越大,达到了30多个G,对一些没用的表进行清空:truncate table xxx;然后optimize table xxx; 没有效果因为对共享表空间不起作用.mysql ibdata1

MySQL 实例空间使用率过高的原因和解决方法

用户在使用 MySQL 实例时,会遇到空间使用告警甚至超过实例限额被锁定的情况.在 RDS 控制台的实例基本信息中,即会出现如下信息: 本文将介绍造成空间使用率过高的常见原因及其相应的解决方法.对于MySQL 5.6版本的实例,升级实例规格和存储空间后即可解锁实例,关于如何升级实例配置,请参见变更配置. 常见原因 造成 MySQL 实例空间使用率过高,主要有如下四种原因: Binlog 文件占用高. 数据文件占用高. 临时文件占用高. 系统文件占用高. 查看空间使用状况 您可以通过 DMS 中的

Mysql ibdata1简述

What is stored in ibdata1? 当启用innodb_file_per_table时,表存储在它们自己的表空间中,但共享表空间仍用于存储其他InnoDB的内部数据: 数据字典也就是InnoDB表的元数据    改变缓冲区    双写缓冲区    撤消日志 其中一些可以在Percona Server上配置,以避免变得太大.例如,您可以使用innodb_ibuf_max_size为更改缓冲区设置最大大小,或者使用innodb_doublewrite_file将doublewrit

mysql ibdata1

ibdata1是什么? Mysql ibdata1即Innodb data1缩写,是innodb引擎的表空间,用于存放 数据字典Data dictionary:  只读的表,存储对象的相关信息,如占用空间,列的缺省值,约束信息,用户名,权限,审计信息等: 双写缓冲区 Double write buffer:; Innodb写入数据默认是16k/pages为一个单位写入,而磁盘是4k/page一个单位,为了防止写入一半,断电无法恢复数据的情况发生,引入了double writer buffer机制

记一次ORACLE的UNDO表空间爆满分析过程

这篇文章是记录一次ORACLE数据库UNDO表空间爆满的分析过程,主要整理.梳理了同事分析的思路.具体过程如下所示: 早上收到一数据库服务器的UNDO表空间的告警邮件,最早一封是7:55发出的(监控作业是15分钟一次),从告警邮件分析,好像是UNDO表空间突然一下子被耗尽了. DB Tablespace Allocated Free Used % Free % Used 192.168.xxx.xxx:1521 UNDOTBS1 16384 190.25 16193.75 1.16 99 使用一

MySQL表空间集

--MySQL表空间集 ----------------------2014-09-20 1. 收缩ibdata的方法,目前MySQL依然没有提供收缩ibdata的方法,只能重构,下面是5.7的步骤. Decreasing the Size of the InnoDB Tablespace Currently, you cannot remove a data file from the system tablespace. To decrease the system tablespace s

MySQL ibdata1撑爆占满磁盘空间

MySQL主从由于ibdata1占满磁盘空间-->主从失效 因为设置了innodb_file_per_table = 1,ibdata1依旧撑爆占满磁盘空间 主从断的时候,IO线程在连接,SQL线程断掉. 想要了解为何ibdata1增长那么大? 个人这么理解的:主从断掉,IO线程在,获取到了事件事物的更新,而SQL线程断掉,导致产生大量的undo,撑爆了ibdata1. 最终验证发现,确实是undo占满了ibdata1. 下载一个小工具:py_innodb_page_info.py  本人网盘下

MySQL ibdata1文件迁移

目的:主机系统/var目录快满了,经查询最大的文件是mysql的ibdata1文件,有17G大小,故需要迁移这个文件到其他目录下,以释放/var目录空间. 1.先备份下数据库是个好习惯 # mysqldump -q -uuser -ppassword --add-drop-table --all-databases > /usr2/backup/mysql_1013.sql 2.关闭mysql服务 # /etc/init.d/mysqld stop 停止 mysqld: [确定] # /etc/