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