使用MyDumper遷移InnoDB到TokuDB

最近幾臺微信買家相關數據庫數據量增長迅猛,空間緊張,因而考慮遷移到壓縮率超高的TokuDB,一個比較流行的遷移方法是用mysqldump導出同時修改InnoDB字符串到TokuDB:
mysqldump ...... | sed -e 's/^) ENGINE=MyISAM/) ENGINE=InnoDB/' > dump.sql

但這樣導出的單一文件恢復時太慢,雖然有各種第三方方法能使mysqldump導出多個文件,但復雜了些;而mydumper因為并行特性是一個更理想的遷移工具,但0.6之前因為鎖時間太長導致實際不可用,而0.6后大大降低了鎖時間,因而這次我嘗試使用MyDumper來遷移InnoDB到TokuDB,我的思路是:

因為MyDumper導出的文件是schema和data分開的,因而可以先導入schema,修改成TokuDB引擎后再將數據導入

以下是步驟:
1.導出文件
mydumper ...... -o /data/dump

2.將schema和data文件分離

mkdir /data/dump_schema  
mv /data/dump/*schema* /data/dump_schema  
mv /data/dump /data/dump_data  
cp /data/dump/metadata /data/dump_schema  

3.導入schema
myloader ...... -d /data/dump_schema

4.轉換InnoDB到TokuDB
pt-find ...... --engine InnoDB --exec "ALTER TABLE %D.%N ENGINE=TokuDB"

5.導入data
myloader ...... -d /data/dump_data

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容