成都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服务