[운영 및 유지보수 실습] TIDB v6.1.1: 전체 백업, 전체 복구 및 증분 백업 방법 분석

작성자: Fly-bird 원본출처: https://tidb.net/blog/0b55fa52

배경 : 회사 요구 사항으로 인해 데이터베이스의 데이터 보안이 보장되어야 하며, 우리 프로덕션 환경의 데이터베이스는 데이터베이스의 고가용성을 보장하기 위해 전체 백업 + 증분 백업 + 데이터베이스에서 실시간 동기화 방법을 채택합니다. 우리 회사 생산 환경의 데이터베이스 백업 방법을 소개합니다.

참고: 고가용성을 보장하기 위해 슬레이브 데이터베이스에 데이터를 실시간 동기화합니다(펌프+드레이너 사용). 또한 실수로 데이터가 삭제되는 것을 방지하기 위해 언제든지 데이터를 복구하는 작업도 지원합니다. 이에 대해서는 다른 기사에서 소개하겠습니다. . 펌프는 binlog 로그를 생성하고 드레이너는 다운스트림 데이터와 동기화합니다.

**참고: **이 실제 작업은 Tidb의 BR 도구와 펌프+드레이너 구성 요소를 사용하여 데이터베이스의 전체 백업, 복구 및 증분 백업을 수행합니다(백업은 파일로 저장됨). 실제 작업은 다음과 같습니다.

1. Tidb 설치 이 서비스는 데이터 복구를 위한 대상 머신으로 사용됩니다(데이터를 검색하는 데 사용됩니다. 리소스를 절약하려면 Tidb 단일 노드를 설치하십시오). 설치 단계는 다음과 같습니다.

1. tiup 도구 설치

curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh |sh

2. 환경 변수 설정

source .bash_profile

3. 구성 요소 설치

tiup cluster

4. 클러스터 구성 파일 topology.yaml을 작성합니다.

global:
  user: "tidb"
  ssh_port: 22
  deploy_dir: "/tidb-deploy"
  data_dir: "/tidb-data"
pd_servers:
  - host: 192.168.195.139
tidb_servers:
  - host: 192.168.195.139
tikv_servers:
- host: 192.168.195.139
tiflash_servers:
  - host: 192.168.195.139
monitoring_servers:
  - host: 192.168.195.139
grafana_servers:
  - host: 192.168.195.139
alertmanager_servers:
  - host: 192.168.195.139

5. 위험 요소를 확인하세요


tiup cluster check ./topology.yaml --user root -p

6. 수리 위험


tiup cluster check ./topology.yaml --apply  --user root -p

7. 클러스터 배포

tiup cluster deploy qzn v6.1.1 ./topology.yaml --user root -p

8. 클러스터 초기화

tiup cluster start qzn --init      #记录下生成的密码The new password is: '*******'.

9. 배포가 완료되었습니다.다음과 같이 클러스터 정보를 확인합니다.데이터베이스에 비즈니스 데이터가 없습니다.

1695624366899.jpg

2. TIDB 원래 클러스터에 펌프 노드 추가

1. 원본 클러스터 정보를 다음과 같이 확인합니다.1695622829208.jpg

2. 확장 파일을 편집합니다. /data/pump-qzn.yaml은 확장이 필요한 구성 파일입니다. Pump는 바이너리 파일을 생성합니다. Drainer는 binlog를 파일에 저장합니다. 구체적인 내용은 다음과 같습니다.

global:
  user: "tsp-tidb"
  ssh_port: 22
  deploy_dir: "/tidb-deploy"
  data_dir: "/tidb-data"
pump_servers:
  - host: 192.168.195.140
    port: 8250
    deploy_dir: "/tidb-deploy/pump-8250"
    data_dir: "/tidb-data/pump-8250"
    # The following configs are used to overwrite the `server_configs.pump` values.
    config:
      gc: 7
drainer_servers:
  - host: 192.168.195.140
    port: 8249
    deploy_dir: "/tidb-deploy/drainer-8249"
    data_dir: "/tidb-data/drainer-8249"
    # If drainer doesn't have a checkpoint, use initial commitTS as the initial checkpoint.
    # Will get a latest timestamp from pd if commit_ts is set to -1 (the default value).
    commit_ts: -1
    # The following configs are used to overwrite the `server_configs.drainer` values.
    config:
      syncer.db-type: "file"

