场景

数据数据目录库误部署在'/'下,需要挂载一个大磁盘然后数据迁移

思路:

  1. 准备好磁盘设备,并创建一个逻辑卷,挂载到系统中
  2. 最好在系统维护时间操作(23:00-8:00)
  3. 停止前端应用
  4. 停止mysql数据库(先备份mysql数据库)
  5. 迁移mysql数据文件

步骤:

1. 添加一块硬盘

sdb 8:16 0 10G 0 disk
├─sdb1 8:17 0 2G 0 part
├─sdb2 8:18 0 2G 0 part
├─sdb3 8:19 0 1K 0 part
├─sdb5 8:21 0 2G 0 part
├─sdb6 8:22 0 2G 0 part
└─sdb7 8:23 0 2G 0 part

2. 创建大小为200G的逻辑卷

1)创建物理卷

[root@server ~]# pvcreate /dev/sdb[12567]

2)创建卷组vg_mysql

[root@server ~]# vgcreate vg_mysql /dev/sdb[12567]
[root@server ~]# vgs vg_mysql
VG #PV #LV #SN Attr VSize VFree
vg_mysql 5 0 0 wz--n- 9.98g 9.98g

3)创建逻辑卷lv_mysql

[root@server ~]# lvcreate -n lv_mysql -L 8G vg_mysql
[root@server ~]# lvs /dev/vg_mysql/lv_mysql
lv_mysql vg_mysql -wi-a----- 8.00g

4)格式化为ext4文件系统

[root@server ~]# mkfs.ext4 /dev/vg_mysql/lv_mysql

5)挂载使用
a. 创建一个空的挂载点/u01

[root@server ~]# mkdir /u01

b. 挂载逻辑卷lv_mysql到/u01目录

[root@server ~]# mount /dev/vg_mysql/lv_mysql /u01

3. 停止前端web服务

[root@server ~]# nginx -s stop

4. 停止mysql数据库

[root@server ~]# service mysql stop

5. 备份mysql数据库到另外一台备份机

备份机:10.1.1.2 备份目录:/backup

[root@server ~]# rsync -av /usr/local/mysql 10.1.1.2:/backup/

6. 将/usr/local/mysql/目录里的所有数据文件同步到逻辑卷上,即/u01目录

[root@server ~]# rsync -av /usr/local/mysql/ /u01

查看是否同步完成:

[root@server ~]# ls /u01
[root@server ~]# du -sh /u01 查看大小是否和原来mysql数据库大小一致

7. 卸载逻辑卷

[root@server ~]# umount /u01

8. 删除/usr/local/mysql/目录里原来的数据文件

注意:删之前一定要确定成功备份了!!!

[root@server ~]# rm -rf /usr/local/mysql/*

9. 挂载逻辑卷lv_mysql到mysql的安装目录/usr/local/mysql

[root@server ~]# mount /dev/vg_mysql/lv_mysql /usr/local/mysql/

开机自动挂载:

vim /etc/rc.local
...
mount /dev/vg_mysql/lv_mysql /usr/local/mysql/

10. 启动数据库

[root@server ~]# service mysql start

11. 启动web服务

[root@server ~]# service apache start

12.测试验证

访问之前的网站看是否可以正常访问

最后修改:2021 年 09 月 25 日 09 : 02 PM