2019独角兽企业重金招聘Python工程师标准>>>

如何不停机迁移一个mysql INNODB 数据库?
http://www.itpub.net/thread-1776724-1-1.html

使用MYSQL 5.5.27 服务器A上运行多个innodb 数据库,24x7 服务。其中一个数据库DBM1需要迁移到服务器B,DBM1的目录下磁盘文件的数据量为1TB左右, 有800+张表,其中实时更新的的有100多张表,它们的数据文件大小为100多GB。 innodb 已经配置为innodb_file_per_table。
要求迁移DBM1到服务器B,,迁移完成后,应用程序访问由A 立即切换到B,应用程序只能在切换时中断5分钟以内,同时要保证数据实时写入数据库,不能丢失数据。
想用replication, 或rsync ,但由于数据量较大,和实时写入数据不能丢失的要求,觉得实现比较困难。
请问有什么好的办法?或者工具?

答:

保证应用5分钟之内完成切换,且尽量不掉数据,方案肯定用复制。 问题在于复制的镜像如何做?
1、镜像一般两种:1)xtrabackup, 如果有myisam会有,才拷贝Myisam时会锁库,但时间很短。  2)你的库全部都是innodb表,使用mysqldump --single-transaction --master-date=2 
2、slave镜像选择:不建议使用mysqldump , 因为你原数据已经是1T,那么备份的文件也,怎么也得有700G以上(如果索引比较合理),备份速度不影响,但到目标机还原的时间就比较长了。
所以这里建议使用xtrabackup,  我们MySQL5.5.2x的使用1.63或者2.0的全备和增量备份都正常。
3、搭建主从库:xtrabackup备份完成后,根据binlog+pos,做成M-S , 原主机为M, 目标机为S. 这里处理注意几点:
1)xtrabackup备份的数据大小,相当于你目前datadir的du -h大小, 所以一定要注意你原机磁盘空间问题。 
2)从原主机到目标机传输时,scp过去使用-l限速,以免网卡打满,或者IO堵死了
3) 在目标机上如果磁盘不够, 比如你只有1.5T,xtrabackup不能做--copy-back, 好像2.0有个新参数,在回烤时只有一份。
4)目标作为从库时,修改一下复制my.cnf,只复制你要迁移的库。(如果单表的,可以使用blackhole engine来过滤不复制表)
5)M-S搭建起来后,把不用的库都drop掉。

4、在把应用切到目标机之前,把核心表warm-up一下, 比如用select count(*), 以免应用切到新机,完全冷数据,直接IO卡死了。

转载于:https://my.oschina.net/u/2288423/blog/360722

如何不停机迁移一个mysql INNODB 数据库?相关推荐

  1. MySQL Innodb数据库性能实践——VARCHAR vs CHAR

    学过数据库理论的读者,都应该还记得关于CHAR和VARCHAR的性能对比:CHAR比VARCHAR更快,因为CHAR是固定长度的,而VARCHAR需要增加一个长度标识,处理时需要多一次运算. 针对这种 ...

  2. 使用 Navicat Premium 将 sql server 的数据库迁移到 mysql 的数据库中

    步骤1,打开 Navicat Premium ,创建一个新的 mysql 数据库: 步骤2,选中刚刚创建的新数据库 ,双击选中后点击导入向导,然后选择 "ODBC",并点击下一步 ...

  3. 用软件创建一个mysql的数据库_JSP中的数据库操作(1):MySQL数据库创建及管理...

    本文目录顺序: 安装MySQL MySQL管理软件SQLYog Enterprise --30天试用期到期解决方法 使用SQLYog Enterprise建立数据库 MySQL的各项参数 1. 安装M ...

  4. 如何做一个MySQL优良数据库_MySQL数据库如何做好优化

    (碰到过好几次这样的题目,可每次都不能答的完全正确,现在大概列出如下:(望各位补充)(1.数据库的设计((尽量把数据库设计的更小的占磁盘空间.(1).尽可能使用更小的整数类型.(mediumint就比 ...

  5. 将数据导入到mysql_06955.10.2如何将CM的外部PostgreSQL数据库迁移至MySQL服务

    作者:朱超杰 文档编写目的 在前面的文章<如何将CM内嵌PostgreSQL服务迁移至外部PostgreSQL服务>介绍了将CM内嵌的PostgreSQL迁移至外部PostgreSQL,因 ...

  6. ef 数据迁移mysql_07116.3.0如何将CM的外部PostgreSQL数据库迁移至MySQL服务

    文档编写目的 在前面的文章<6.3.0-如何将CM内嵌PostgreSQL服务迁移至外部PostgreSQL服务>介绍了将CM内嵌的PostgreSQL迁移至外部PostgreSQL,因为 ...

  7. sql server 迁移 mysql_sql server 迁移到 mysql

    sqlserver迁移到mysql  在数据库方面的工作主要是表的迁移,以及存储过程的迁移,这里主要做的是表的迁移. 首先先将MSSQL Server表结构导出为.sql文件. 表迁移,mysql一律 ...

  8. MySQL 创建数据库和创建数据表

    MySQL 是最常用的数据库,在数据库操作中,基本都是增删改查操作,简称CRUD. 在这之前,需要先安装好 MySQL ,然后创建好数据库.数据表.操作用户. 一.数据库操作语言 数据库在操作时,需要 ...

  9. oracle迁移到mysql工具_oracle数据库想迁移到mysql上 有什么方法或者工具吗

    Manager进程:需要源端跟目标端同时运行,主要作用是监控管理其它进程,报告错误,分配及清理数据存储空间,发布阈值报告等 Extract进程:运行在数据库源端,主要用于捕获数据的变化,负责全量.增量 ...

最新文章

  1. R语言构建xgboost模型:基于稀疏数据(dgCMatrix which is a sparse matrix)、稠密数据(dense matrix)、xgb.DMatrix数据聚合
  2. MyBatis+Spring整合
  3. 架构师书单 2nd Edition--转载
  4. 从mongodb中查询数据
  5. 位运算与组合搜索(二)
  6. 自定义添加删除行按钮
  7. 注释和简单用户交互程序
  8. osg节点访问和遍历
  9. Sparklens:Spark应用程序优化工具
  10. Veket PuppyLinux系统装在U盘中
  11. INNODB自增主键的一些问题 vs mysql获得自增字段下一个值
  12. python selenium使用JS新建标签(new tab)与切换标签
  13. 从零开始开发JVM语言(七)语义分析的起步
  14. AjaxAtlas技术团队[公告]:请大家清理自己发布在团队页面上的post!
  15. su室内插件_SketchUp必学插件TOP100,每一个都是[室内/装饰/景观]设计的效率神器...
  16. python算大写字母
  17. 判断计算机电脑是否通电,电脑日常维护:查看硬盘通电时间,判断性能
  18. mysqlin查询的java写法_[转载]常用的shell脚本
  19. java stream order by_Java Stream 使用详解
  20. python-office的使用

热门文章

  1. Oracle Listener 动态注册 与 静态注册
  2. 哀悼日使站点变灰色调的方法
  3. sequential模型编译时的指标设置:sklearn.metrics:指标
  4. 【翻译】旧技术成就新勒索软件,Petya添加蠕虫特性
  5. 望城区构建摩托车电动车防盗系统 打造物联网平安智慧城市
  6. javascript 请求action传递中文参数乱码问题
  7. ASP.NET中常用的几个李天平开源公共类LTP.Common,Maticsoft.DBUtility,LtpPageControl
  8. windows程序消息机制(Winform界面更新有关)--转
  9. When use jQuery databTables after add action reloa
  10. cygwin下安装软件