前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一次生产环境mysql迁移操作(一)数据归档

一次生产环境mysql迁移操作(一)数据归档

作者头像
一笠风雨任生平
发布2020-02-18 12:50:30
1.7K0
发布2020-02-18 12:50:30
举报
文章被收录于专栏:服务化进程

背景

在项目过程中我们经常要对数据库进行迁移、归档、拆分等等操作,现在描述下几种方案

  • mysqldump 该命令可以指定导出数据库,该命令可能用时很久
  • cp 直接拷贝mysql数据文件,这里会影响业务需要下线mysql
  • 使用innobackupex 工具进行备份,这个不影响业务,速度稍快
  • 先打lvm快照,然后从快照中备份数据,节省时间

我们有需要将物理盘上的mysql迁移到ssd上,先说一下生产环境一直有数据产生,且数据量达到500G。 方案一:使用mysqldump,不管是导入导出都太耗时,没有一天拿不下 方案二:直接物理磁盘上拷贝也是非常耗时,拷贝过程中需要停服务,这就导致停服务时间太长。 方案三:这个方案本来是很有优势的,但是实际情况导出导入也需要锁表或锁库,也是需要停服务,本来我们就不需要增量拷贝,innobackupex优势体现在增量拷贝。 方案四:拷贝速度快 综合停服务时间以及操作难易度,最终选择了方案四。 下面描述下操作步骤

环境准备

1、创建物理卷

在这里插入图片描述
在这里插入图片描述

执行命令

代码语言:javascript
复制
pvcreate /dev/vdb

2、创建卷组

代码语言:javascript
复制
vgcreate vgssd /dev/vdb

3、创建mysql数据分区

代码语言:javascript
复制
lvcreate --size280G -n mysql vgssd

4、移除mysql原有数据,并挂载

代码语言:javascript
复制
mv  /var/lib/mysql  /var/lib/mysql_bak
mount /dev/vgssd/mysql /var/lib/mysql

5、 拷贝线上数据到本地

代码语言:javascript
复制
cp -af remotepath /var/lib/mysql

chown mysql:mysql /var/lib/mysql

执行完上面步骤后,再开始进行归档操作

归档步骤

1、停止mysql以及其他服务

代码语言:javascript
复制
systemctl stop httpd
systemctl stop supervisord
systemctl stop mariadb

umount /var/lib/mysql

执行umount时需要保证各终端退出该目录

2、查看磁盘情况

在这里插入图片描述
在这里插入图片描述

3、创建快照卷

代码语言:javascript
复制
lvcreate -s --size 180G -n mysql_backup /dev/vgssd/mysql

4、重新绑定mysql,重启服务

代码语言:javascript
复制
mount /dev/vgssd/mysql /var/lib/mysql

systemctl start mariadb
systemctl start httpd
systemctl start supervisord

5、挂载快照卷

代码语言:javascript
复制
mkdir -p /mnt/mysql_temp
mount -o ro,nouuid /dev/vgssd/mysql_backup /mnt/mysql_temp

ls /mnt/mysql_temp

6、拷贝数据,将数据拷贝到本地

代码语言:javascript
复制
mkdir -p /mnt/backup/mysql
cp -a /mnt/mysql_temp /mnt/backup/mysql

7、取消挂载,删除快照卷

代码语言:javascript
复制
umount /mnt/mysql_temp

lvremove /dev/vgssd/mysql_backup

定时归档

暂定为30天,这样才能备份所有数据。 因为需要硬件准备,所以这里只能手动操作

恢复数据

如果磁盘数据丢失需要恢复数据,则执行下面操作 1、关停mysql服务 systemctl stop mariadb

2、修改/etc/my.conf datadir= /mnt/backup/mysql

3、重启服务 systemctl start mariadb

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 环境准备
    • 1、创建物理卷
      • 2、创建卷组
        • 3、创建mysql数据分区
          • 4、移除mysql原有数据,并挂载
            • 5、 拷贝线上数据到本地
            • 归档步骤
              • 1、停止mysql以及其他服务
                • 2、查看磁盘情况
                  • 3、创建快照卷
                    • 4、重新绑定mysql,重启服务
                      • 5、挂载快照卷
                        • 6、拷贝数据,将数据拷贝到本地
                          • 7、取消挂载,删除快照卷
                          • 定时归档
                          • 恢复数据
                          相关产品与服务
                          云数据库 SQL Server
                          腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
                          领券
                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档