表遷移工具的選型-xtrabackup的使用

  • A+
所屬分類:MySQL python

1.1.?場景

有的時候test人員可能需要在測試庫上比較新的數據,這時候只能是從生產庫上面去那了。如果是小表還好實用mysqldump/mysqlpump就可以輕松的解決。但是,如果遇到了大表這將是一個很痛苦的過程。這時候最好的選擇就是使用Percona公司的MySQL熱備工具xtrabackup了。

1.2.?為什么不使用ibd文件拷貝方法

很簡單,因為要鎖表對生產環境影響比較大。

1.3.?擴展

當然如果他們數據的要求并不是那么高可以使用每天用xtrabackup備份的來做。但是,這往往會比現場直接備份生產庫的某張表來的麻煩,因為往往我們使用的是增量備份,還要應用之前的所有日志。而且為了防止破壞備份數據,還需要拷貝一份。

 

1.4.?先決條件

前提必須開啟innodb_file_per_table選項,并且使用InnoDB存儲引擎。

由于我使用的是 Percona Server 5.7.10-3 所以需要使用的xtrabackup版本為2.4.1

1.5.?制造大表

下面我們制造表數據,下面模擬的數據比較小,主要是為了節省時間。

查看數據大小情況(磁盤上的數據大小)

查看真實的大小情況

從上面可以看出在磁盤上的數據大小是1.2G,而實際的大小才1048MB(估計值),實際情況會比上面的數據大很多。

1.6.?表遷移演示

????1、使用xtrabackup備份test.t1表數據

2、查看備份集

3、應用日志并導出元數據

4、test2庫中創建和test.t1相同的表結構

5、廢棄test2.t1表空間,等待新表空間導入

6、將test.t1表*.ibd和*.cfg文件拷貝到test2庫中

7、test2導入t1數據

8、查看test2.t1數據

1.7.?總結

xtrabackup這種表遷移算是比較復雜的了,但是他對數據庫的影響是比較小的。雖然說影響小,但是還是會有影響的。所以遷移還是避免高峰時期比較妥當。

 

昵稱:HH
QQ:275258836
ttlsa群交流溝通(QQ群②:6690706 QQ群③:168085569 QQ群④:415230207(新) 微信公眾號:ttlsacom)

感覺本文內容不錯,讀后有收獲?

逛逛衣服店,鼓勵作者寫出更好文章。

weinxin
微信公眾號
掃一掃關注運維生存時間公眾號,獲取最新技術文章~

發表評論

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: