# **练习-2 : 使用 `BR` 进行全备份**

## 概述
+ 在本练习中，我们将使用备份恢复工具 BR 进行全库备份｡

## 实验环境要求
+ 1. 注意，您的实验环境（包括IP，端口号，用户名，密码和目录）可能和手册不同。
+ 2. 可以连接到实验用虚拟机。
+ 3. TiDB 数据库提前部署完毕。
+ 4. 清理掉之前的实验数据。
+ 5. 需要完成练习-1。

## 步骤

-----------------------------------------------
#### 1.　在所有的 TiKV 节点创建文件夹 /tmp/backup，用来存储本节点的备份文件(SST 文件)，并将文件夹的权限设置为可以读写｡
+ **依次登录到 TiKV 节点，之后执行:**  
    ```
     # mkdir /tmp/backup
    ```

+ **将文件夹的权限设置为可以读写**
    ```
     # chmod 777 /tmp/backup
    ```
-----------------------------------------------
#### 2. 使用 BR 进行全库备份。
+ **全库备份**：
    ```
    br backup full --pd "172.31.0.232:2379" --storage "local:///tmp/backup" --ratelimit 128 --log-file backupfull.log
    ```
    (对于参数解释如下:
        --pd "172.31.0.232:2379" :连接 TiDB 数据库的 PD 节点。
        --storage "local:///tmp/backup" :备份文件存储在 TiKV 节点上的位置｡
        --ratelimit 128 :对于备份所用存储带宽限速，以免影响线上业务｡
        --log-file backupfull.log : 备份日志文件｡
    )
+ **查看备份日志是否包含错误**：
    ```
    # vi backupfull.log
    ```
    
-----------------------------------------------
#### 3. 备份结束后，可以到各个 TiKV 节点检查备份文件:
+ **查看各个 TiKV 节点中的 /tmp/backup 目录**
    ```
    # cd /tmp/backup/
    # ls
    ```
-----------------------------------------------
#### 4. 同时，在执行备份的节点上，也会自动创建文件夹 /tmp/backup 用来存储元数据和锁信息:
+ **查看备份执行节点中的 /tmp/backup 目录**
    ```
    # cd /tmp/backup/
    # ls
    ```
    ```
    backup.lock  backupmeta
    ```
-----------------------------------------------

## 输出样例

-----------------------------------------------
#### 步骤2-全库备份输出参考：
```
br backup full --pd "172.31.0.232:2379" --storage "local:///tmp/backup" --ratelimit 128 --log-file backupfull.log
```
```
Detail BR log in backupfull.log
Full Backup <----------------------------------------------------------------------------------------------------------------------------------------------------------------> 100.00%
Checksum <-------------------------------------------------------------------------------------------------------------------------------------------------------------------> 100.00%
[2022/06/25 18:39:20.183 +08:00] [INFO] [collector.go:69] ["Full Backup success summary"] [total-ranges=36] [ranges-succeed=36] [ranges-failed=0] [backup-checksum=951.052235ms] [backup-fast-checksum=4.138427ms] [backup-total-ranges=73] [backup-total-regions=78] [total-take=4.187101891s] [BackupTS=434150717785899011] [total-kv=5999621] [total-kv-size=322.9MB] [average-speed=77.11MB/s] [backup-data-size(after-compressed)=65.71MB] [Size=65706363]
```

