一次生产环境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. php不使用Office包实现上万条数据导出表格

    经过上传客户要求主副表迁出,又提出可以将某张表的数据导出excel,听着很简单,实际看数据表发现上万条数据,并且需要关联表查询相关字段,导出的表格才可以被客户看明白. 要是使用office包目前后台内 ...

  2. Centos7或Ubuntu 磁盘扩容

    准备 切换到root用户(获取root权限) 安装: [root]# install lvm2 -y 查看当前信息: # 查看根分区大小 $ df -h Filesystem Size Used Av ...

  3. NXP i.MX 8M Mini开发板规格书(四核ARM Cortex-A53 + 单核ARM Cortex-M4,主频1.6GHz)

    1 评估板简介 创龙科技TLIMX8-EVM是一款基于NXP i.MX 8M Mini的四核ARM Cortex-A53 + 单核ARM Cortex-M4异构多核处理器设计的高性能评估板,由核心板和 ...

  4. mermaid语法画图

    mermaid 脚本语言 graph TB 从上到下 graph BT 从下到上 graph RL 从右到左 graph LR 从左到右 graph LR; A001-->B001; graph ...

  5. 在Mac上使用Emacs初步

    其他操作系统估计也差不多. 安装 如果使用brew就是brew install emacs.安装后不会在Applications里面显示一个程序,需要在命令行里执行emacs. 使用 进入和退出 上面 ...

  6. Quarkus初体验:动态加载和原生部署

    在前面的文章<尝试官方的第一个SpringNative 0.11程序>中提到过Quarkus这门技术.这里就简单演示一下它的两个主要功能:Live Coding和Native Build. ...

  7. Springboot+Shiro+Mybatis+mysql实现权限安全认证

    Shiro是Apache 的一个强大且易用的Java安全框架,执行身份验证.授权.密码学和会话管理.Shiro 主要分为两个部分就是认证和授权两部分 一.介绍 Subject代表了当前用户的安全操作 ...

  8. SpringBoot 整合Activiti 7.X 从入门到精通

    简介 Activiti 是一个轻量级工作流程和业务流程管理 (BPM) 平台,面向业务人员.开发人员和系统管理员.其核心是一个超快且坚如磐石的 Java BPMN 2 流程引擎.它是开源的,并根据 A ...

  9. Go微服务开发指南

    在这篇深入探讨Go语言在微服务架构中的应用的文章中,我们介绍了选择Go构建微服务的优势.详细分析了主要的Go微服务框架,并探讨了服务发现与注册和API网关的实现及应用. 关注TechLead,复旦博士 ...

  10. [oeasy]python0109_tty_打字头_电传打字机_字模_点阵字库

    点阵字库 回忆上次内容 上次回顾了 字符字型 的 进化过程 从 谷腾堡 活字 到 罗马正字 和 意大利斜体   罗马帝国战斗力的征服 和 基督教文化传播 使得 拉丁字符 在日耳曼语地区广泛传播 种葡萄 ...