diff --git a/postgresql_and_edb/一次数据库硬盘扩容.md b/postgresql_and_edb/一次数据库硬盘扩容.md new file mode 100644 index 0000000..7fd5420 --- /dev/null +++ b/postgresql_and_edb/一次数据库硬盘扩容.md @@ -0,0 +1,68 @@ +## 数据库硬盘扩容 + +### 前言 + +数据库硬盘不够用了 ,数据分区使用的普通分区, + + 新加一块硬盘 和原来的一块硬盘 组成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 - +``` + +启动数据库