环境:

数据库版本:5.6

系统环境:CentOS 6.8

复制架构:

需求:

需要将实例C上面一个2500万行数据的Innodb引擎的表table进行分区,但是在实例A上面表table不做任何的修改。

思考的问题:

在实例C上面的表table做分区,分区之后会不会影响实例A和实例C之间表table的传输,会不会造成数据不一致或者插入失败,或者分区之后插入的数据会比较慢。

实际操作:都是在实例C上面的操作

1. stop slave IO_THREAD 停掉IO_THREAD并且等待实例C重放relay log完毕。

Master_Log_File == Relay_Master_Log_File and  Read_Master_Log_Pos == Exec_Master_Log_Pos 当这俩个表达式成立的时候表明本地的relay log已经重做完毕。

2.逻辑备份表table的数据:

 mysqldump -S /var/lib/mysql/mysql.sock -uroot -p --single-transaction --master-data=2 -t --skip-add-drop-table sbtest sbtest1 > sbtest1.sql参数解释:-t:不创建table--skip-add-drop-table:不做drop table操作

在备份的时候不需要drop table 和 create table操作写入备份的SQL语句中

3.更改表名

更改旧表的表名 rename table sbtest1 to sbtest2; 这样做的目的是为了在做备份导入的时候不需要更改备份SQL语句,并且万一分区失败或者其他的原因至少也有表的备份存在。

4.创建空表并且进行分区:

CREATE TABLE `sbtest1` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`k` bigint(20) NOT NULL,`c` varchar(20) NOT NULL,`pad` varchar(50) COLLATE utf8mb4_bin NOT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin PARTITION BY KEY (id) PARTITIONS 64

新表的表结构要和旧表的表结构一致,唯一不同就是提前分好区。

5.导入逻辑备份语句

mysql -uroot -p sbtest < sbtest1.sql

6.导入完毕之后开启slave并且观察一段时间

start slave IO_THREAD

7.pt-table-checksum数据一致性检测(可做可不做)

http://seanlook.com/2015/12/29/mysql_replica_pt-table-checksum/

8.建议:

因为2500万行的数据的备份会花费比较长的时间,所以在备份的时候建议使用screen,那怕在你远程回话断开之后进程还是存在的。

转载于:https://blog.51cto.com/11819159/2050632

【MySQL】 已经存在大量数据的表做分区相关推荐

  1. 如何给mysql表添加百万条数据_给mysql一百万条数据的表添加索引

    直接alter table add index 添加索引,执行一个小时没反应,并且会导致锁表:故放弃该办法,最终解决办法如下: 一.打开mysql 命令行客户端 这里我们那可以看到导出的数据文件所存放 ...

  2. mysql中清空数据库数据保留表结构

    – mysql导出视图以及表结构 #mysqldump -uuser -ppassword --d database_name> database_name_date.sql – 只导出数据不导 ...

  3. mysql中清空数据库数据保留表结构(史上最简单,一句话搞掉)

    这里简单说下我们公司信息化平台在云上部署上线的情景,mysql数据库被分在了测试机和正式机,测试机是开发人员对数据库进行表结构修改例如字段信息的场景,而正式机是对外部的业务,因此正式机的数据是最终使用 ...

  4. mysql中如何创建数据和表

    这次进行mysql中表和数据的创建,还是有很多细节需要注意的,可能一个单词打错就会导致很长的数据出错,比如create 打成creat,并且有一些技巧可以提高编辑的效率. (本次的数据和表都是参照书上 ...

  5. MySQL/MariaDB 如何实现数据透视表

    文章目录 使用 CASE 表达式和分组聚合 使用预编译的动态 SQL 语句 使用 CONNECT 存储引擎 大家好,我是只谈技术不剪发的 Tony 老师.前文介绍了 Oracle 中实现数据透视表的几 ...

  6. mysql1000w数据怎么加索引_给mysql一百万条数据的表添加索引

    直接alter table add index 添加索引,执行一个小时没反应,并且会导致锁表:故放弃该办法,最终解决办法如下: 一.打开mysql 命令行客户端 这里我们那可以看到导出的数据文件所存放 ...

  7. Sqoop分批导入Mysql上亿条数据的表到HDFS

    因数据量过大,运行sqoop跑不动或者卡内存,于是通过写脚本分批导入到HDFS,然后再加载到Hive表中. shell脚本如下: #!/bin/bash source /etc/profilehost ...

  8. mysql union all 别名_MySQL Union合并查询数据及表别名、字段别名用法分析

    本文实例讲述了MySQL Union合并查询数据及表别名.字段别名用法.分享给大家供大家参考,具体如下: union关键字 SELECT s_id, f_name, f_price FROM frui ...

  9. MySQL 分库分表与分区的区别和思考

    一.分分合合 说过很多次,不要拘泥于某一个技术的一点,技术是相通的.重要的是编程思想,思想是最重要的.当数据量大的时候,需要具有分的思想去细化粒度.当数据量太碎片的时候,需要具有合的思想来粗化粒度. ...

最新文章

  1. JAVA取数两个数组交集,考虑重复和不重复元素
  2. linux 操作系统chgrp 的命令用法
  3. php tostring(),【php】“__toString()”方法使用,php__tostring
  4. Linux I/O 模型(待修改)
  5. 【转】ASP.NET Web API 使用Swagger生成在线帮助测试文档,支持多个GET
  6. 【Elasticsearch】 es nested 嵌套类型 详解
  7. 李飞飞重返祖国执掌Google AI中国团队:不忘初心,中国已觉醒
  8. php用哪个稳定版本linux系统,PHP的版本选择
  9. 计算机考试试题大一上学期,大一第一学期期末考试计算机试题
  10. 网络安全等级保护云计算安全防护技术体系设计
  11. Origin 2017 给曲线加标记符号
  12. 安装Ubuntu 20.04后要做的几件事(换源,精简,定制)
  13. BI技巧丨近两年及当年月份数据汇总
  14. 【怎么卸载影子系统?卸载影子系统解决方法】
  15. 产品经理1.1_如何高效的开展产品需求评审会
  16. windows批处理脚本bat命令解析【7】EXIT /B 0
  17. 【Visual C++】游戏开发五十六 浅墨DirectX教程二十三 打造游戏GUI界面(一)
  18. 从工地打工,到狂揽10个大厂offer、副业赚100万:培训班出来的程序员是怎么做到的?
  19. 远程访问MySql数据库
  20. QGC地面站对PX4无人机速度进行限制

热门文章

  1. Ajax原理详细说明
  2. Quartz.net官方开发指南 第九课: JobStore
  3. Keil uVision5 之 C51 与 MDK 共存
  4. GraphPad Prism 平均值的标准误差
  5. php 跨域读php_php跨域的几种方式
  6. python不等式编程_python-指定大于scipy中的不等式
  7. Java Web 程序设计----基于SSM框架(正在更新中)
  8. 光流 | 光流交流群
  9. 海南工会云会员认证_好消息!海南农民工春节返乡最高有300元补贴!申请条件和流程→...
  10. autocomplete触发事件_输入内容的自动匹配(AutoCompleteTextView)的点击事件遇到的问题...