问题描述:将一个库中的表迁移到另一个数据库或实例下,利用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表空间迁移库表所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)