迁移前的环境
MySQL Server 程序编译安装于 qmysql
用户的 /home/qmysql/qmysql/packages
目录下,文件夹结构如下:
|
|
现在在服务器上新加了一块固态硬盘,想将原来存放在机械硬盘的数据库的所有数据文件即 data
文件夹迁移到新硬盘中,以加快数据库的读写效率。
通过 fdisk -l
获取硬盘信息如下:
|
|
考虑到现在挂载的硬盘均以 lvm
的方式进行分卷,计划从固态硬盘中创建 300G 的逻辑卷,挂载到系统根目录的 /data
目录,然后将 mysql
的数据文件拷贝至该位置,再软链接到原来的位置,这样可以在不更改任何mysql配置的情况下完成迁移。
创建数据卷
初始化物理卷
将物理硬盘分区初始化为物理卷,以便LVM使用。参数为要创建的物理卷对应的设备文件名。
1
pvcreate /dev/sdb
创建卷组
vgcreate命令用于创建LVM卷组。卷组(Volume Group)将多个物理卷组织成一个整体,屏蔽了底层物理卷细节。在卷组上创建逻辑卷时不用考虑具体的物理卷信息。
1
vgcreate data_vg /dev/sdb
创建逻辑卷
创建大小300G大小的逻辑卷 ,-L 指定大小,-n指定名称,最后指定卷组名称
1
lvcreate -L 300G -n mysqldata data_vg
格式化逻辑卷
对逻辑卷进行xfs格式化
1
mkfs.xfs /dev/data_vg/mysqldata
挂载文件目录
1
mount /dev/data_vg/mysqldata /data
设置开机磁盘自动挂载
要让系统开机自动挂载磁盘,需要将挂载信息写入到/etc/fstab文件中,否则重启后需要手动挂载。
1 2 3 4 5 6 7 8
$ vim /etc/fstab /dev/mapper/centos00-root / xfs defaults 0 0 UUID=80f8fe62-70ab-4c9e-8d28-52c0d5e97979 /boot xfs defaults 0 0 /dev/mapper/centos00-home /home xfs defaults 0 0 /dev/mapper/centos00-swap swap swap defaults 0 0 /dev/centos00/backup /backup xfs defaults 0 2 /dev/mapper/data_vg-mysqldata /data xfs defaults 0 2
添加最下面一行命令后保存退出。完成。
迁移数据文件
开始迁移前需要关闭 mysql
服务,终止运行数据库。
切换用户
为保证文件复制前后的所有者一致,避免出现文件权限问题,首先切换到当前mysql程序下文件的所有者用户
qmysql
。复制文件
复制所有
mysql
数据文件到固态硬盘的新目录,并保留所有文件目录属性。1
cp -ar /home/qmysql/qmysql/packages/data /data/
备份原文件
保险起见,将原来的数据文件进行备份。
1
mv data data.bak
重新链接数据文件
将固态硬盘中的数据文件目录软链接到原来的数据文件位置
1
ln -s /data/data /home/qmysql/qmysql/packages/
重启数据库服务,大功告成!