개요
설명:
스토리지 공간을 절약하기 위해 TencentDB for MySQL의 물리적 및 논리적 백업은 qpress로 압축된 다음 Percona에서 제공하는 xbstream으로 압축됩니다.
오픈 소스 Percona XtraBackup을 사용하여 데이터베이스를 백업하고 복원할 수 있습니다. 이 문서는 XtraBackup을 사용하여 TencentDB for MySQL 인스턴스의 물리적 백업 파일을 CVM 기반 자체 구축 데이터베이스로 복원하는 방법을 설명합니다.
주의:
TDE 또는 Instant DDL 기능을 사용하는 경우 자체 구축 시스템의 물리적 백업에서 데이터를 복원할 수 없습니다.
XtraBackup은 Linux 플랫폼만 지원하며, Windows 플랫폼은 지원하지 않습니다.
전제 조건
XtraBackup 툴을 다운로드 및 설치합니다.
지원되는 인스턴스 아키텍처: 2노드 또는 3노드 MySQL.
TDE가 활성화된 인스턴스는 물리적 백업에서 복원할 수 없습니다.
설명:
본 문서는 CentOS 운영 체제의 CVM과 MySQL 5.7 버전을 예로 들어 소개합니다.
콘솔에서 TencentDB for MySQL 인스턴스의 데이터 백업 및 로그 백업을 다운로드할 수 있습니다.
설명:
각 IP는 기본적으로 최대 10개의 다운로드 링크를 가질 수 있으며 다운로드 속도 제한은 각각 20Mpbs - 30Mpbs입니다.
2. 인스턴스 관리 페이지에서 백업 복구 > 데이터 백업 리스트 페이지를 선택하고 다운로드할 백업을 선택한 후 작업 열에서 다운로드를 클릭합니다.
설명:
또한 로컬 다운로드를 선택하여 직접 다운로드할 수 있지만, 다소 긴 시간이 소요될 수 있습니다.
wget 명령어 포맷: wget -c '백업 파일 다운로드 주소' -O 사용자 정의 파일명.xb
예시는 다음과 같습니다.
wget -c 'https://mysql-database-backup-sh-1218.cos.ap-nanjing.myqcloud.com/12427%2Fmysql%2F0674-ffba-11e9-b592-70bd%2Fdata%2Fautomatic-delete%2F2019-12-03%2Fautomatic%2Fxtrabackup%2Fbk_61_156758150%2Fcdb-293fl9ya_backup_20191203000202.xb?sign=q-sign-algorithm%3Dsha1%26q-ak%3DAKzxfbLJ1%26q-sign-time%3D1575374119%3B1575417319%26q-key-time%3D1575374119%3B1575417319%26q-header-list%3D%26q-url-param-list%3D%26q-signature%3Dba959757&response-content-disposition=attachment%3Bfilename%3D%22yuan177685_backup_20191203000202.xb%22&response-content-type=application%2Foctet-stream' -O /data/test.xb
2단계: 백업 복호화 키 다운로드(백업 암호화 기능이 활성화된 경우에만 필요)
콘솔에서 TencentDB for MySQL 인스턴스의 데이터 백업 및 복호화 키를 다운로드할 수 있습니다.
설명:
암호 해독 키는 각 데이터베이스 백업에 대해 개별적으로 생성됩니다. 백업 암호화 기능이 활성화된 경우 복호화 키와 함께 백업 파일을 다운로드하여 저장해야 합니다.
2. 인스턴스 관리 페이지에서 백업 및 복구 > 데이터 백업 리스트 탭에서 다운로드할 백업 파일에 해당하는 복호화 키를 찾은 후 작업 열에서 키 다운로드를 클릭합니다.
3. 팝업창에서 키를 저장할 파일 경로를 선택하고 다운로드를 클릭합니다.
3단계: 데이터 복구
3.1 백업 파일 압축 풀기
xbstream 명령을 실행하여 대상 디렉터리에 백업 파일의 압축을 풉니다.
xbstream -x --decrypt=AES256 --encrypt-key-file=<백업 키 파일> --parallel=2 -C /data/mysql < /data/test.xb
설명:
본 문서에서는 타깃 디렉터리 /data/mysql를 예시로 사용합니다. 백업 파일을 저장하는 데 실제로 사용하는 디렉터리로 바꿀 수 있습니다.
/data/test.xb를 백업 파일로 변경합니다.
3.2 백업 파일 압축 해제
1. 다음 명령어를 사용해 qpress 툴을 다운로드합니다.
wget -d --user-agent="Mozilla/5.0 (Windows NT x.y; rv:10.0) Gecko/20100101 Firefox/10.0" https://docs-tencentdb-1256569818.cos.ap-guangzhou.myqcloud.com/qpress-11-linux-x64.tar
2. 다음 명령어를 사용해 qpress 바이너리 파일을 압축 해제합니다.
tar -xf qpress-11-linux-x64.tar -C /usr/local/bin
source /etc/profile
3. 그 다음 아래 명령을 실행하여 대상 디렉터리의 모든 .qp 파일의 압축을 해제합니다.
xtrabackup --decompress --target-dir=/data/mysql
설명:
/data/mysql은 이전에 백업 파일이 저장된 대상 디렉토리입니다. 실제로 사용하는 디렉터리로 교체할 수 있습니다.
Percona Xtrabackup는 2.4.6 이상 버전에서만 --remove-original 옵션을 지원합니다.
xtrabackup은 압축 해제 시 원본 압축 파일을 삭제하지 않도록 기본 설정되어 있습니다. 압축 해제 후에 원본 압축 파일을 삭제하려면, 상기 명령어에 --remove-original 매개변수를 추가하십시오.
3.3 Prepare 백업 파일
백업 파일의 압축을 해제한 후 다음 명령을 실행하여 apply log 작업을 수행합니다.
xtrabackup --prepare --target-dir=/data/mysql
실행 후 출력 결과에 다음 사항이 포함되어 있다면 prepare 성공을 뜻합니다.
3.4 구성 파일 수정
1. 다음 명령을 실행하여 backup-my.cnf 파일을 엽니다.
vi /data/mysql/backup-my.cnf
설명:
본 문서는 대상 디렉터리 /data/mysql를 예로 들며, 실제 사용하는 디렉터리로 교체할 수 있습니다.
2. 기존 버전 문제를 감안하여 추출된 backup-my.cnf 파일에서 다음 매개변수를 주석 처리해야 합니다.
innodb_checksum_algorithm
innodb_log_checksum_algorithm
innodb_fast_checksum
innodb_page_size
innodb_log_block_size
redo_log_version
3.5 파일 속성 수정
파일 속성을 수정하고 파일이 mysql 사용자의 소유인지 확인합니다.
chown -R mysql:mysql /data/mysql
4단계: mysqld 프로세스를 실행하고 확인을 위해 로그인
1. mysqld 프로세스를 시작합니다.
mysqld_safe --defaults-file=/data/mysql/backup-my.cnf --user=mysql --datadir=/data/mysql &
2. 확인을 위해 MySQL 클라이언트에 로그인합니다.
백업 관련 문제