-----------------------------------------------
#### 步骤2-查看备份日志是否包含错误输出参考：
```
# vi backupfull.log
```
```
[2022/06/25 18:39:15.996 +08:00] [INFO] [info.go:49] ["Welcome to Backup & Restore (BR)"] [release-version=v6.1.0] [git-hash=1a89decdb192cbdce6a7b0020d71128bc964d30f] [git-branch=heads/refs/tags/v6.1.0] [go-version=go1.18.2] [utc-build-time="2022-06-05 05:09:12"] [race-enabled=false]
[2022/06/25 18:39:15.996 +08:00] [INFO] [common.go:692] [arguments] [__command="br backup full"] [log-file=backupfull.log] [pd="[172.31.0.232:2379]"] [ratelimit=128] [storage=local:///tmp/backup]
[2022/06/25 18:39:15.996 +08:00] [INFO] [conn.go:257] ["new mgr"] [pdAddrs=172.31.0.232:2379]
[2022/06/25 18:39:15.997 +08:00] [INFO] [client.go:392] ["[pd] create pd client with endpoints"] [pd-address="[172.31.0.232:2379]"]
[2022/06/25 18:39:16.000 +08:00] [INFO] [base_client.go:332] ["[pd] update member urls"] [old-urls="[http://172.31.0.232:2379]"] [new-urls="[http://172.31.0.175:2379,http://172.31.0.232:2379,http://172.31.0.233:2379]"]
[2022/06/25 18:39:16.000 +08:00] [INFO] [base_client.go:350] ["[pd] switch leader"] [new-leader=http://172.31.0.232:2379] [old-leader=]
[2022/06/25 18:39:16.000 +08:00] [INFO] [base_client.go:105] ["[pd] init cluster id"] [cluster-id=7111180120874660827]
[2022/06/25 18:39:16.000 +08:00] [INFO] [client.go:687] ["[pd] tso dispatcher created"] [dc-location=global]
[2022/06/25 18:39:16.001 +08:00] [INFO] [conn.go:232] ["checked alive KV stores"] [aliveStores=3] [totalStores=3]
[2022/06/25 18:39:16.001 +08:00] [INFO] [client.go:392] ["[pd] create pd client with endpoints"] [pd-address="[172.31.0.232:2379]"]
[2022/06/25 18:39:16.002 +08:00] [INFO] [base_client.go:332] ["[pd] update member urls"] [old-urls="[http://172.31.0.232:2379]"] [new-urls="[http://172.31.0.175:2379,http://172.31.0.232:2379,http://172.31.0.233:2379]"]
[2022/06/25 18:39:16.002 +08:00] [INFO] [base_client.go:350] ["[pd] switch leader"] [new-leader=http://172.31.0.232:2379] [old-leader=]
[2022/06/25 18:39:16.002 +08:00] [INFO] [base_client.go:105] ["[pd] init cluster id"] [cluster-id=7111180120874660827]
[2022/06/25 18:39:16.003 +08:00] [INFO] [client.go:687] ["[pd] tso dispatcher created"] [dc-location=global]
[2022/06/25 18:39:16.004 +08:00] [INFO] [tidb.go:74] ["new domain"] [store=tikv-7111180120874660827] ["ddl lease"=1s] ["stats lease"=-1ns] ["index usage sync lease"=0s]
[2022/06/25 18:39:16.016 +08:00] [INFO] [domain.go:1731] [acquireServerID] [serverID=1795554] ["lease id"=5a57817f72ebfffc]
[2022/06/25 18:39:16.019 +08:00] [WARN] [info.go:241] ["init TiFlashPlacementManager"] ["pd addrs"="[172.31.0.232:2379,172.31.0.233:2379,172.31.0.175:2379]"]
[2022/06/25 18:39:16.039 +08:00] [INFO] [domain.go:176] ["full load InfoSchema success"] [currentSchemaVersion=0] [neededSchemaVersion=175] ["start time"=10.262907ms]
[2022/06/25 18:39:16.042 +08:00] [INFO] [domain.go:437] ["full load and reset schema validator"]
[2022/06/25 18:39:16.042 +08:00] [INFO] [ddl.go:382] ["[ddl] start DDL"] [ID=0b771db3-fc98-4273-baf1-0c0a3b563788] [runWorker=false]
[2022/06/25 18:39:16.044 +08:00] [INFO] [backup.go:273] ["get new_collations_enabled_on_first_bootstrap config from system table"] [new_collation_enabled=True]
[2022/06/25 18:39:16.044 +08:00] [INFO] [client.go:95] ["new backup client"]
[2022/06/25 18:39:16.045 +08:00] [INFO] [client.go:139] ["backup encode timestamp"] [BackupTS=434150717785899011]
[2022/06/25 18:39:16.045 +08:00] [INFO] [backup.go:308] ["current backup safePoint job"] [safePoint="{ID=br-e3775333-7f10-4d4e-9aec-9f93429185c2,TTL=5m0s,BackupTime=\"2022-06-25 18:39:16.007 +0800 CST\",BackupTS=434150717785899011}"]                         
...
[2022/06/25 18:39:20.182 +08:00] [INFO] [client.go:768] ["[pd] stop fetching the pending tso requests due to context canceled"] [dc-location=global]
[2022/06/25 18:39:20.182 +08:00] [INFO] [client.go:706] ["[pd] exit tso dispatcher"] [dc-location=global]
[2022/06/25 18:39:20.183 +08:00] [INFO] [client.go:768] ["[pd] stop fetching the pending tso requests due to context canceled"] [dc-location=global]
[2022/06/25 18:39:20.183 +08:00] [INFO] [client.go:706] ["[pd] exit tso dispatcher"] [dc-location=global]
[2022/06/25 18:39:20.183 +08:00] [INFO] [collector.go:70] ["Full Backup success summary"] [total-ranges=36] [ranges-succeed=36] [ranges-failed=0] [backup-checksum=951.052235ms] [backup-fast-checksum=4.138427ms] [backup-total-ranges=73] [backup-total-regions=78] [total-take=4.187101891s] [BackupTS=434150717785899011] [total-kv=5999621] [total-kv-size=322.9MB] [average-speed=77.11MB/s] [backup-data-size(after-compressed)=65.71MB] [Size=65706363]      
```
 -----------------------------------------------
