千家信息网

mysql表空间传输过程

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇内容介绍了"mysql表空间传输过程"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在MySQL
千家信息网最后更新 2026年11月01日mysql表空间传输过程

本篇内容介绍了"mysql表空间传输过程"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

在MySQL 5.6 版本中引入了一个可移动表空间的新特性(复制的表空间到另一个服务器),即mysql表空间传输。这使得我们传输表或者单个库的数据变得十分方便。


但是,传输表空间必须满足以下的条件

1.必须使用独立表空间

2.两个mysql数据库的page大小必须一样

3.两个表的表结构必须一样

下面我们对lala库下面的score表进行传输

首先,先从主库导出score

我们可以在导出之前对错误日志-f命令进行输出,跟踪它做了什么

[root@potato data]# tail -f error.log

root@localhost:mysql.sock 01:31:46 [lala]>flush tables score for export;

root@localhost:mysql.sock 02:08:21 [lala]>select * from score; +------+----------+-------+

| id | name | score |

+------+----------+-------+

| 3 | xiaohong | 99 |

| 2 | xiaoming | 65 |

| 1 | xiaojun | 55 |

+------+----------+-------+

3 rows in set (0.00 sec)

以下是错误日志的输出

2016-12-19 01:32:44 25547 [Note] InnoDB: Sync to disk of '"lala"."score"' started.

2016-12-19 01:32:44 25547 [Note] InnoDB: Stopping purge

2016-12-19 01:32:44 25547 [Note] InnoDB: Writing table metadata to './lala/score.cfg'

2016-12-19 01:32:44 25547 [Note] InnoDB: Table '"lala"."score"' flushed to disk

可见,它首先对表停止操作,再把score的数据和元数据写到磁盘。

此时可以访问这张表,但是不能对数据进行DML操作,如

发起查询语句,成功

root@localhost:mysql.sock 01:33:11 [(none)]>select * from lala.score; +------+----------+-------+

| id | name | score |

+------+----------+-------+

| 3 | xiaohong | 99 |

| 2 | xiaoming | 65 |

| 1 | xiaojun | 55 |

+------+----------+-------+

3 rows in set (0.00 sec)

发起插入语句,一直在等待

root@localhost:mysql.sock 01:31:23 [(none)]>insert into lala.score values(4,'xiaolin',74);

在库文件夹下面多了cfg文件

[root@potato lala]# ls -l score*

-rw-r-----. 1 mysql mysql 470 Dec 19 02:07 score.cfg

-rw-rw----. 1 mysql mysql 8618 Dec 19 02:03 score.frm

-rw-r-----. 1 mysql mysql 98304 Dec 19 02:07 score.ibd

我们把cfg和ibd文件先复制到/tmp目录下

[root@potato lala]#cp score.cfg /tmp

[root@potato lala]#cp score.ibd /tmp

然后解锁表,让外部可以尽快访问表

root@localhost:mysql.sock 01:35:02 [lala]>unlock tables;

Query OK, 0 rows affected (0.00 sec)

备库此时没有该表

root@localhost:mysql.sock 01:35:28 [lala]>show tables;

+----------------+

| Tables_in_lala |

+----------------+

| haha |

| test |

| test1 |

+----------------+

3 rows in set (0.00 sec)

查看主库的score建表语句

root@localhost:mysql.sock 01:37:19 [lala]>show create table score\G

*************************** 1. row ***************************

Table: score

Create Table: CREATE TABLE `score` (

`id` int(11) DEFAULT NULL,

`name` varchar(15) DEFAULT NULL,

`score` int(11) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8

1 row in set (0.00 sec)

在从库上执行

root@localhost:mysql.sock 02:03:44 [lala]> CREATE TABLE `score` (

-> `id` int(11) DEFAULT NULL,

-> `name` varchar(15) DEFAULT NULL,

-> `score` int(11) DEFAULT NULL

-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Query OK, 0 rows affected (0.02 sec)

现在score表是没有数据的

root@localhost:mysql.sock 02:04:11 [lala]>select * from score;

Empty set (0.00 sec)

卸载score表空间

root@localhost:mysql.sock 02:05:12 [lala]>alter table score discard tablespace;

Query OK, 0 rows affected (0.02 sec)

[root@potato lala]# ls -l score*

-rw-rw----. 1 mysql mysql 8618 Dec 19 02:03 score.frm

在主库上把两个文件传到备库上

[root@potato lala]# scp /tmp/score* 192.168.161.55:/data/mysql/mytest_3306/data/lala

root@192.168.161.55's password:

score.cfg 100% 470 0.5KB/s 00:00

score.ibd 100% 96KB 96.0KB/s 00:00

修改传输过去的文件属主

[root@potato lala]# ls -l score*

-rw-r-----. 1 root root 8618 Dec 19 01:37 score.cfg

-rw-rw----. 1 mysql mysql 8618 Dec 19 02:03 score.frm

-rw-r-----. 1 root root 98304 Dec 19 01:37 score.ibd

[root@potato lala]# chown mysql:mysql score*

[root@potato lala]# ls -l score*

-rw-r-----. 1 mysql mysql 470 Dec 19 02:07 score.cfg

-rw-rw----. 1 mysql mysql 8618 Dec 19 02:03 score.frm

-rw-r-----. 1 mysql mysql 98304 Dec 19 02:07 score.ibd

导入score表空间

root@localhost:mysql.sock 02:05:29 [lala]>alter table score import tablespace; Query OK, 0 rows affected (0.36 sec)

root@localhost:mysql.sock 02:08:21 [lala]>select * from score; +------+----------+-------+

| id | name | score |

+------+----------+-------+

| 3 | xiaohong | 99 |

| 2 | xiaoming | 65 |

| 1 | xiaojun | 55 |

+------+----------+-------+

3 rows in set (0.00 sec)
至此,表空间传输成功

"mysql表空间传输过程"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

空间 传输 数据 文件 过程 两个 语句 输出 成功 内容 日志 更多 知识 实用 学有所成 接下来 单个 命令 困境 大小 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技垄断 盈实互联网科技 关于新基建和互联网科技 科技制造互联网公司 安徽鑫晟辉互联网科技 朗涯互联网科技 猫创互联网科技 深圳艾佳互联网科技 互联网科技类展会 世界互联网科技公司市值排名 新兴科技互联网创新大赛颁奖典礼 互联网科技大奖都有哪些公司 深圳育鹏互联网科技有限公司招聘 深圳艾果互联网通讯科技 保险科技服务互联网营销体系 互联网金融科技元年 山东大美朱楼互联网科技有限公司 九思连强互联网电子科技有限公司 互联网科技手机排行榜 前海云享互联网科技 中国互联网科技工作委员会毛军 融贸通互联网科技 互联网 科技馆 创业天下互联网科技有限公司 汽车互联网创新科技园 中国科技创新与世界互联网大会 广州新华互联网科技学校电竞方面 广州千川互联网科技有限公司 半导体行业属于互联网高科技类吗 兰石爱特工业互联网科技分公司
0