千家信息网

mysql中表空间传输的示例分析

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要介绍了mysql中表空间传输的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。说明:MySQL(5.6.6及以上),
千家信息网最后更新 2026年10月31日mysql中表空间传输的示例分析

这篇文章主要介绍了mysql中表空间传输的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

说明:MySQL(5.6.6及以上),innodb_file_per_table开启。

1.1. 操作步骤:

0. 目标服务器创建相同表结构
1. 目的服务器: ALTER TABLE t DISCARD TABLESPACE;
2. 源服务器 : FLUSH TABLES t FOR EXPORT;
3. 从源服务器上 拷贝t.ibd, t.cfg文件到目的服务器
4. 源服务器: UNLOCK TABLES;
5. 目的服务器: ALTER TABLE t IMPORT TABLESPACE;

1.2. 演示
将多实例的 [mysql5711] 中 burn_test 库下的test_purge表 ,传输到 [mysql57112]中 burn_test2 库下的test_purge表

1.2.1. 准备工作

1. 在 目标服务器 上创建表空间

-- 源服务器 [mysql5711]

mysql> select * from burn_test.test_purge;
+----+------+
| a | b |
+----+------+
| 1 | 10 |
| 3 | 30 |
| 4 | 40 |
| 5 | 50 |
| 6 | 60 |
| 7 | 70 |
| 8 | 80 |
| 10 | 100 |
+----+------+
8 rows in set (0.01 sec)

-- 目标服务器 [mysql57112]
--
-- test_purge在 目标服务器 上不存在,先创建该表
mysql> CREATE TABLE `test_purge` (
`a` int(11) NOT NULL AUTO_INCREMENT,
`b` int(11) DEFAULT NULL,
PRIMARY KEY (`a`),
UNIQUE KEY `b` (`b`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4;
Query OK, 0 rows affected (0.16 sec)

2. 创建完成后进行检查
#
# 目标服务器
#
[root@MyServer burn_test_2]> ll | grep test_purge
-rw-r-----. 1 mysql mysql 8578 Mar 21 10:31 test_purge.frm # 表结构
-rw-r-----. 1 mysql mysql 57344 Mar 21 10:31 test_purge.ibd # 表空间,需要通过 DISCARD 将表空间文件删除
ALTER TABLE test_purge DISCARD TABLESPACE; 的含义是 保留test_purge.frm 文件, 删除test_purge.ibd

3. 通辟 discard 删除ibd文件

-- 目标服务器

mysql> alter table test_purge discard tablespace;
Query OK, 0 rows affected (0.04 sec)
mysql> show tables;
+-----------------------+
| Tables_in_burn_test_2 |
+-----------------------+
| test_backup1 |
| test_purge |
+-----------------------+
2 rows in set (0.00 sec)
mysql> select * from test_purge;
ERROR 1814 (HY000): Tablespace has been discarded for table 'test_purge'
[root@MyServer burn_test_2]> ll | grep test_purge
-rw-r-----. 1 mysql mysql 8578 Mar 21 10:31 test_purge.frm

1.2.2. 导出表空间
1. 在源服务器上,通辟 export 命令导出表空间(同时加读锁)

-- 源服务器

mysql> flush table test_purge for export; -- 其实是对这个表加一个读锁
Query OK, 0 rows affected (0.00 sec)
2. 将导出的 cfg文件 和 ibd文件 , 拷贝到目标服务器 的数据库下
#
# 源服务器
#
[root@MyServer burn_test]> ll | grep test_purge
-rw-r-----. 1 mysql mysql 462 Mar 21 10:58 test_purge.cfg # export后,多出来的文件,里面保存了一些元数据信息
-rw-r-----. 1 mysql mysql 8578 Mar 4 15:41 test_purge.frm
-rw-r-----. 1 mysql mysql 57344 Mar 5 15:28 test_purge.ibd
[root@MyServer burn_test]> cp test_purge.cfg test_purge.ibd /data/mysql_data/5.7.11_2/burn_test_2/ # 拷贝表空间和cfg文件,远程请使用scp(本地多实例演示,这里的库名是不同的)
3. 导出表空间后,尽快解锁

-- 源服务器

mysql> unlock tables; -- 尽快的解锁
Query OK, 0 rows affected (0.00 sec)
注意:一定要先拷贝cfg和ibd文件,然后才能unlock,因为 unlock 的时候, cfg文件会被删除
# 源服务器上的日志
[Note] InnoDB: Stopping purge # 其实stop purge,找个测试的表 for export 即可
[Note] InnoDB: Writing table metadata to './burn_test/test_purge.cfg'
[Note] InnoDB: Table `burn_test`.`test_purge` flushed to disk
[Note] InnoDB: Deleting the meta-data file './burn_test/test_purge.cfg' # unlock table后,该文件自动被删除
[Note] InnoDB: Resuming purge # unlock后,恢复purge线程
4. 在目标服务器上 修改 cfg文件和ibd文件的 权限
#
# 目标服务器
#
[root@MyServer burn_test_2]> chown mysql.mysql test_purge.cfg test_purge.ibd
5. 在目标服务器上通辟 import 命令导入表空间
-- 目标服务器
--
mysql> alter table test_purge import tablespace; -- 导入表空间
Query OK, 0 rows affected (0.24 sec)
mysql> select * from test_purge; -- 可以读取到从源服务器拷贝过来的数据
+----+------+
| a | b |
+----+------+
| 1 | 10 |
| 3 | 30 |
| 4 | 40 |
| 5 | 50 |
| 6 | 60 |
| 7 | 70 |
| 8 | 80 |
| 10 | 100 |
+----+------+
8 rows in set (0.00 sec)

# error.log中出现的信息
InnoDB: Importing tablespace for table 'burn_test/test_purge' that was exported from host 'MyServer'

注意:
表的名称必须相同 ,经过上述测试,库名可以不同
该方法也可以用于分区表的备份和恢复

感谢你能够认真阅读完这篇文章,希望小编分享的"mysql中表空间传输的示例分析"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

服务器 服务 文件 空间 目标 拷贝 篇文章 传输 数据 目的 中表 示例 分析 不同 相同 信息 同时 命令 实例 结构 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 保险科技 互联网保险 云之行互联网科技 智能科技公司是互联网公司吗 科技互联网技术 奇酷互联网科技公司 凡科互联网科技 互联网科技博客 中正互联网科技招聘 互联网科技实习生岗位职责 南山科技园互联网公司有哪些 贵州叶脉互联网科技有限公司所属行业 移动互联网年度科技创新 杭州壁岐互联网科技有限公司 996高科技互联网公司 南通创西澳互联网科技有限公司 互联网科技数字货币 新氧科技和美国互联网有关系吗 江苏互联网智能科技产品出厂价 互联网金融运营模式中的金融科技 福仕德教育科技互联网 广东万易互联网科技有限公司惠州分公司 国智互联网科技 互联网科技行业发展 智慧科技互联网 中国互联网金融科技基金 科技互联网的估值 汽车互联网创新科技园 长沙茂晟互联网科技有限公司 山东大美朱楼互联网科技有限公司 互联网 科技节活动 微视频大赛
0