#### 步骤3-查看各个 TiKV 节点中的 /tmp/backup 目录输出参考：
```
# cd /tmp/backup/
# ls
```
```
7_420_126_1c3b2cf2e144e717e2f44c2a3268ab2e8f4bba80bab869b4ce0fc47b4d8851a4_1656153556094_write.sst
7_444_144_2d2f68c250f77d93ffb8ea543a425eebeea7c92d1f033e9d32cdb914ca4341a9_1656153559131_write.sst
7_444_144_302753bc98ec93e98edea12aeac15074da779bb66c735c8ce184eacf43f1e7c2_1656153559184_write.sst
7_444_144_355f0b5a4a8313c61daccaf1f055ac6ce3e0abaeb3d9fda7eb60557014f38dac_1656153559034_write.sst
7_444_144_36adb8cedcd7af34708edff520499e712e2cfdcb202f5707dc9305a031d55a98_1656153559042_write.sst
7_444_144_3f6d12724d959fbc78994fce604770562322868fba9dd533f7daf7d93dbd1ad7_1656153559193_write.sst
7_444_144_495c5d2e3a1901df43133318e03236d08d1c8882cdd7b452579a4fcd82ccb718_1656153559024_write.sst
7_444_144_54423f4310d10c8b44947056f08b99e8496fef03e9ab04503162fadfa7e38c44_1656153559098_write.sst
7_444_144_5ee3395c74d5aeb37e1f20733281e3865ad14754c92e7c3bc00fead026166d54_1656153559115_write.sst
7_444_144_63ed7d8a2b3c9d0f343314b5cc83be282978edb60deaea275725b80a21b1a8c9_1656153559218_write.sst
7_444_144_6d95378ebf12295206532143634e65a359d39c26f40c8a1fa9b239de19fe54b2_1656153559211_write.sst
7_444_144_755836e42bfb568bf6e89d931d86a7d31453a1bd6f7ffb924e19eb28be74aa00_1656153559058_write.sst
7_444_144_759f1781e3eb9e6aae280a9aa33f2cb97d799e11265ff74363f00f942787a311_1656153559070_write.sst
7_444_144_7c29d2d214a7a70e5c20091535dc0515fe9e2d8c4dffbfad1e3ca1fa7decdc14_1656153559064_write.sst
7_444_144_8dd75043152f9a7a07ef9bc0b24b629d464621806e3c93219cac918ec3d5b346_1656153559125_write.sst
7_444_144_8f7abf39b20c15c187626a7202d03ce05ad036fc63492556dee3bea99158ec0d_1656153557405_write.sst
7_444_144_9fb8afb3f7322e93f506f0d9d11e9b1569bc90b7c3779da9bb7e35137e8e6597_1656153559200_write.sst
7_444_144_a24c493bf7e801abe1238806dd31796f911e7dd0970118b9315f0a7366532873_1656153559137_write.sst
7_444_144_afb978bcbf32cf0ba18923daa88bdab19c00ad22f4fe49863f102827eb831e21_1656153559081_write.sst
7_444_144_c11c7f8053ba1d8a3efe53decec79ee83321252578aaa0e09024538869d60d0d_1656153559178_write.sst
7_444_144_c2baa1d0dee98e26766aa462a873c405eaad66653a52db6bc9e1d584f6aebcc7_1656153559050_write.sst
7_444_144_d03f5545842231b64ac143f64290e1efab5eb039773fde78f51cc6d98d01e020_1656153559155_write.sst
7_444_144_d0a5865efa1d90636cf0c26e991e1f13ad4ef35c631530b967aa1e342d73208b_1656153559076_write.sst
7_444_144_de8304485bb5b1def0f07f35f376594d100067cec03a21a00f157e91b6148940_1656153559144_write.sst
7_444_144_ea55f4e75cb43a63969bf83a306fc68e3fa49ff84f6f51a3c873ad531a18691d_1656153559110_write.sst
7_444_144_fd5ee7729668dbddb4eefa496199dcc1b713d020fc184b9383d249a0f7e83028_1656153559087_write.sst
7_444_144_ff781abda573afc7d7878f20390a290dcdb471bf12a8cbabf359ccf9e8d37084_1656153559164_write.sst
```
-----------------------------------------------