TiDB備份/恢復(fù)

對集群進行快照備份

全庫備份
br backup full --pd "${PD_IP}:${PD_PORT}" --storage "local:///tmp/backup" [--ratelimit 120] [--log-file backupfull.log]
單庫備份
br backup db --pd "${PD_IP}:${PD_PORT}" --db test --storage "local:///tmp/backup" [--ratelimit 120] [--log-file backupdb.log]
單表備份
br backup table --pd "${PD_IP}:${PD_PORT}" --db test --table utable --storage "local:///tmp/backup" [--ratelimit 120] [--log-file backuptable.log]

測試

./br backup db --db dba_test --pd "10.0.8.87:2379" --storage "/backup"    --ratelimit 128
WXWorkLocalPro_17291570878146.png
  • --backupts:快照對應(yīng)的物理時間點,格式可以是 TSO 或者時間戳,例如 400036290571534337 或者 2018-05-11 01:42:23 +08:00呕臂。如果該快照的數(shù)據(jù)被垃圾回收 (GC) 了师郑,那么 tiup br backup 命令會報錯并退出添忘。使用日期方式備份時察皇,建議同時指定時區(qū),否則 br 默認使用本地時間構(gòu)造時間戳旅掂,可能導(dǎo)致備份時間點錯誤赏胚。如果你沒有指定該參數(shù),那么 br 會選取備份開始的時間點所對應(yīng)的快照商虐。
  • --storage:數(shù)據(jù)備份到的存儲地址觉阅。快照備份支持以 Amazon S3称龙、Google Cloud Storage留拾、Azure Blob Storage 為備份存儲,以上命令以 Amazon S3 為示例鲫尊。詳細存儲地址格式請參考外部存儲服務(wù)的 URI 格式痴柔。
  • --ratelimit每個 TiKV 備份數(shù)據(jù)的速度上限,單位為 MiB/s疫向。
    在快照備份過程中咳蔚,終端會顯示備份進度條豪嚎。在備份完成后,會輸出備份耗時谈火、速度侈询、備份數(shù)據(jù)大小等信息。
Full Backup <-------------------------------------------------------------------------------> 100.00%
Checksum <----------------------------------------------------------------------------------> 100.00%
*** ["Full Backup success summary"] *** [backup-checksum=3.597416ms] [backup-fast-checksum=2.36975ms] *** [total-take=4.715509333s] [BackupTS=435844546560000000] [total-kv=1131] [total-kv-size=250kB] [average-speed=53.02kB/s] [backup-data-size(after-compressed)=71.33kB] [Size=71330]

備份的相關(guān)參數(shù)

WXWorkLocalPro_17291589246828.png

查詢快照備份的時間點信息

出于管理備份數(shù)的需要糯耍,如果你需要查看某個快照備份對應(yīng)的快照物理時間點扔字,可以執(zhí)行下面的命令:

tiup br validate decode --field="end-version" \
--storage "s3://backup-101/snapshot-202209081330?access-key=${access-key}&secret-access-key=${secret-access-key}" | tail -n1

/app/tidb-community-toolkit-v8.1.1-linux-amd64/br validate decode --field="end-version" --storage "/backup/bk1" | tail -n1


WXWorkLocalPro_1729231416492.png

對集群進行快照恢復(fù)

注意
在 BR v7.5.0 及之前版本中,每個 TiKV 節(jié)點的快照恢復(fù)速度約為 100 MiB/s温技。
從 BR v7.6.0 開始革为,為了解決大規(guī)模 Region 場景下可能出現(xiàn)的恢復(fù)瓶頸問題,BR 支持通過粗粒度打散 Region 的算法加速恢復(fù)(實驗特性)舵鳞≌痖荩可以通過指定命令行參數(shù) --granularity="coarse-grained" 來啟用此功能。
從 BR v8.0.0 版本開始蜓堕,通過粗粒度打散 Region 算法進行快照恢復(fù)的功能正式 GA抛虏,并默認啟用。通過采用粗粒度打散 Region 算法套才、批量創(chuàng)建庫表迂猴、降低 SST 文件下載和 Ingest 操作之間的相互影響、加速表統(tǒng)計信息恢復(fù)等改進措施霜旧,快照恢復(fù)的速度有大幅提升错忱。在實際案例中儡率,快照恢復(fù)的 SST 文件下載速度最高提升約 10 倍挂据,單個 TiKV 節(jié)點的數(shù)據(jù)恢復(fù)速度穩(wěn)定在 1.2 GiB/s,端到端的恢復(fù)速度大約提升 1.5 到 3 倍儿普,并且能夠在 1 小時內(nèi)完成對 100 TiB 數(shù)據(jù)的恢復(fù)崎逃。

