xtrabackup - (4) 백업 : incremental
2024. 11. 25. 13:56ㆍMySQL/Class
반응형
1. 전체(base) 백업
(1) 데이터 확인
- 이 테이블은 추후 복구과정에서 어디까지 복구를 하였는지 체크를 하기 위함입니다.
(2) 전체 백업
- xbstream 은 percona에서 파일들을 묶어주는 기능을 제공 합니다. tar 와 같은 느낌입니다.
xtrabackup --defaults-file=/etc/my_5529.cnf --compress --user=root --backup --target-dir=/data/backup --socket=/tmp/mysql_5529.sock --stream=xbstream > /data/backup/base.xbstream
[root@mac18-02 data]# /mysql/xtrabackup/bin/xtrabackup --defaults-file=/etc/my_5529.cnf --compress --user=root --password='1234' --backup --target-dir=/data/backup --socket=/tmp/mysql_5529.sock --stream=xbstream > /data/backup/base.xbstream
xtrabackup: recognized server arguments: --datadir=/data/data_5529 --innodb_adaptive_hash_index=0 --innodb_io_capacity=400 --innodb_use_native_aio=1 --server-id=100 --log_bin=bin --
.
.
.
241120 15:15:10 [00] Compressing and streaming <STDOUT>
241120 15:15:10 [00] ...done
xtrabackup: Transaction log of lsn (300621603) to (300621603) was copied.
241120 15:15:11 completed OK!
(3) 백업 파일 확인
- base.xbstream 파일이 생성 되었습니다.
[root@mac18-02 data]# ls /data/backup
base.xbstream
2. 1차 증분백업
(1) 데이터 확인
- 백업 이후에 실시간으로 작업이 이뤄지는 것을 가정하기 위해 데이터를 넣었습니다.
(2) base 백업 파일 압축 풀기
# xbstream 파일을 풀어줍니다.
xbstream -x < /data/backup/base.xbstream
# 풀어진 파일을 decompress를 합니다.
# --target-dir은 xbstream으로 풀린 파일들의 폴더를 지정해주면 됩니다.
xtrabackup --decompress --remove-original --target-dir=/data/base
- xbstream으로 묶인 파일 풀기
[root@mac18-02 data]# cd /data/base
[root@mac18-02 base]# /mysql/xtrabackup/bin/xbstream -x < /data/backup/base.xbstream
[root@mac18-02 base]# ls
backup-my.cnf.qp mysql xtrabackup_binlog_info.qp
ibdata01.qp percona xtrabackup_checkpoints
ibdata02.qp performance_schema xtrabackup_info.qp
ibdata03.qp test xtrabackup_logfile.qp
- xbstream을 풀린 qp 압축 파일 풀기
[root@mac18-02 base]# /mysql/xtrabackup/bin/xtrabackup --decompress --remove-original --target-dir=/data/base
xtrabackup: recognized server arguments:
xtrabackup: recognized client arguments: --decompress=1 --remove-original=1 --target-dir=/data/base
/mysql/xtrabackup/bin/xtrabackup version 2.4.25 based on MySQL server 5.7.35 Linux (x86_64) (revision id: 90fe9d0)
241120 15:21:43 [01] decompressing ./ibdata01.qp
241120 15:21:44 [01] removing ./ibdata01.qp
241120 15:21:44 [01] decompressing ./ibdata02.qp
241120 15:21:46 [01] removing ./ibdata02.qp
241120 15:21:46 [01] decompressing ./ibdata03.qp
241120 15:21:47 [01] removing ./ibdata03.qp
.
.
.
241120 15:21:48 [01] decompressing ./xtrabackup_info.qp
241120 15:21:48 [01] removing ./xtrabackup_info.qp
241120 15:21:48 completed OK!
(3) 1차 증분 백업
xtrabackup --defaults-file=/etc/my_5529.cnf --compress --user=root --backup --socket=/tmp/mysql_5529.sock --target-dir=/data/backup --incremental-basedir=/data/base --stream=xbstream > /data/backup/inc1.xbstream
[root@mac18-02 base]# /mysql/xtrabackup/bin/xtrabackup --defaults-file=/etc/my_5529.cnf --compress --user=root --password='1234' --backup --socket=/tmp/mysql_5529.sock --target-dir=/data/backup --incremental-basedir=/data/base --stream=xbstream > /data/backup/inc1.xbstream
xtrabackup: recognized server arguments: --datadir=/data/data_5529 --innodb_adaptive_hash_index=0 --innodb_io_capacity=400 --innodb_use_native_aio=1 --server-id=100 --log_bin=bin --innodb_file_per_table=1 --innodb_buffer_pool_size=500M --innodb_data_file_path=ibdata01:1024M;ibdata02:1024M;ibdata03:1024M:autoextend --innodb_write_io_threads=8 --innodb_read_io_threads=8 --innodb_doublewrite=0 --innodb_flush_log_at_trx_commit=2 --innodb_log_buffer_size=8M --innodb_log_file_size=1024M --innodb_log_files_in_group=3 --innodb_max_dirty_pages_pct=70 --innodb_flush_method=O_DIRECT
.
.
.
241120 15:25:11 [00] Compressing and streaming <STDOUT>
241120 15:25:11 [00] ...done
xtrabackup: Transaction log of lsn (300622535) to (300622535) was copied.
241120 15:25:12 completed OK!
(4) 백업파일 확인
- inc1.xbstream 파일이 생성 되었습니다.
[root@mac18-02 base]# ls /data/backup
base.xbstream inc1.xbstream
3. 2차 증분 백업
# 이전 백업본 압축을 풀고 그것을 기준으로 백업을 진행한 위 1차 증분 백업과 동일합니다.
(1) 데이터 확인
(2) 1차 증분 백업 파일 압축 풀기
# 같은 폴더를 사용하기 위해서 앞서 압축푼 전체백업본 삭제 후에 작업을 진행하려고 합니다.
# 증분 백업을 할때는 마지막 백업본만 체크하여 또 다른 증분 백업을 하면 됩니다.
[root@mac18-02 base]# ls
backup-my.cnf ibdata03 performance_schema xtrabackup_checkpoints
ibdata01 mysql test xtrabackup_info
ibdata02 percona xtrabackup_binlog_info xtrabackup_logfile
[root@mac18-02 base]# rm -rf *
[root@mac18-02 base]# ls
[root@mac18-02 base]# /mysql/xtrabackup/bin/xbstream -x < /data/backup/inc1.xbstream
[root@mac18-02 base]# ls
backup-my.cnf.qp ibdata03.delta.qp test
ibdata01.delta.qp ibdata03.meta xtrabackup_binlog_info.qp
ibdata01.meta mysql xtrabackup_checkpoints
ibdata02.delta.qp percona xtrabackup_info.qp
ibdata02.meta performance_schema xtrabackup_logfile.qp
# 압축 풀기
[root@mac18-02 base]# /mysql/xtrabackup/bin/xtrabackup --decompress --remove-original --target-dir=/data/base
xtrabackup: recognized server arguments:
.
.
.
241120 15:31:54 [01] decompressing ./backup-my.cnf.qp
241120 15:31:54 [01] removing ./backup-my.cnf.qp
241120 15:31:54 [01] decompressing ./xtrabackup_info.qp
241120 15:31:54 [01] removing ./xtrabackup_info.qp
241120 15:31:54 completed OK!
(3) 2차 증분 백업
[root@mac18-02 base]# /mysql/xtrabackup/bin/xtrabackup --defaults-file=/etc/my_5529.cnf --compress --user=root --password='1234' --backup --socket=/tmp/mysql_5529.sock --target-dir=/data/backup --incremental-basedir=/data/base --stream=xbstream > /data/backup/inc2.xbstream
xtrabackup: recognized server arguments: --datadir=/data/data_5529 --innodb_adaptive_hash_index=0 --innodb_io_capacity=400 --innodb_use_native_aio=1 --server-id=100 --log_bin=bin --innodb_file_per_table=1 --innodb_buffer_pool_size=500M --innodb_data_file_path=ibdata01:1024M;ibdata02:1024M;ibdata03:1024M:autoextend --innodb_write_io_threads=8 --innodb_read_io_threads=8 --innodb_doublewrite=0 --innodb_flush_log_at_trx_commit=2 --innodb_log_buffer_size=8M --innodb_log_file_size=1024M --innodb_log_files_in_group=3 --innodb_max_dirty_pages_pct=70 --innodb_flush_method=O_DIRECT
.
.
.
241120 15:33:11 [00] ...done
241120 15:33:11 [00] Compressing and streaming <STDOUT>
241120 15:33:11 [00] ...done
xtrabackup: Transaction log of lsn (300623461) to (300623461) was copied.
241120 15:33:12 completed OK!
(4) 백업데이터 확인
- inc2.xbstream 파일이 생성 되었습니다.
[root@mac18-02 base]# ls /data/backup
base.xbstream inc1.xbstream inc2.xbstream
4. 데이터 넣기
# 마지막으로 3건의 데이터를 더 넣었습니다.
# 백업이 전부 완료되고 계속 데이터는 넣어지고 있는 중이라고 가정하였습니다.
# 이것은 binlog를 통해 복구가 가능하다는 것을 확인시켜줄 내용입니다.
반응형
'MySQL > Class' 카테고리의 다른 글
xtrabackup - (5) 복구 : incremental (0) | 2024.11.26 |
---|---|
xtrabackup - (3) qpress 설치 (0) | 2024.11.24 |
xtrabackup - (2) 복구 : 기본편 (0) | 2024.11.23 |
xtrabackup - (1) 백업 : 기본편 (0) | 2024.11.22 |
Load Data : 파일 내용 넣기 (0) | 2024.11.20 |