您的位置 首页 数据库

独立表空间数据迁移实战

数据表的独立表空间数据迁移实战

独立表空间 相关概念:连接

案例01:利用独立表空间进行快速数据迁移(源端 3306/test/t100w --> 目标端 3307/test/t100w)

说明:可以在需要某个表中的数据信息时,可以将数据表的独立表空间数据信息做迁移,在另一个数据库中进行恢复即可

操作步骤一:锁定源端t100w表

mysql > lock tables baimei.t100w write;
-- 给t100w表加写数据锁
mysql > show create table baimei.t100w;
CREATE TABLE `t100w` (
  `id` int DEFAULT NULL,
  `num` int DEFAULT NULL,
  `k1` char(2) DEFAULT NULL,
  `k2` char(4) DEFAULT NULL,
  `dt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  KEY `idx` (`k1`,`k2`,`num`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |
-- 获取创建表结构数据信息

 

操作步骤二:目标端创建baimei库和t100w空表

mysql> create database baimei;
-- 创建新的数据库
mysql > CREATE TABLE `t100w` (
  `id` int DEFAULT NULL,
  `num` int DEFAULT NULL,
  `k1` char(2) DEFAULT NULL,
  `k2` char(4) DEFAULT NULL,
  `dt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  KEY `idx` (`k1`,`k2`,`num`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
-- 创建新的数据表

操作步骤三:单独删除空的表空间文件

mysql> alter table baimei.t100w discard tablespace;     
-- 删除t100w表的ibd数据文件信息,但是保留t100w的frm,ibdata1中关于t100w的系统数据

操作步骤四:拷贝源端ibd文件到目标端目录,并设置权限


[root@xiaoQ-01 ~]# cp /data/3306/data/baimei/t100w.ibd /data/3307/data/baimei/
[root@xiaoQ-01 ~]# chown -R mysql.mysql /data/*

操作步骤五:导入表空间

mysql> alter table baimei.t100w import tablespace;
-- 在目标端加载识别迁移过来的数据文件信息
mysql> select count(*) from t100w;
+----------+
| count(*) |
+----------+
|  1000000 |
+----------+
1 row in set (0.04 sec)
-- 查看数据表中是否有迁移古来的数据信息

操作步骤六:解锁源端数据表

mysql> unlock tables;

Innodb 升级为 TokuDB 存储引擎企业案例 : 连接 

MyISAM 升级为 Innodb引擎企业案例 : 连接 

独立表空间数据迁移实战 :连接 

利用表空间迁移功能实现数据损坏恢复 实战 : 连接 

mysql 5.7中误删除了ibdata1数据文件,导致数据库服务无法启动  :   连接

欢迎来撩 : 汇总all

白眉大叔

关于白眉大叔linux云计算: 白眉大叔

热门文章