如果你需要恢復(fù)備份的快照數(shù)據(jù),則可以使用 tiup br restore full眉孩。該命令的詳細使用幫助可以通過執(zhí)行 tiup br restore full --help 查看个绍。

上文備份的快照數(shù)據(jù)恢復(fù)到目標集群:

tiup br restore full --pd "${PD_IP}:2379" \
--storage "s3://backup-101/snapshot-202209081330?access-key=${access-key}&secret-access-key=${secret-access-key}"

測試

./br restore full   --pd "10.0.8.87:2379" --storage "/backup" 

在恢復(fù)快照備份數(shù)據(jù)過程中,終端會顯示恢復(fù)進度條浪汪。在完成恢復(fù)后巴柿,會輸出恢復(fù)耗時、速度死遭、恢復(fù)數(shù)據(jù)大小等信息广恢。

Full Restore <------------------------------------------------------------------------------> 100.00%
*** ["Full Restore success summary"] *** [total-take=4.344617542s] [total-kv=5] [total-kv-size=327B

恢復(fù)備份數(shù)據(jù)中指定庫表的數(shù)據(jù)

br 命令行工具支持只恢復(fù)備份數(shù)據(jù)中指定庫、表的部分數(shù)據(jù)呀潭,該功能用于在恢復(fù)過程中過濾不需要的數(shù)據(jù)钉迷。

恢復(fù)單個數(shù)據(jù)庫的數(shù)據(jù)

要將備份數(shù)據(jù)中的某個數(shù)據(jù)庫恢復(fù)到集群中至非,可以使用 tiup br restore db 命令。以下示例只恢復(fù) test 庫的數(shù)據(jù):

tiup br restore db \
--pd "${PD_IP}:2379" \
--db "test" \
--storage "s3://backup-101/snapshot-202209081330?access-key=${access-key}&secret-access-key=${secret-access-key}"

測試

./br restore db --db dba_test   --pd "10.0.8.87:2379" --storage "/backup" 

以上命令中 --db 選項指定了需要恢復(fù)的數(shù)據(jù)庫名糠聪。

恢復(fù)單張表的數(shù)據(jù)

要將備份數(shù)據(jù)中的某張數(shù)據(jù)表恢復(fù)到集群中荒椭,可以使用 tiup br restore table 命令。以下示例只恢復(fù) test.usertable 表的數(shù)據(jù):

tiup br restore table --pd "${PD_IP}:2379" \
--db "test" \
--table "usertable" \
--storage "s3://backup-101/snapshot-202209081330?access-key=${access-key}&secret-access-key=${secret-access-key}"

測試

./br restore table --db dba_test  --table t1 --pd "10.0.8.87:2379" --storage "/backup" 

WXWorkLocalPro_17291570775706.png

以上命令中 --db 選項指定了需要恢復(fù)的數(shù)據(jù)庫名舰蟆,--table 選項指定了需要恢復(fù)的表名趣惠。

使用表庫過濾功能恢復(fù)部分數(shù)據(jù)

要通過復(fù)雜的過濾條件恢復(fù)多個表,可以使用 tiup br restore full 命令身害,并用 --filter-f 指定表庫過濾的條件信卡。以下示例恢復(fù)符合 db*.tbl* 條件的表的數(shù)據(jù):

tiup br restore full \
--pd "${PD_IP}:2379" \
--filter 'db*.tbl*' \
--storage "s3://backup-101/snapshot-202209081330?access-key=${access-key}&secret-access-key=${secret-acce
注:filter 'db*.tbl*'的**號可有可無 備份無影響

測試

./br restore full   --pd "10.0.8.87:2379" --filter 'dba_test.t1' --storage "/backup/bk3"

恢復(fù) mysql 數(shù)據(jù)庫下的表

  • br v5.1.0 開始,快照備份時默認自動備份 mysql schema 下的系統(tǒng)表數(shù)據(jù)题造,但恢復(fù)數(shù)據(jù)時默認不恢復(fù)系統(tǒng)表數(shù)據(jù)傍菇。
  • br v6.2.0 開始,增加恢復(fù)參數(shù) --with-sys-table 支持恢復(fù)數(shù)據(jù)的同時恢復(fù)部分系統(tǒng)表相關(guān)數(shù)據(jù)界赔。
  • br v7.6.0 開始丢习,恢復(fù)參數(shù) --with-sys-table 默認開啟,即默認支持恢復(fù)數(shù)據(jù)的同時恢復(fù)部分系統(tǒng)表相關(guān)數(shù)據(jù)淮悼。

可恢復(fù)的部分系統(tǒng)表

+----------------------------------+
| mysql.columns_priv               |
| mysql.db                         |
| mysql.default_roles              |
| mysql.global_grants              |
| mysql.global_priv                |
| mysql.role_edges                 |
| mysql.tables_priv                |
| mysql.user                       |
| mysql.bind_info                  |
+----------------------------------+

不能恢復(fù)以下系統(tǒng)表

+-----------------------------------------------------+
| capture_plan_baselines_blacklist                    |
| column_stats_usage                                  |
| gc_delete_range                                     |
| gc_delete_range_done                                |
| global_variables                                    |
| stats_buckets                                       |
| stats_extended                                      |
| stats_feedback                                      |
| stats_fm_sketch                                     |
| stats_histograms                                    |
| stats_history                                       |
| stats_meta                                          |
| stats_meta_history                                  |
| stats_table_locked                                  |
| stats_top_n                                         |
| tidb                                                |
+-----------------------------------------------------+

當恢復(fù)系統(tǒng)權(quán)限相關(guān)數(shù)據(jù)的時候袜腥,請注意:在恢復(fù)數(shù)據(jù)前 BR 會檢查目標集群的系統(tǒng)表是否跟備份數(shù)據(jù)中的系統(tǒng)表兼容见擦。這里的兼容是指滿足以下所有條件:

  • 目標集群需要存在備份中的系統(tǒng)權(quán)限表。
  • 目標集群系統(tǒng)權(quán)限表列數(shù)需要與備份數(shù)據(jù)中一致羹令,列的順序可以有差異鲤屡。
  • 目標集群系統(tǒng)權(quán)限表的列需要與備份數(shù)據(jù)兼容。如果為帶長度類型(包括整型福侈、字符串等類型)酒来,前者長度需大于或等于后者,如果為 ENUM 類型肪凛,則應(yīng)該為后者超集堰汉。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市伟墙,隨后出現(xiàn)的幾起案子翘鸭,更是在濱河造成了極大的恐慌,老刑警劉巖戳葵,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件就乓,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機档址,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門盹兢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人守伸,你說我怎么就攤上這事绎秒。” “怎么了尼摹?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵见芹,是天一觀的道長。 經(jīng)常有香客問我蠢涝,道長玄呛,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任和二,我火速辦了婚禮徘铝,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘惯吕。我一直安慰自己惕它,他們只是感情好,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布废登。 她就那樣靜靜地躺著淹魄,像睡著了一般。 火紅的嫁衣襯著肌膚如雪堡距。 梳的紋絲不亂的頭發(fā)上甲锡,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天,我揣著相機與錄音羽戒,去河邊找鬼缤沦。 笑死,一個胖子當著我的面吹牛半醉,可吹牛的內(nèi)容都是我干的疚俱。 我是一名探鬼主播劝术,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼缩多,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了养晋?” 一聲冷哼從身側(cè)響起衬吆,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎绳泉,沒想到半個月后逊抡,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年冒嫡,在試婚紗的時候發(fā)現(xiàn)自己被綠了拇勃。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡孝凌,死狀恐怖方咆,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蟀架,我是刑警寧澤瓣赂,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站片拍,受9級特大地震影響煌集,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜捌省,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一苫纤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧纲缓,春花似錦方面、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至褂策,卻和暖如春横腿,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背斤寂。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工耿焊, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人遍搞。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓罗侯,卻偏偏與公主長得像,于是被迫代替她去往敵國和親溪猿。 傳聞我的和親對象是個殘疾皇子钩杰,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容