一. 概述

检查库中myisam的表, sql如下:

SELECT * FROM `tables` WHERE table_schema = 'UAR_STATISTIC' AND ENGINE = 'MyISAM';

由于数据库UAR_STATISTIC有大部分表存储引擎是myisam, 部分表存储引擎是innodb, 需要将myisam引擎更改为innodb, 更改思路如下:

导出表结构sql

手动更改表结构sql, 将myisam改为innodb

导出表数据sql

删除原始数据库

导入表结构

导入表数据

其他库的myisam表很少, 使用alter语句更改即可,

二. 测试环境

主库 10.101.67.15

从库 10.101.67.13 10.101.67.14 10.10.32.20

MySQL版本 5.7.11

注意: 备份和恢复期间, 需要将后端服务停掉

三. 测试前服务器状态

free –m

top

iostat –d –k 1

io –d –k –x 1 4

mysql配置

server-id=13

max_allowed_packet = 1024M

max_connections=5000

interactive_timeout=28800

wait_timeout=28800

log_warnings=1

long_query_time=1

slow_query_log=1

expire_logs_days=15

user=uar

四. 备份数据库

备份表结构脚本并更改sql文件

/usr/local/mysql/bin/mysqldump -h'10.10.32.26' -uuar_db_user -p'xxx' -B

UAR_STATISTIC --no-data --set-gtid-purged=OFF > /root/db/table_stru.sql &

sed -i 's/MyISAM/INNODB/g' table_stru.sql

备份表数据命令(花费时间再6分钟左右)

/usr/local/mysql/bin/mysqldump -h'10.10.32.26' -uuar_db_user -p'xxx' -B

UAR_STATISTIC --no-create-info --no-create-db > /root/db/table_data.sql &

五. 删除原始数据库

drop database UAR_STATISTIC;

六. 导入表结构和数据

导入表结构

/usr/local/mysql/bin/mysql -uroot –pxxx -e'source /root/db/table_stru.sql'

>> stru.log

大约20s执行完成

导入表数据

/usr/local/mysql/bin/mysql -uroot -pxxx -e'source /root/db/table_data.sql'

>> /root/db/data.log &

记录服务器性能

top

记录磁盘性能(主库)

iostat -k -d 2 4

iostat -k -d -x 2 4

du -sh /usr/local/mysql/data/UAR_STATISTIC/

mysql> show processlist\G;

1. row

Id: 4

User: repl

Host: node1:9519

db: NULL

Command: Binlog Dump

Time: 1027

State: Master has sent all binlog to slave; waiting for more updates

Info: NULL

2. row

Id: 5

User: repl

Host: node2:47596

db: NULL

Command: Binlog Dump

Time: 1021

State: Master has sent all binlog to slave; waiting for more updates

Info: NULL

3. row

Id: 6

User: repl

Host: BD-APP-07:39140

db: NULL

Command: Binlog Dump

Time: 1016

State: Master has sent all binlog to slave; waiting for more updates

Info: NULL

4. row

Id: 12

User: root

Host: localhost

db: UAR_STATISTIC

Command: Query

Time: 0

State: update

