## 数据库硬盘扩容 ### 前言 数据库硬盘不够用了 ,数据分区使用的普通分区, 新加一块硬盘 和原来的一块硬盘 组成lvm 分区 ### 备份数据 1. 停机数据 2. 备份数据库文件,这里采用tar 配合zstd 压缩归档 `tar -I zstd -cvf archive.tar.zst /data/` ### lvm卷组创建 #### 一、卸载相关操作 1. `lsof +D /data` # 查看/data目录下打开的文件 2. `umount /data` # 卸载/data挂载点 3. `df -hT /data` #确定卸载情况 #### 二、磁盘及分区查看 1. `df -lh` # 查看磁盘分区的使用情况 2. `fdisk /dev/nvme0n1p1` # 对nvme0n1p1分区进行操作(如查看、分区等) 3. 使用 fdisk 删除 原有分区(备份好数据) #### 三、LVM相关配置([详情看](/linux/linux使用lvm.md)) 1. `pvcreate /dev/nvme0n1 /dev/sdb` # 创建物理卷(可以为分区) 2. `pvdisplay` # 显示物理卷的信息 3. `vgcreate vg_data /dev/nvme0n1 /dev/sdb` # 创建卷组vg_data 4. `vgdisplay` # 显示卷组的信息 5. `lvcreate -l 100%FREE -n lv_data_all vg_data` # 在vg_data卷组上创建逻辑卷lv_data_all,使用全部空闲空间 6. `lvdisplay /dev/vg_data/lv_data_all` # 显示vg_data卷组下lv_data_all逻辑卷的信息 #### 四、文件系统及挂载配置 1. `mkfs.xfs /dev/vg_data/lv_data_all` # 为逻辑卷创建xfs文件系统 3. `mkdir /data` # 创建/data目录作为挂载点(原有目录存在则不创建) 4. `mount /dev/vg_data/lv_data_all /data` # 将逻辑卷挂载到/data目录 5. `df -lh` # 查看挂载后的磁盘使用情况( 如不生效则配置fstab重启) #### 五、自动挂载配置及重启 1. `vim /etc/fstab` # 编辑fstab文件,配置开机自动挂载 2. `/dev/vg_data/lv_data_all /data xfs defaults 0 0 ` 3. `mount -a` # 挂载fstab文件中所有未挂载的文件系统,验证配置是否正确 4. `reboot` # 重启系统 ### 数据恢复 提供两种方法 恢复文件 ``` zstd -d archive.tar.zst && tar -xvf archive.tar -C /path/to/extract ``` ``` zstd -dc archive.tar.zst | tar -xvf - ``` 启动数据库