<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        mysqlInnodb表空間卸載、遷移、裝載的使用方法_MySQL

        來源:懂視網 責編:小采 時間:2020-11-09 18:52:49
        文檔

        mysqlInnodb表空間卸載、遷移、裝載的使用方法_MySQL

        mysqlInnodb表空間卸載、遷移、裝載的使用方法_MySQL:mysql卸載 bitsCN.com 條件:2臺服務器:A和B,需要A服務器上的表遷移到B服務器。Innodb表:sysUser,記錄數:351781。以下測試在MySQL 5.5.34中進行。開始處理:1:在B服務器上建立sysUser表,并且執行:zjy@B : db_test 09:50:30
        推薦度:
        導讀mysqlInnodb表空間卸載、遷移、裝載的使用方法_MySQL:mysql卸載 bitsCN.com 條件:2臺服務器:A和B,需要A服務器上的表遷移到B服務器。Innodb表:sysUser,記錄數:351781。以下測試在MySQL 5.5.34中進行。開始處理:1:在B服務器上建立sysUser表,并且執行:zjy@B : db_test 09:50:30

        mysql卸載

        bitsCN.com

        條件:
        2臺服務器:A和B,需要A服務器上的表遷移到B服務器。
        Innodb表:sysUser,記錄數:351781。
        以下測試在MySQL 5.5.34中進行。
        開始處理:
        1:在B服務器上建立sysUser表,并且執行:


        zjy@B : db_test 09:50:30>alter table sysUser discard tablespace;

        2:把A服務器表的表空間(ibd)復制到B服務器的相應數據目錄。
        3:修改復制過來的ibd文件權限:


        chown mysql:mysql sysUser.ibd

        4:最后就開始加載:


        zjy@B : db_test 10:00:03>alter table sysUser import tablespace;
        ERROR 1030 (HY000): Got error -1 from storage engine

        報錯了,查看錯誤日志:


        10:05:44 InnoDB: Error: tablespace id and flags in file './db_test/sysUser.ibd' are 2428 and 0, but in the InnoDB
        InnoDB: data dictionary they are 2430 and 0.
        InnoDB: Have you moved InnoDB .ibd files around without using the
        InnoDB: commands DISCARD TABLESPACE and IMPORT TABLESPACE?
        InnoDB: Please refer to
        InnoDB: http://dev.mysql.com/doc/refman/5.5/en/innodb-troubleshooting-datadict.html
        InnoDB: for how to resolve the issue.
        10:05:44 InnoDB: cannot find or open in the database directory the .ibd file of
        InnoDB: table `db_test`.`sysUser`
        InnoDB: in ALTER TABLE ... IMPORT TABLESPACE

        當遇到這個的情況:A服務器上的表空間ID 為2428,而B服務器上的表空間ID為2430。所以導致這個錯誤發生,解決辦法是:讓他們的表空間ID一致,即:B找出表空間ID為2428的表(CREATE TABLE innodb_monitor (a INT) ENGINE=INNODB;),修改成和sysUser表結構一樣的的表,再import。要不就把A服務器的表空間ID增加到大于等于B的表空間ID。(需要新建刪除表來增加ID)

        要是A的表空間ID大于B的表空間ID,則會有:


        11:01:45 InnoDB: Error: tablespace id and flags in file './db_test/sysUser.ibd' are 44132 and 0, but in the InnoDB
        InnoDB: data dictionary they are 2436 and 0.
        InnoDB: Have you moved InnoDB .ibd files around without using the
        InnoDB: commands DISCARD TABLESPACE and IMPORT TABLESPACE?
        InnoDB: Please refer to
        InnoDB: http://dev.mysql.com/doc/refman/5.5/en/innodb-troubleshooting-datadict.html
        InnoDB: for how to resolve the issue.
        11:01:45 InnoDB: cannot find or open in the database directory the .ibd file of
        InnoDB: table `db_test`.`sysUser`
        InnoDB: in ALTER TABLE ... IMPORT TABLESPACE

        這時的情況:A服務器上的表空間ID 為44132,而B服務器上的表空間ID為2436。(因為A是測試機子,經常做還原操作,所以表空間ID已經很大了,正常情況下。表空間ID不可能這么大。

        既然表空間ID不對導致這個錯誤報出,那我們手動的讓B的表空間ID追上A的表空間ID。

        需要建立的表數量:44132-2436 = 41696個,才能追上。因為他本身就需要再建立一個目標表,所以需要建立的表數量為:41695。不過安全起見,最好也不要超過41695,以防B的表空間ID超過了A,則比如設置安全的值:41690,即使B沒有到達A表空間ID的值,也應該差不多了,可以再手動的去增加。用一個腳本跑(需要建立的表比較多),少的話完全可以自己手動去處理:


        #!/bin/env python
        # -*- encoding: utf-8 -*-

        import MySQLdb
        import datetime

        def create_table(conn):
        query = '''
        create table tmp_1 (id int) engine =innodb
        '''
        cursor = conn.cursor()
        cursor.execute(query)
        conn.commit()
        def drop_table(conn):
        query = '''
        drop table tmp_1
        '''
        cursor = conn.cursor()
        cursor.execute(query)
        conn.commit()

        if __name__ == '__main__':
        conn = MySQLdb.connect(host='B',user='zjy',passwd='123',db='db_test',port=3306,charset='utf8')
        for i in range(41690):
        print i
        create_table(conn)
        drop_table(conn)

        也可以開啟多線程去處理,加快效率。
        當執行完之后,再重新按照上面的1-3步驟進行一次,最后再裝載:


        zjy@B : db_test 01:39:23>alter table sysUser import tablespace;
        Query OK, 0 rows affected (0.00 sec)

        要是再提示A表空間ID大于B表的話,就再手動的按照腳本里面的方法來增加ID,這時候就只需要增加個位數就可以追上A的表空間ID了。
        總結:
        上面只是一個方法,雖然可以遷移Innodb,但是出問題之后可能會引其Innodb的頁損壞,所以最安全的還是直接用mysqldump、xtrabackup等進行遷移。
        5.6 可以不用考慮這些tablespace id,可以直接import 進來。


        2013-11-12 15:25:09 2378 [Note] InnoDB: Sync to disk
        2013-11-12 15:25:09 2378 [Note] InnoDB: Sync to disk - done!
        2013-11-12 15:25:09 2378 [Note] InnoDB: Phase I - Update all pages
        2013-11-12 15:25:09 2378 [Note] InnoDB: Sync to disk
        2013-11-12 15:25:09 2378 [Note] InnoDB: Sync to disk - done!
        2013-11-12 15:25:09 2378 [Note] InnoDB: Phase III - Flush changes to disk
        2013-11-12 15:25:09 2378 [Note] InnoDB: Phase IV - Flush complete

        bitsCN.com

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        mysqlInnodb表空間卸載、遷移、裝載的使用方法_MySQL

        mysqlInnodb表空間卸載、遷移、裝載的使用方法_MySQL:mysql卸載 bitsCN.com 條件:2臺服務器:A和B,需要A服務器上的表遷移到B服務器。Innodb表:sysUser,記錄數:351781。以下測試在MySQL 5.5.34中進行。開始處理:1:在B服務器上建立sysUser表,并且執行:zjy@B : db_test 09:50:30
        推薦度:
        標簽: 空間 遷移 服務器
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲人成电影网站免费| 337p欧洲亚洲大胆艺术| 免费无遮挡无遮羞在线看| 好先生在线观看免费播放| 中国亚洲呦女专区| 色视频色露露永久免费观看| 亚洲欧美国产国产一区二区三区| 免费毛片网站在线观看| 国产精品亚洲一区二区无码| 免费一级毛片免费播放| 一级毛片**免费看试看20分钟| 国产亚洲精品福利在线无卡一 | 免费无码又爽又刺激毛片| 亚洲中文字幕无码中文| 在线看片无码永久免费aⅴ| 国产精品亚洲专区在线播放| 精品国产亚洲男女在线线电影 | 久久久久免费看成人影片| 亚洲精品中文字幕乱码影院| 久草免费在线观看视频| 亚洲国产成人综合精品| 亚洲爽爽一区二区三区| 亚洲免费视频网站| 国产婷婷综合丁香亚洲欧洲| 国产v片免费播放| 免费人成激情视频在线观看冫| 久久久久亚洲av无码专区喷水| 成年人性生活免费视频| 国产精品玖玖美女张开腿让男人桶爽免费看| 亚洲色成人WWW永久网站| 久草免费在线观看视频| 猫咪www免费人成网站| 亚洲av无码不卡| 在线观看免费人成视频| 一级成人生活片免费看| 亚洲国产精品免费在线观看| 免费在线观看日韩| 91久久成人免费| 欧亚一级毛片免费看| 亚洲精品成人网站在线播放| 免费日本黄色网址|