mysql迁移:ibd表空间迁移库表

mysql迁移:ibd表空间迁移库表,第1张

概述问题描述:将一个库中的表迁移到另一个数据库或实例下,利用ibd文件物理迁移,可适用情况为数据库起不来,强制迁移数据文件恢复 将数据库中的zabbix数据迁移到另一个库中 frm:存储表的列信息 ibd

问题描述:将一个库中的表迁移到另一个数据库或实例下,利用ibd文件物理迁移,可适用情况为数据库起不来,强制迁移数据文件恢复

 

将数据库中的zabbix数据迁移到另一个库中

frm:存储表的列信息

ibd:表的数据行和索引

myd 表数据文件

myi 表索引文件

1.备份出来表结构,如果有历史库的情况可备份

MysqLdump -uroot -p -S /data/3307/MysqL.sock -B  zabbix --no-data > /data/zabbix_20210128.sql

2.传到测试库上进行恢复

MysqL> source /data/zabbix_20210128.sqlERROR 1813 (HY000): tablespace '`zabbix`.`Student`' exists.ERROR `zabbix`.`Teacher``zabbix`.`course`' exists.
...

错误原因:

应该在把表结构回复完成后,再把源库的,ibd文件传过来,要不然直接恢复有冲突

3.表结构恢复完成

MysqL> show tables;+------------------+| tables_in_zabbix |+------------------+| Student          || Teacher          || city             || course           || department       || stu              || zabbix_table     |+------------------+7 rows in set (0.00 sec)

4.删除恢复库的表空间

MysqL> alter table Student discard tablespace;table discard tablespace;query OK,0 rows affected (0.00 sec)MysqL> alter table Teacher discard tablespace;query OK,1)">0.01 alter table city discard tablespace;ERROR 1031 (HY000): table storage engine for city' doesnt have this optionMysqL> alter table course discard tablespace;query OK,1)"> alter table department discard tablespace;ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails ()MysqL> alter table stu discard tablespace;query OK,1)"> alter table zabbix_table discard tablespace;query OK,1)">0.00 sec)

外键冲突

set foreign_key_checks=0 跳过外键检查。

5.重新删除表空间

 

MysqL>0 rows affected,1 warning ( alter table department discard tablespace;query OK,1)">0.01 sec)

 

有一个存储引擎为MyIsam的表不支持这样恢复

6.导入表空间

 

MysqL> alter table Student import tablespace;mport tablespace;query OK,1)"> alter table Teacher import tablespace;query OK,1)"> alter table city import tablespace;ERROR  alter table course import tablespace;query OK,1)">0.02 alter table department import tablespace;query OK,1)"> alter table stu import tablespace;query OK,1)"> alter table zabbix_table import tablespace;query OK,1)">0.01 sec)

 

7.验证导入数据情况

默认存储引擎是Innodb的数据都没有问题,但是之前更改成MyIsam的导入不成功

8.恢复MyIsam存储引擎的表

 

MyIsam的存储方式:

 

 

 

Innodb的存储方式:

 

 

将源库的city表文件传输到恢复库指定位置

 

[MysqL@MysqL-test /data/3307/data/zabbix ]$ cp city.frm city.MYD city.MYI /data/3308/data/zabbix/

 

9.查询验证数据库数据

 

 

 

 

 

 

 

MyIsam存储引擎的表可以直接物理迁移

 

 

 

 

 

 

 

总结

以上是内存溢出为你收集整理的mysql迁移:ibd表空间迁移库表全部内容,希望文章能够帮你解决mysql迁移:ibd表空间迁移库表所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1151480.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存