3. 클러스터 확장

tiup cluster scale-out 集群名 /data/pump-qzn.yaml --user root -p

이미지.png

4. 펌프 노드 추가 후 클러스터 상태 확인

tiup 클러스터 표시 클러스터 이름, 각 노드가 작동 중인지 확인

이미지.png

5. TIDB의 binglog 구성 활성화

vi /tidb-deploy/tidb-4000/conf/tidb.toml  
加入下面内容
[binlog]
enable = true
ignore-error = true

然后重启tidb
tiup cluster restart qzn -N 192.168.195.140:4000

在mysql客户端中查看是否开启(显示为ON)
show variables like "log_bin";

이미지.png

6. 소스 데이터베이스에 로그인하고 qzn_test 데이터베이스와 테이블 정보를 생성한 후 테이블에 데이터 행을 삽입합니다.

1695623346194.jpg

3. Tidb 원본 클러스터 백업 데이터 (여기에는 단일 데이터베이스만 백업하는 내용이 나와 있습니다. br 백업 및 복구에 대한 공식 문서를 참조하세요.) BR 백업 도구를 다운로드하세요. 백업 폴더에는 777 권한이 필요합니다. 다운로드 페이지는 https: / /cn.pingcap.com/product -커뮤니티/

mkdir -p /data/qzn/qzn_test   
chmod -R 777 /data/qzn/qzn_test
wget https://download.pingcap.org/tidb-community-toolkit-v6.1.1-linux-amd64.tar.gz
tar -zxvf tidb-community-toolkit-v6.1.1-linux-amd64.tar.gz -C /data/
cd /data/tidb-community-toolkit-v6.1.1-linux-amd64
tar -zxvf br-v6.1.1-linux-amd64.tar.gz -C /data/

cd /data/
./br backup db -s local:///data/qzn/qzn_test --pd "192.168.195.140:2379" --db qzn_test --ratelimit 120 --log-file backupqzn_test.log

이미지.png

4. Tidb 대상 데이터베이스 복구 데이터 br 복구 백업(백업 파일을 대상 데이터베이스 서버에 복사)

139 서버에 br 도구 배포

#140上发送文件到139
scp br [email protected]:/data/
scp -r qzn_test/ [email protected]:/data/qzn/

#在139服务器上操作

./br restore db -s local:///data/qzn/qzn_test --db qzn_test --pd "192.168.195.139:2379" --log-file restore.log

이미지.png

5. 대상 데이터베이스(139)를 확인하면 데이터 복구가 완료되었습니다.

이미지.png

6. 데이터베이스 서버를 확인한다(140). binlog 파일이 생성되었으며, 이 파일은 증분 백업 파일이며, 실제 백업 과정에서는 일일 Br 백업 + 증분 백업으로 데이터베이스를 백업한다.

이미지.png

이미지.png

위 내용으로 데이터베이스 백업 및 복구의 기본 작업이 완료되었습니다. 프로덕션 클러스터에 tikv 노드가 여러 개 있는 경우 모든 tikv 백업 데이터가 공유 디스크에 기록될 수 있도록 백업 중에 공유 디스크를 정지해야 합니다.

오픈 소스 프레임워크 NanUI의 작성자가 철강 판매로 전환하여 프로젝트가 중단되었습니다. Apple App Store의 무료 목록 1위는 포르노 소프트웨어인 TypeScript입니다. 이제 막 인기를 얻었는데 왜 대기업들은 이를 포기하기 시작합니까? ? TIOBE 10월 목록: Java가 가장 큰 감소세를 보이고 C#은 Java Rust 1.73.0 출시 에 가까워지고 있습니다. 한 남자가 AI 여자친구의 부추김을 받아 영국 여왕을 암살했으며 9년 징역형을 선고받았습니다. Qt 6.6 공식 출시 Reuters: RISC-V 기술이 중미 기술 전쟁의 핵심이 된다 새로운 전장 RISC-V: 단일 기업이나 국가에 의해 통제되지 않는 Lenovo, Android PC 출시 계획
{{o.이름}}
{{이름}}

추천

출처my.oschina.net/u/5674736/blog/10115090