记录一次迁移MySQL数据文件到新硬盘的过程 |
您所在的位置:网站首页 › disk数据迁移 › 记录一次迁移MySQL数据文件到新硬盘的过程 |
迁移前的环境
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 |