關於mydumper的.metadata檔案丟失,mydumper.metadata

來源:互聯網
上載者:User

關於mydumper的.metadata檔案丟失,mydumper.metadata

今天要進行MySQL的資料移轉,所以把資料庫通過mydumper工具備份的檔案解壓後,通過myloader進行匯入


但是匯入的時間出現這個報錯:

** (myloader:766): CRITICAL **: the specified directory is not a mydumper backup


非常奇怪,明明以往導資料都是通過myloader命令可以匯入成功的,現在竟然是報錯說這個目錄不是mydumper的備份檔案查看myloader的原始碼,如下
                char *p= g_strdup_printf("%s/metadata", directory);                if (!g_file_test(p, G_FILE_TEST_EXISTS)) {                        g_critical("the specified directory is not a mydumper backup\n");                        exit(EXIT_FAILURE);                }

判斷目錄下如果 metadata 檔案不存在,則異常退出,而我發現備份目錄下卻有一個 .metedata 檔案,注意是有.首碼的,在linux系統下表示是隱藏檔案
於是對比了一下mydumper的版本:
myloader -Vmyloader 0.6.2, built against MySQL 5.5.21

而原備份檔案的機器是 myloader 0.2.3,表示兩個版本不相同,所以我第一反應是把舊機器的 /usr/local/bin/目錄下的 mydumper\myloader 檔案直接cp到新機器
再用myloader的話,可以匯入成功,問題解決。

後面想了一下,再查看舊版本的 myloader 源碼,發現判斷檔案是否存在是 .metadata ,即舊版本匯出的隱藏檔案,在新版本中已經不需要隱藏的,可能是作者覺得沒必要隱藏該檔案,而且隱藏檔案會有一個隱患是容易 cp 不完整,cp預設不拷貝隱藏檔案,必須通過 cp -a 才能完整拷貝。

所以,如果用myloader新版程式匯入舊版本的備份,可以把備份目錄下的 .metadata檔案改名為 metadata,也可以匯入成功
mv .metadata metadata





相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.