Info: INSERT INTO \`app_at_appv_dev_day\` VALUES

('UAR-000184_358','v1.9.36','HTC+M8Et',20170816,15,1,2,103.

记录执行时间

start_time: Wed Aug 1 09:50:02 CST 2018

end_time: Wed Aug 1 23:24:01 CST 2018

sql文件大小: 15G SQL

备份数据时间: 6分钟

导入数据花费时间: 13小时34分钟

总花费时间: 13小时40分钟

分析: 导入这么慢, 应该是由于binlog日志写入以及同步从库导致, 瓶颈在于io,

数据导入时, 监控io, 基本属于满负载运行

七. 总结和风险

更改全部业务库的存储引擎为myisam, 导入数据总共大概需要13小时54分钟, 导入数据时,

需要停止web和后端服务线上机器配置和负载和测试环境相差不大,

预计导入时间和测试相差不大.

mysql 修改单表导入大小_MySQL更改大库大表存储引擎方案相关推荐

  1. mysql查看导入大小_mysql 数据导入、导出,及库大小查看

    一.导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径): 1.导出数据和表结构: mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql #/usr ...

  2. mysql数据意外删了怎么办_MySQL数据库意外崩溃导致表数据文件损坏无法启动怎么办...

    MySQL数据库意外崩溃导致表数据文件损坏无法启动怎么办 发布时间:2020-07-20 13:45:46 来源:亿速云 阅读:57 作者:小猪 这篇文章主要为大家展示了MySQL数据库意外崩溃导致表 ...

  3. mysql如何查看表的大小_mysql 如何查看表的大小

    mysql 查看表的大小方法:1.查看所有数据库各表容量大小,代码为[truncate(data_length/1024/1024, 2) as '数据容量(MB)']:2.查看指定数据库各表容量大小 ...

  4. 统计mysql说有表的大小_MySQL统计数据库和表大小

    MySQL统计数据库的schema和table时,可以通过以下SQL命令进行查询. 查看该数据库实例下所有库大小(单位:MB) mysql> select table_schema,sum(da ...

  5. mysql 优化表的作用_mysql实战优化之三:表优化

    对于大多数的数据库引擎来说,硬盘操作可能是最重大的瓶颈.所以,把你的数据变得紧凑会对这种情况非常有帮助,因为这减少了对硬盘的访问. 如果一个表只会有几列罢了(比如说字典表,配置表),那么,我们就没有理 ...

  6. mysql边备份边导入么_MySQL 怎么导入导出操作

    mysql 如何导入导出操作 1.MySQL 如何导入导出个别需要数据记录? – 先导出数据所在的表结构: mysql> show create table CHARBASE into outf ...

  7. mysql 修改数据库的数据库_如何更改MySQL数据库的数据库名

    展开全部 被取消的命令MySQL 之前提供了一个 rename database db_old to db_new 的命令来直接对数据库改名,可能由于实现的功能不完备(比62616964757a686 ...

  8. mysql倍增表的内容_MySQL入门(7)——表数据的增、删、改

    MySQL入门(7)--表数据的增.删.改 插入数据 使用INSERT···VALUES语句插入数据 INSERT语句最常用的格式是INSERT···VALUES: INSERT [LOW_PRIOR ...

  9. mysql 表级锁_MySQL行级锁和表级锁

    锁定用于确保事务完整性和数据库一致性. 锁定可以防止用户读取其他用户正在更改的数据,并防止多个用户同时更改相同的数据. 如果不使用锁定,数据库中的数据可能在逻辑上变得不正确,而针对这些数据进行查询可能 ...

最新文章

  1. XML解析简介及Xerces-C++简单使用举例
  2. 2017上半年软考 第七章 重要知识点
  3. python htmltestrunner报告_Python HTMLTestRunner可视化报告实现过程解析
  4. 找到那些氪金大佬,然后榨干他们丨AIの特殊技能
  5. 微软称HTML5是IE 9的核心 要尽快淘汰IE 6
  6. java中的lastIndexOf( )函数是什么意思
  7. Taro多端开发实现原理与项目实战(一)
  8. 什么是灰度发布?灰度发布方式 系统的割接 灰度部署典型的框架架构
  9. 操作文件的实用类,删除目录,清空目录,删除文件
  10. 远程无法连接数据库的问题
  11. 数据库学习(Oracle)
  12. 井通swtc能不能涨到2元_玉米收购价最高涨110元一吨,节后玉米能否破1.2?收购商说得有理...
  13. POJ 2187 凸包旋转卡壳
  14. 紫光华宇拼音输入法使用技巧
  15. JAVA POI导出Excel文件并添加水印
  16. 六款国产杀毒软件资源占用测试,八款杀毒软件横向评测:系统资源占用篇
  17. qq手机邮箱服务器设置方法,手机qq邮箱imap设置图文教程
  18. 2011 imac 固态_iMac (21.5 英寸, 2011 年中) - 技术规格
  19. LiDAR-based Panoptic Segmentation via Dynamic Shifting Network(论文阅读笔记)
  20. linux下制作pe启动盘工具,自己动手定制winpe dos工具箱迷你linux u盘启动盘

热门文章

  1. 房贷新政刺激楼市作用有限 房价严重背离无改变
  2. javaSE基础——常见的dos命令即其他
  3. 背景色透明,里面内容(图片、文字)不透明
  4. OpenSSH 远程拒绝服务漏洞
  5. ExtTabMenu 控件
  6. ubuntu18.04新安装时Unable to locate package问题
  7. “让数据用起来”:解读数据中台必备的4个核心能力
  8. python集合常用方法_Python中集合类型(set)学习小结
  9. 一本关于HTTP的恋爱日记
  10. 听说现在微服务30k以上?真的该转型?