Tidb br备份脚本

Tidb br备份脚本

𝓓𝓸𝓷 Lv6

Tidb快照备份和Tidb日志备份脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#!/bin/bash
#set env


PATH=/home/tidb/.tiup/bin:$PATH
DATE=`date +%Y%m%d`
keep_days=7
keep_backup=`date -d "$keep_days days ago" +%Y%m%d`
mount_point=/backup
log_path=$mount_point/tidb/log
backup_path=$mount_point/tidb/br
logfile=$backup_path/logfile
pd='172.28.6.31:2379'

if mount | grep -q " on ${mount_point} type "; then
mkdir -p $backup_path/{$DATE,logfile}
else
echo "`date +%Y%m%d` Please check if the directory $backup_path exists!" >> /tmp/tidb_backup.log
exit 1
fi


echo "----------------------------- Backup Start: `date "+%Y-%m-%d %H:%M:%S"` -----------------------------";

tiup br backup full \
--pd $pd \
--storage local://$backup_path/$DATE \
--log-file $logfile/full-br-backup-${DATE}.log

echo "----------------------------- Backup End: `date "+%Y-%m-%d %H:%M:%S"` -----------------------------";

sleep 10

if [ -d $backup_path/$keep_backup ];then

full_backup_ts=`tiup br validate decode --field="end-version" --storage /backup/tidb/br/${keep_backup} |tail -n 1`
tiup br log truncate --until=${full_backup_ts} --storage="$log_path" -y

find "$log_path" -mindepth 1 -type d -empty -delete
find $backup_path/* -maxdepth 0 -type d -mtime +$keep_days |xargs rm -rf
find $logfile -name '*.log' -mtime +$keep_days |xargs rm -rf

fi



[tidb@1 script]$ crontab -l
30 22 * * * /home/tidb/script/tidb_backup.sh > /home/tidb/script/tidb_backup.log 2>&1

tidb br log重启步骤、tidb br log开启脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
[tidb@1 tidb]$ tiup br log status
Checking updates for component br... Timedout (after 2s)
Starting component br: /home/tidb/.tiup/components/br/v7.5.1/br log status
Detail BR log in /tmp/br.log.2026-11-04T10.47.38+0800
● Total 1 Tasks.
> #1 <
name: pitr
status: ○ ERROR
start: 2026-01-06 17:55:34.1 +0800
end: 2090-11-18 22:07:45.624 +0800
storage: local:///backup/tidb/log
speed(est.): 0.00 ops/s
checkpoint[global]: 2026-07-23 22:35:32.85 +0800; gap=2484h12m7s
error[store=7]: KV:LogBackup:Io
error-happen-at[store=7]: 2026-07-23 22:40:28.01 +0800; gap=2484h7m12s
error-message[store=7]: I/O Error: No space left on device (os error 28)

[tidb@1 tidb]$ tiup cluster display ti-yfhis |grep pd
Checking updates for component cluster... Timedout (after 2s)
172.28.6.31:2379 pd 172.28.6.31 2379/2380 linux/aarch64 Up /data/tidb-data/pd-2379 /data/tidb-deploy/pd-2379
172.28.6.34:2379 pd 172.28.6.34 2379/2380 linux/aarch64 Up|L|UI /data/tidb-data/pd-2379 /data/tidb-deploy/pd-2379
172.28.6.35:2379 pd 172.28.6.35 2379/2380 linux/aarch64 Up /data/tidb-data/pd-2379 /data/tidb-deploy/pd-2379

停止:
[tidb@1 tidb]$ tiup br log stop --pd 172.28.6.31:2379
Checking updates for component br... Timedout (after 2s)
Starting component br: /home/tidb/.tiup/components/br/v7.5.1/br log stop --pd 172.28.6.31:2379
Detail BR log in /tmp/br.log.2026-11-04T10.55.07+0800
Error: Miss parameters task-name: [BR:Common:ErrInvalidArgument]invalid argument

[tidb@1 tidb]$ tiup br log stop --pd 172.28.6.31:2379 --task-name pitr
Checking updates for component br... Timedout (after 2s)
Starting component br: /home/tidb/.tiup/components/br/v7.5.1/br log stop --pd 172.28.6.31:2379 --task-name pitr
Detail BR log in /tmp/br.log.2026-11-04T10.55.53+0800
[2026/11/04 10:55:54.848 +08:00] [INFO] [collector.go:77] ["log stop"] [streamTaskInfo="{taskName=pitr,startTs=463390201374310408,endTS=999999999999999999,tableFilter=*.*}"]
[2026/11/04 10:55:57.145 +08:00] [INFO] [collector.go:77] ["log stop success summary"] [total-ranges=0] [ranges-succeed=0] [ranges-failed=0] [total-take=3.449534897s]

启动:
tiup br log start \
--pd 172.28.6.31:2379 \
--storage "local:///backup/tidb/log" \
--task-name pitr

Checking updates for component br... Timedout (after 2s)
Starting component br: /home/tidb/.tiup/components/br/v7.5.1/br log start --pd 172.28.6.31:2379 --storage local:///backup/tidb/log --task-name pitr
Detail BR log in /tmp/br.log.2026-11-04T10.59.58+0800
[2026/11/04 10:59:59.551 +08:00] [INFO] [collector.go:77] ["log start"] [streamTaskInfo="{taskName=pitr,startTs=469872203320524802,endTS=999999999999999999,tableFilter=*.*}"] [pausing=false] [rangeCount=2]
[2026/11/04 11:00:01.608 +08:00] [INFO] [collector.go:77] ["log start success summary"] [total-ranges=0] [ranges-succeed=0] [ranges-failed=0] [total-take=3.236040071s]

[tidb@1 tidb]$ tiup br log status
Checking updates for component br... Timedout (after 2s)
Starting component br: /home/tidb/.tiup/components/br/v7.5.1/br log status
Detail BR log in /tmp/br.log.2026-11-04T11.00.28+0800
● Total 1 Tasks.
> #1 <
name: pitr
status: ● NORMAL
start: 2026-10-19 22:30:09.2 +0800
end: 2090-11-18 22:07:45.624 +0800
storage: local:///backup/tidb/log
speed(est.): 3015357.67 ops/s
checkpoint[global]: 2026-10-19 22:30:09.2 +0800; gap=372h30m21s
  • Title: Tidb br备份脚本
  • Author: 𝓓𝓸𝓷
  • Created at : 2024-12-30 12:30:02
  • Updated at : 2026-11-04 11:03:49
  • Link: https://www.zhangdong.me/tidb-br-backup-script.html
  • License: This work is licensed under CC BY-NC-SA 4.0.
评论