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

一次生产环境mysql迁移操作(二)mysql空间释放(碎片整理)

背景

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

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

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

环境准备

1、创建物理卷


执行命令

pvcreate /dev/vdb

2、创建卷组

vgcreate vgssd /dev/vdb

3、创建mysql数据分区

lvcreate --size280G -n mysql vgssd

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

mv  /var/lib/mysql  /var/lib/mysql_bak
mount /dev/vgssd/mysql /var/lib/mysql

5、 拷贝线上数据到本地

cp -af remotepath /var/lib/mysql

chown mysql:mysql /var/lib/mysql

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

归档步骤

1、停止mysql以及其他服务

systemctl stop httpd
systemctl stop supervisord
systemctl stop mariadb umount /var/lib/mysql

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

2、查看磁盘情况

3、创建快照卷

lvcreate -s --size 180G -n mysql_backup /dev/vgssd/mysql

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

mount /dev/vgssd/mysql /var/lib/mysql

systemctl start mariadb
systemctl start httpd
systemctl start supervisord

5、挂载快照卷

mkdir -p /mnt/mysql_temp
mount -o ro,nouuid /dev/vgssd/mysql_backup /mnt/mysql_temp ls /mnt/mysql_temp

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

mkdir -p /mnt/backup/mysql
cp -a /mnt/mysql_temp /mnt/backup/mysql

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

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

一次生产环境mysql迁移操作(一)数据归档的更多相关文章

  1. 生产环境MySQL数据库集群MHA上线实施方案

    生产环境MySQL数据库集群MHA上线实施方案 一.不停库操作 1.在所有节点安装MHAnode所需的perl模块(需要有安装epel源) yum install perl-DBD-MySQL -y ...

  2. 案例分享 生产环境逐步迁移至k8s集群 - pod注册到consul

    #案例分享 生产环境逐步迁移至k8s集群 - pod注册到consul #项目背景 多套业务系统, 所有节点注册到consul集群,方便统一管理 使用consul的dns功能, 所有节点hostnam ...

  3. mysql迁移之巨大数据量快速迁移方案

    mysql迁移之巨大数据量快速迁移方案-增量备份及恢复 --chenjianwen 一.前言: 当mysql库的大小达到几十个G或者上百G,迁移起来是一件非常费事的事情,业务中断,导出导入耗费大量的时 ...

  4. 【转】生产环境MySQL Server核心参数的配置

         ⑴ lower_case_table_names              ● 推荐理由                    GNU/Linux 平台,对数据库.表.存储过程等对象名称大小 ...

  5. 一次生产环境下MongoDB备份还原数据

    最近开发一个版本的功能当中用到了MongoDB分页,懒于造数据,于是就研究了下从生产环境上导出数据到本地来进行测试. 研究了一下,发现MongoDB的备份还原和MySQL语法还挺类似,下面请看详细介绍 ...

  6. RAC环境下误操作将数据文件添加到本地存储

    今天碰到个有意思的事情,有客户在Oracle RAC环境,误操作将新增的数据文件直接创建到了其中一个节点的本地存储上. 发现网上去搜的话这种问题还真不少,对应解决方案也各式各样,客户问我选择哪种方案可 ...

  7. MySQL表操作及数据操作

    表操作 表相当于一个文件,其形式与现实中的表格相同.表中的每条记录都有相应的字段,字段就类似于表格的表头. 表操作详细: #对表进行操作(文件) #首先要切换到指定库(即文件夹)下:use db1; ...

  8. 生产环境MySQL优化

    a:硬件的优化: 1. 采用64位cpu,cpu至少4颗,L2缓存越大越好2. 内存要大,32-64G运行1-2个实例,96-128G运行3-4个实例3. 机械盘选用sas盘,转速15000以上,有可 ...

  9. 生产环境mysql的参数设置不一样,好好的程序,又出错

    一.概述 报错信息如下: org.springframework.jdbc.BadSqlGrammarException: ### Error querying database.  Cause: c ...

  10. 马老师 生产环境mysql主从复制、架构优化方案

    Binlog日志(主服务器) => 中继日志(从服务器 运行一遍,保持一致).从服务器是否要二进制日志取决于架构设计.如果二进制保存足够稳定,从性能上来说,从服务器不需要二进制日志.默认情况下, ...

随机推荐

  1. 【Playwright+Python】手把手带你写一个自动化测试脚本

    ​ 如何使用代理方式打开网页 在 playwright.chromium.launch() 中传入 proxy 参数即可,示例代码如下: 1.同步写法: 1 from playwright.sync_ ...

  2. “科来杯”第九届山东省大学生网络安全技能大赛决赛部分wp

      1.损坏的流量包 wireshark打不开,丢进winhex里,找关键字flag 哎,没找到. 那就仔细看看,在最后发现一串类似base64的密文 base64解密 得到flag 2.签到题 一个 ...

  3. 攻防世界——CRYPTO新手练习区解题总结<3>(9-12题)

    第九题easychallenge: 下载附件,得到一个后缀为pyc的文件,上网百度一下pyc文件,得知 pyc是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code,py文件变 ...

  4. 通过Docker搭建Debezium同步MySQL的数据变化

    Debezium是红帽开发的一款CDC产品,和阿里的Canel类似,都是同步binlog,不过强大了一点点.为了不再麻烦,下面称之为dbz. 达拉崩吧斑得贝迪卜多比鲁翁... dbz的搭建依赖很多中间 ...

  5. ubuntu 使用natapp配置内网穿透

    前言 在自己的服务器上起了服务,但由于域名还没申请下来,无法使用域名测试微信公众号接口,辛亏看到了这个博客:Natapp内网穿透服务工具.跟随这篇博客,我搭建了自己的内网穿透服务,现在记录如下. 过程 ...

  6. Redis缓存雪崩,击穿,穿透以及解决方案

    Redis读写过程 一般情况下,Redis都是作为client与MySQL间的一层缓存,尽量减少MySQL的读压力,数据流向如图所示: Redis的五种数据类型及使用场景 String 这个其实没啥好 ...

  7. LSTM实现文本情感分类demo

    import torch import torch.optim as optim import torch.nn as nn import numpy as np import torch.nn.fu ...

  8. vue 理解yarn start 和yarn dev的区别

    yarn dev,当文件变动后,会自动重启. yanr start不会自动重启 nodemon会监听文件变动,跟yarn dev和yarn start无关.

  9. 阅读翻译Mathematics for Machine Learning之2.6 Generating Set and Basis

    阅读翻译Mathematics for Machine Learning之2.6 Generating Set and Basis 关于: 首次发表日期:2024-07-19 Mathematics ...

  10. jmeter目录结构含义

    backups :脚本备份目录.格式JMXbin目录∶存放Jmeter的启动脚本,配置文件.模块文件.jmeter.bat启动Jmeterjmeter.properties核心配置文件.docs:离线 ...