记录一次迁移MySQL数据文件到新硬盘的过程

您所在的位置:网站首页 disk数据迁移 记录一次迁移MySQL数据文件到新硬盘的过程

记录一次迁移MySQL数据文件到新硬盘的过程

2024-07-10 17:36| 来源: 网络整理| 查看: 265

迁移前的环境

MySQL Server 程序编译安装于 qmysql 用户的 /home/qmysql/qmysql/packages 目录下,文件夹结构如下:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 . ├── data │   ├── auto.cnf │   ├── binlog │   ├── conf │   ├── ib_buffer_pool │   ├── ibdata1 │   ├── ib_logfile0 │   ├── ib_logfile1 │   ├── innodb_log │   ├── innodb_ts │   ├── log │   ├── mydata │   ├── qcs-server.err │   ├── relaylog │   ├── slowlog │   ├── sock │   ├── tmpdir │   └── undo ├── mysql -> /home/qmysql/qmysql/packages/mysql-5.7.21-linux-glibc2.12-x86_64 └── mysql-5.7.21-linux-glibc2.12-x86_64 ├── bin ├── COPYING ├── data -> /home/qmysql/qmysql/packages/data [recursive, not followed] ├── docs ├── include ├── lib ├── man ├── README ├── share └── support-files

现在在服务器上新加了一块固态硬盘,想将原来存放在机械硬盘的数据库的所有数据文件即 data 文件夹迁移到新硬盘中,以加快数据库的读写效率。

通过 fdisk -l 获取硬盘信息如下:

1 2 3 4 Disk /dev/sdb: 1197.8 GB, 1197759004672 bytes, 2339373056 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes

考虑到现在挂载的硬盘均以 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/

重启数据库服务,大功告成!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3