mysql磁盘空间不够用的缓解办法

1、slave端禁用的log-bin写入
log-bin 这一行注释掉
2、拆表、拆库
3、删除历史数据,备份,腾出空间
4、master端bin-log修改expire_logs_days,设置为可以接受的最短天数,或者在磁盘不够用的时候手动删除binlog
5、加磁盘
MYISAM
创建软连接,mv数据文件到新加磁盘上,注意mysql使用的不同分区都要使用相同的分区格式,
目前此技术只适用于myisam存储引擎,建议只是把数据库链接到其他磁盘上,数据表的链接是最后的选择
检查系统是否支持符号链接
mysql> show variables like ‘%link%’;
+—————+——-+
| Variable_name | Value |
+—————+——-+
| have_symlink | YES |
+—————+——-+
1 row in set (0.00 sec)
注意事项:
a.表定义文件frm必须绝不能是一个符号链接(如前面所述,只有数据(.MYD)和索引(.MYI)文件可以是符号链接)
b.当你删掉一个表时,如果该表使用了符号链接,符号链接和该符号链接指向的文件都被删除掉。这就是你不应以系统root用户运行mysqld或允许系统用户对MySQL数据库目录有写访问权限的原因。
c.如果不使用符号链接,你应对mysqld使用–skip-symbolic-links选项以确保没有人能够使用mysqld来删除或重新命名数据目录之外的文件。
表符号链接还不支持以下操作:
ALTER TABLE忽略DATA DIRECTORY和INDEX DIRECTORY表选项。
BACKUP TABLE 和RESTORE TABLE不考虑符号链接。

INNODB
innodb存储引擎可以使用以下参数来设置新的数据写入新磁盘
[mysqld]
innodb_data_file_path=/dev/hdd1:3Gnewraw;/dev/hdd2:2Gnewraw

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注