Innodb表空间迁移过程
1.大致流程
| 将a实例的表的数据迁移到b实例上.
1.在目标实例b上创建一个相同的表 2.在目标库b上执行ALTER TABLE t DISCARD TABLESPACE; 3.在源库a上执行FLUSH TABLES t FOR EXPORT;生成.cfg文件 4.将.ibd文件和.cfg文件拷贝到目标实例b 5.在源库a执行unlock tables; 6.在目标库b执行ALTER TABLE t IMPORT TABLESPACE; |
2.详细步骤
| b实例上: create database yy; 在a实例上: show create table y;将建表语句复制到b实例use yy后并执行. 相应表文件是y.frm和y.ibd. a实例上: mysql> create database yy;
mysql> use yy;
mysql> create table y (name varchar(10),age int);
mysql> insert into y values ('yy.y',25);
mysql> insert into y values ('yy.y',26);
mysql> insert into y values ('yy.y',27);
b实例上:
mysql> create database yy;
mysql> use yy;
mysql> create table y (name varchar(10),age int);
|
2.在b实例上: ALTER TABLE
y DISCARD
TABLESPACE;
| discard的意思就是从数据库detached,会删除ibd文件,保留frm文件。也就意味着,你可以对frm文件操作,比如:rename table,drop table ,但是不能对ibd文件操作,比如:dml. b实例上删除y表的数据文件:
[root@lbg2 ~]# cd /home/mysql3306/mysql3306/yy
[root@lbg2 yy]# ls
db.opt y.frm y.ibd
mysql> ALTER TABLE
y DISCARD TABLESPACE; [root@lbg2 yy]# ls
db.opt y.frm
|
TABLES y FOR
EXPORT;
| 表y这时候处于quiesce状态,只读,且创建.cfg metadata文件. a实例上: [root@master yy]# ls db.opt mysql> FLUSH [root@master yy]# ls db.opt flush tables .. for |
4.将a实例中y.cfg和y.ibd拷贝到b实例对应位置.并在b上修改对应权限.
| 在a实例:
[root@master yy]# scp y.cfg [root@master yy]# scp y.ibd 在b实例: [root@lbg2 yy]# ls db.opt [root@lbg2 yy]# chown -R mysql.mysql |
5.在实例a执行unlock
tables解锁;
| a实例:
mysql> unlock tables; 执行unlock |
6.在实例b上导入tablespace: ALTER TABLE y IMPORT
TABLESPACE;
| b实例:
mysql> ALTER TABLE y IMPORT mysql> select * from y; +------+------+ | name | age | +------+------+ | yy.y | | yy.y | | yy.y | +------+------+ 完成表空间迁移。 |
说明:迁移数据会对表加锁.完成迁移后b实例下,依旧保留y.cfg,但解锁后,a实例下y.cfg自动删除.
3.innodb可传输表空间注意事项
| 必须开启 innodb_file_per_table
当这个表处于quiesced状态,甚至不能被select 两边实例的page size 一致 5.7 版本之前,不支持分区表transport外键相关的表,必须设置 foreign_key_checks=0 才能成功 ALTER TABLE ... IMPORT 5.6以及更高版本,import&export 版本必须在同一个series 在replication环境中,master & 对于InnoDB general tablespace,不支持discard & import 如果两边服务器的table row_format设置的不一样,会导致schema mismatch 加密过的InnoDB tablespace 必须要拷贝.cfp 文件 |
4.MyISAM表空间迁移
| 1. flush table with read lock
2. 直接复制数据文件和表结构文件 |
Innodb表空间迁移过程的更多相关文章
- Innodb 表空间传输迁移数据
在mysql5.5之前,mysql实例中innodb引擎表的迁移是个头疼的问题,要么使用mysqldump导出,要么使用物理备份的方法,但是在mysql5.6之后的版本中,可以使用一个新特性,方便地迁 ...
- MySQL Innodb表空间不足的处理方法
官方给出的解决方案: 添加和删除 InnoDB 数据和日志文件 这一节描述在InnoDB表空间耗尽空间之时,或者你想要改变日志文件大小之时,你可以做的一些事情. 最简单的,增加InnoDB表空间大小的 ...
- 10. InnoDB表空间加密
10. InnoDB表空间加密 InnoDB支持存储在单独表空间中的表的数据加密 .此功能为物理表空间数据文件提供静态加密. 详细信息见官方文档
- ibd2sdi — InnoDB表空间SDI提取实用程序
参考mysql8.0官方文档 https://dev.mysql.com/doc/refman/8.0/en/ibd2sdi.html ibd2sdi是一个实用程序,用于从表空间文件中提取 序列化的字 ...
- MySQL InnoDB表空间加密
从 MySQL5.7.11开始,MySQL对InnoDB支持存储在单独表空间中的表的数据加密 .此功能为物理表空间数据文件提供静态加密.该加密是在引擎内部数据页级别的加密手段,在数据页写入文件系统时加 ...
- Innodb 表空间卸载、迁移、装载
从MySQL的Innodb特性中我们知道,Inndob的表空间有共享和独享的特点,如果是共享的.则默认会把表空间存放在一个文件中(ibdata1),当开启独享表空间参数Innodb_file_per_ ...
- InnoDB表空间、段、区
1. 表空间是InnoDB存储引擎逻辑结构的最高层,所有的数据都存放在表空间中.默认,InnoDB存储引擎只有一个表空间ibdata1,即所有数据都存放在这个表空间内.如果用户启用了参数innodb_ ...
- Innodb表空间
Innodb有两种管理表空间的方法 独立表空间:每一张表都会生成独立的文件来进行存储,每一张表都有一个.frm表描述文件,和一个.ibd文件.其中ibd文件包括了单独一个表的数据内容和索引内容. 共享 ...
- 019:InnoDB 表空间内部组织结构
一. 表空间内部组织结构 表空间 内部有多个段对象(Segment) 组成 每个段(Segment)由区(Extent) 组成 每个区(Extent)由页(Page)组成 每个页里面报存数据 (或者叫 ...
随机推荐
- operator bool()是什么
operator bool()是什么 在C++中,operator TypeName()语法用来将对象转换为指定的TypeName类型,当这里TypeName为bool时,就可以直接在条件判断式里面直 ...
- ▶ 0001 No application 'E:\www\go\blog' found in your GOPATH
go mod 配置 beego 首先cmd bee new blog go mod init 然后复制到任意目录 bee run 就会报错, 要退出该目录,进入上级目录 bee run blog 才行
- centos8平台使用blkid查看分区信息
一,blkid的用途 blkid 命令是一个命令行工具,它可以显示关于可用块设备的信息 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/archite ...
- javascript 数字 字母 互转
var alphabet= String.fromCharCode(64 + parseInt(填写数字); 单个字符转数字: 'a'.charCodeAt(0) 结果: 97 数字转字母: Stri ...
- Linux运维学习第五周记
休惊岁岁年年貌 且对朝朝暮暮人 细雨晴时一百六 画船鼍鼓莫违民 雨生百谷,春雨贵如油 第五周学记 这周主要学习了九三级磁盘.存储相关知识和Linux文件系统以及计算机网络的内容 磁盘和文件系统 磁盘结 ...
- matplotlib作图 归零编码、曼切斯特编码、非归零编码、差分曼切斯特编码
效果图 代码 import matplotlib.pyplot as plt config = { 'color': 'black', 'lw': 5, } def init(): plt.figur ...
- PS编辑工具
3.1PS污点修复 (1)快捷键:J. (2)中括号可以改变笔触的大小,前中括号减小笔触,后中括号增加笔触. (3)可以用选区把需要修复的地方框选上,再进行修复,这样不会影响到未选区域. 3.2PS修 ...
- 学会Git玩转GitHub(第二篇) 入门详解 - 精简归纳
学会Git玩转GitHub(第二篇) 入门详解 - 精简归纳 JERRY_Z. ~ 2020 / 10 / 25 转载请注明出处!️ 目录 学会Git玩转GitHub(第二篇) 入门详解 - 精简归纳 ...
- Hive源码解析
date: 2020-07-08 15:12:00 updated: 2020-08-21 17:38:00 Hive源码解析 入口:hive-cli-1.1.0-cdh5.14.4.jar!/org ...
- Mybatis初学经验----------------(2)
至于myBatis的配置,上篇文章中有,就不说了.今天谈谈myBatis编写Dao层时的用法. 传统Dao层代码需求 1.在Dao层实现类中,存在大量的模板方法,能否提取模板方法,减少我们的工作量. ...