iT邦幫忙

2021 iThome 鐵人賽

DAY 18
0
Software Development

TiDB學習筆記系列 第 18

D18 - TiDB備份還原

TiDB針對備份還原有一套另外的工具BR,就是Backup&Restore。
BR包括在pingcap提供的toolkit裡頭,可以在之前安裝toolkit的路徑底下找到br。

backup可以使用full全部備份,也可以針對某個db,或者單一張table。

首先先做一個備份的測試,我指定只備份test.tidb_test這張表,-s表示儲存路徑,因為只是測試所以我先不設定。

./br backup table --db test -t tidb_test --pd "10.102.1.92:2379" -s "noop://"

執行成功畫面
https://ithelp.ithome.com.tw/upload/images/20210913/20113220lxnrw7TMcX.png

BR支援把備份的檔案儲存在本機local與雲端如S3,GS上。這裡的本機local指的是每一台TiKV,所以每次備份,檔案會分散在各個TiKV指定儲存的路徑下。當要做restore時,必須要讓每一台TiKV都能讀到每一份備份檔案,會做到一個頭兩個大,所以官方建議備份檔最好放置在本地或者雲端的共用儲存空間,在此用GS為例。
一樣備份test.tidb_test,這次指定備份到gcp cloud storage上的tidb_br(為了備份新增的)

./br backup table --db test -t tidb_test --pd "10.102.1.92:2379" -s "gs://tidb_br" --gcs.credentials-file="/root/credentials.json"

產生了三類檔案:
前三個檔案是SST檔案,也是備份的資料。再來有一個backupmeta檔案,存储一些這次備份的基本資料,包括備份的檔案數量,檔案大小等等。最後還會產生一個backup.lock檔案,避免多次備份到同一個目錄。
https://ithelp.ithome.com.tw/upload/images/20210913/20113220VPBzA89dfN.png

接下來試著還原資料,首先我先把tidb_test的資料truncate。然後開始restore。

./br restore table --db test -t tidb_test --pd "10.102.1.92:2379" -s "gs://tidb_br" --gcs.credentials-file="/root/credentials.json"

可以看到執行後,資料已經恢復。
https://ithelp.ithome.com.tw/upload/images/20210913/20113220HZPR9bgatp.png


上一篇
D17 - 從TiDB將資料同步出去
下一篇
D19 - TiDB Binlog
系列文
TiDB學習筆記30

尚未有邦友留言

立即登入留言