innodb数据表空间文件平滑迁移--

innodb数据表空间文件平滑迁移--

ID:24208298

大小:54.00 KB

页数:4页

时间:2018-11-13

innodb数据表空间文件平滑迁移--_第1页
innodb数据表空间文件平滑迁移--_第2页
innodb数据表空间文件平滑迁移--_第3页
innodb数据表空间文件平滑迁移--_第4页
资源描述:

《innodb数据表空间文件平滑迁移--》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、InnoDB数据表空间文件平滑迁移>>  如何迁移?  从MySQL文档中我们了解到,InnoDB的表空间可以是共享的或独立的。如果是共享表空间,则所有的表空间都放在一个文件里:ibdata1,ibdata2..ibdataN,这种情况下,目前应该还没办法实现表空间的迁移,除非完全迁移,因此不在本次讨论之列;我们只讨论独立表空间的情况。  不管是共享还是独立表空间,InnoDB每个数据表的元数据(metadata)总是保存在ibdata1这个共享表空间里,因此该文件必不可少,它还可以用来保存各种数据字典等信息

2、。数据字典中,会保存每个数据表的ID号,每次发生数据表空间新增时,都会使得该ID自增一个值(++1),例如:CREATETABLExxENGINE=InnoDB/ALTERTABLExxENGINE=InnoDB都会使得ID值增加。  有了上面的理解,想要实现InnoDB表空间文件的平滑迁移就很容易了,呵呵。下面是一些例子:  假定我们有2台DB主机,一个是A,一个B,现在想把A上的某个InnoDB表空间文件迁移到B上直接用。  一、迁移失败的例子  直接从A上把表空间文件yejr.ibd拷贝到B上后,导入表

3、空间,报错,无法使用。这是由于A,B上创建该表时的顺序不一致,导致表的ID不一样,无法导入。  注意:在这里,表空间文件直接拷贝的前提是该表空间处于干净状态下,也就是所有的数据均已经刷新到磁盘中,否则可能导致无法使用或部分数据丢失。  1.在B上将旧的表空间废弃(rootimysql./17:52:47)[yejr]>ALTERTABLEyejrDISCARDTABLESPACE;QueryOK,0roe/mysql/yejr/yejr.ibd....  3.启用该表空间(rootimysql./17:

4、52:47)[yejr]>ALTERTABLEyejrIMPORTTABLESPACE;ERROR1030(HY000):Goterror-1fromstorageengine  4.查看错误InnoDB:Operatingsystemerrornumber13inafileoperation.InnoDB:TheerrormeansmysqlddoesnothavetheaccessrightstoInnoDB:thedirectory.InnoDB:Error:tryingtoopenatable,

5、butcouldnotInnoDB:openthetablespacefile'./test/b.ibd'!InnoDB:Error:cannotresetlsn'sintable`test/b`InnoDB:inALTERTABLE...IMPORTTABLESPACE  5.很明显,是权限的问题,修正过来,然后重新导入(rootimysql./17:52:47)[yejr]>ALTERTABLEyejrDISCARDTABLESPACE;ERROR1030(HY000):Go

6、terror-1fromstorageengine  6.怎么还是错误?继续看日志InnoDB:Error:tablespaceidinfile'./yejr/yejr.ibd'is15,butintheInnoDBInnoDB:datadictionaryitis13.InnoDB:HaveyoumovedInnoDB.ibdfilesaroundandsDISCARDTABLESPACEandIMPORTTABLESPACE?InnoDB:PleaserefertoInnoDB:/refm

7、an/5.0/en/innodb-troubleshooting.htmlInnoDB:forhoysql./17:52:47)[yejr]>ALTERTABLEyejrRENAMETOyejr1;QueryOK,0roysql./17:52:47)[yejr]>ALTERTABLEyejr1RENAMETOyejr;QueryOK,0roysql./17:52:47)[yejr]>ALTERTABLEyejrIMPORTTABLESPACE;QueryOK,0rowsaffected(0.

8、0012下一页>>>>这篇文章来自..,。sec)(rootimysql./17:52:47)[yejr]>selectcount(*)fromyejr;+----------+

9、count(*)

10、+----------+

11、    3

12、+----------+1roySQL5.0.67版本下通过,只不过显示数据稍作处理了。上一页12>>>>这篇文章来自..,。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。