给 Mariadb 数据库瘦身
有个运行了3年的 Mariadb 实例,var/ibdata1 文件达到了 13GB ,问了 AI ,建议我导出所有数据,重建用户文件夹,再导入数据,以清理磁盘。
具体措施
修改 /etc/my.cnf 文件
# 开启独立表空间
innodb_file_per_table = 1
# 限制 ibdata1 的自动扩展上限
innodb_data_file_path = ibdata1:12M:autoextend:max:2G进入 /usr/local/mariadb 文件夹。
# 导出所有数据库
./bin/mariadb-dump --all-databases --single-transaction --routines --events > /tmp/full_dump.sql
# 停止服务
systemctl stop mariadb
# 备份数据文件夹
mv var var_old
# 新建数据文件夹
mkdir var
# 调整权限
chown mariadb:mariadb var
# 重建数据文件夹所需文件
./scripts/mariadb-install-db --user=mariadb --datadir=/usr/local/mariadb/var
# 启动服务
systemctl start mariadb
# 恢复数据
mariadb < /tmp/full_dump.sql导入完成后,再清理一下 Binlog,因为是新数据库,binlog全是插入记录,没啥用,不如直接备份 /tmp/full_dump.sql 。
/usr/local/mariadb/bin/mariadb -u root -p
RESET MASTER;效果还可以,清理了16G 空间。
21G ./var_old
4.3G ./var参考链接
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
