Linux下将系统盘数据迁移到数据盘


在一次项目中,由于linux服务器中系统盘数据增长过快,需要将系统盘数据迁移到数据盘中,现以迁移mysql数据为例简述迁移过程。

一、创建分区

1、查看数据盘是否已经分区

命令如下:

fdisk -l

Linux下将系统盘数据迁移到数据盘
可以看到,目前服务器中有一块大小为2G的尚未分区的数据盘/dev/sdb。

2、对数据盘进行分区

命令如下:

fdisk /dev/sdb

输入m,查看命令操作。
Linux下将系统盘数据迁移到数据盘
输入p查看当前硬盘的分区信息,当前该硬盘没有分区
Linux下将系统盘数据迁移到数据盘
输入n新建分区,p为主分区,分别输入分区号以及起始扇区,这里起始扇区使用默认。Linux下将系统盘数据迁移到数据盘
输入w保存分区
Linux下将系统盘数据迁移到数据盘

3、格式化分区

新创建的分区需要进行格式化才能进行使用,因为每种操作系统所设置的文件属性/权限并不相同,为了存放这些文件所需的数据,因此需要将分区进行格式化,已成为操作系统能够利用的文件系统格式。由此我们也能知道,每种操作系统的文件系统格式并不相同。比如Windows系统的文件系统格式是FAT/FAT16/NTFS,而CentOS 就是Ext2/Ext3/Ext3。
格式化命令:格式分区,并指定分区系统/dev/sdb1 ,我这里是格式化成 ext4

mkfs.ext4   /dev/sdb1

格式化完成
Linux下将系统盘数据迁移到数据盘

二、迁移数据

分区创建好之后需要将原系统盘中的数据迁移至数据盘,这里我们将原来mysql中的数据迁移到数据盘。
首先需要先将新分区挂载到一个临时目录下
Linux下将系统盘数据迁移到数据盘
接下来将系统盘mysql中的数据迁移到数据盘
Linux下将系统盘数据迁移到数据盘
迁移完成后,需要将数据盘挂载到系统盘相应的目录下

三、挂载分区

1、通知系统内核分区表的变化,不然内核不知道分区

命令如下:

partprobe /dev/sdb1

2、挂载分区

将数据盘挂载到原系统盘mysql的目录下,并查看是否挂载成功
Linux下将系统盘数据迁移到数据盘

3、设置开机自动挂载

挂载后需要设置开机自动挂载,否则重启服务器后挂载的分区就没了。
先查看分区UUID,命令如下:

blkid

Linux下将系统盘数据迁移到数据盘
修改/etc/fstab文件,添加新挂载的分区

vim /etc/fstab

Linux下将系统盘数据迁移到数据盘
添加上面红框中标注的语句,保存该文件

至此,数据迁移完毕,重启服务器查看数据盘是否正常挂载。