天天看点

mysql数据库缩容

作者:未秃顶的民航程序员

当发现数据库磁盘与最初构想的容量相差较大,且数据库磁盘过大,有些浪费的时候,可以考虑对数据库数据所在磁盘或目录进行缩容,从而合理利用磁盘空间。

空间太大了,磁盘浪费,所以需要移除一个PV

1.1 查看PV信息

# pvs           
mysql数据库缩容

从VG中拿掉一个PV的时候,如果这个PV上有数据,直接拿掉的话,数据就损坏了,所以在执行vgreduce之前一定要先把PV上的数据挪走。

1.2 PV操作

1.2.1 PV数据移动

首先先把sdb6这个PV上的数据移动到其它PV上,切记这里一定要使用pvmove而不是pvremove。

# pvmove /dev/sdb6           
mysql数据库缩容

1.2.2 移除sdb6这个PV

# vgreduce mysqlVG /dev/sdb6           
mysql数据库缩容

1.2.3 查看VG下的PV

# vgs           
mysql数据库缩容

1.2.4 查看PV情况

# pvs           
mysql数据库缩容

1.2.5 删除PV

# pvremove /dev/sdb6           
mysql数据库缩容

1.2.6 再次查看PV

# pvs           
mysql数据库缩容

缩减逻辑卷

注意:

1.不能在线缩减,得先卸载

2.确保缩减后的空间大小,依然能存储原有的所有数据

3.在缩减之前应该强行检查文件系统,以确保文件系统处于一致性状态

2.1 查看LV空间大小

mysql数据库缩容

2.2 卸载、并且强行检查文件系统

# umount /mnt
# e2fsck -f /dev/mysqlVG/mysqlLV           
mysql数据库缩容

2.3 缩减逻辑边界

语法:resize2fs /path/to/lv 缩减到多大

# resize2fs /dev/mysqlVG/mysqlLV 5G           
mysql数据库缩容

2.4 缩减物理边界

语法:lvreduce -L 缩减到多大 /path/to/lv

# lvreduce -L 5G /dev/mysqlVG/mysqlLV           
mysql数据库缩容
mysql数据库缩容

检查数据库及注意事项

3.1 检查数据库是否正常

3.2 切记:磁盘扩容、缩容操作一定要谨慎操作。最好先在测试环境演练一遍,记录下文档,然后再到生产环境中执行。

继续阅读