xtrabackup - (3) qpress 설치

2024. 11. 24. 00:14MySQL/Class

반응형

# compress 옵션을 사용하면 *.qp 파일이 생깁니다. 처음에는 이게 뭔가 했지만 qpress 라는 압축 파일이라는 것을 알게 되었습니다.

 - compress 옵션은 적용되면서 decompress 옵션을 적용하려면 qpress를 설치 해야만 된다는게 살짝 이해가 되지는 않습니다.

 

(1) qpress 설치

- decompress 옵션은 qpress 툴을 사용해야 합니다.
- qpress 툴은 percona-release 패키지 구성 툴을 사용하여 설치할 수 있습니다.

 

# 다운로드 : https://repo.percona.com/yum/percona-release-latest.noarch.rpm

$ rpm -ivh percona-release-latest.noarch.rpm
$ percona-release enable tools
$ yum install qpress
# percona-release-latest.noarch.rpm 설치
[root@mac18-01 sf_Downloads]# rpm -ivh percona-release-latest.noarch.rpm 
경고: percona-release-latest.noarch.rpm: Header V4 RSA/SHA256 Signature, key ID 8507efa5: NOKEY
준비 중...                                                                (100################################# [100%]
Updating / installing...
   1:percona-release-1.0-29                                             (################################# [100%]
* Enabling the Percona Release repository
<*> All done!
* Enabling the Percona Telemetry repository
<*> All done!
* Enabling the PMM2 Client repository
<*> All done!
The percona-release package now contains a percona-release script that can enable additional repositories for our newer products.

Note: currently there are no repositories that contain Percona products or distributions enabled. We recommend you to enable Percona Distribution repositories instead of individual product repositories, because with the Distribution you will get not only the database itself but also a set of other componets that will help you work with your database.

For example, to enable the Percona Distribution for MySQL 8.0 repository use:

  percona-release setup pdps8.0

Note: To avoid conflicts with older product versions, the percona-release setup command may disable our original repository for some products.

For more information, please visit:
  https://docs.percona.com/percona-software-repositories/percona-release.html


# enable tool
[root@mac18-01 sf_Downloads]# percona-release enable tools
* Enabling the Percona Tools repository
<*> All done!


# qpress 설치
[root@mac18-01 sf_Downloads]# yum install qpress
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.elice.io
 * extras: mirror.elice.io
 * updates: mirror.elice.io
http://mirror.elice.io/centos/7.9.2009/os/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found
Trying other mirror.
To address this issue please refer to the below wiki article 

https://wiki.centos.org/yum-errors

If above article doesn't help to resolve this issue please use https://bugs.centos.org/.

base                                              | 3.6 kB     00:00     
http://mirror.elice.io/centos/7.9.2009/extras/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found
Trying other mirror.
extras                                            | 2.9 kB     00:00     
http://mirror.elice.io/centos/7.9.2009/updates/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found
Trying other mirror.
updates                                           | 2.9 kB     00:00     
Resolving Dependencies
--> Running transaction check
---> Package qpress.x86_64 0:11-3.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=========================================================================
 Package     Arch        Version         Repository                 Size
=========================================================================
Installing:
 qpress      x86_64      11-3.el7        tools-release-x86_64       32 k

Transaction Summary
=========================================================================
Install  1 Package

Total download size: 32 k
Installed size: 32 k
Is this ok [y/d/N]: y
Downloading packages:
경고: /var/cache/yum/x86_64/7/tools-release-x86_64/packages/qpress-11-3.el7.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 8507efa5: NOKEY
Public key for qpress-11-3.el7.x86_64.rpm is not installed
qpress-11-3.el7.x86_64.rpm                          |  32 kB   00:00     
Retrieving key from file:///etc/pki/rpm-gpg/PERCONA-PACKAGING-KEY
Importing GPG key 0x8507EFA5:
 Userid     : "Percona MySQL Development Team (Packaging key) <mysql-dev@percona.com>"
 Fingerprint: 4d1b b29d 63d9 8e42 2b21 13b1 9334 a25f 8507 efa5
 Package    : percona-release-1.0-29.noarch (installed)
 From       : /etc/pki/rpm-gpg/PERCONA-PACKAGING-KEY
Is this ok [y/N]: y
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Warning: RPMDB altered outside of yum.
  Installing : qpress-11-3.el7.x86_64                                1/1 
  Verifying  : qpress-11-3.el7.x86_64                                1/1 

Installed:
  qpress.x86_64 0:11-3.el7                                               

Complete!
출처: https://goodgods.tistory.com/909 [개발은 너무해:티스토리]

 

(2) xtrabackup 버전 체크

- decompress 옵션을 사용 할 때 --remove-original 옵션도 함께 사용을 합니다. 이것은 압축 파일을 삭제해 주는 옵션입니다.

그러나 압축은 풀렸는데 --remove-original 옵션을 사용하였음에도 불구하고 *.qp파일이 삭제가 안되는 경우가 있었습니다.

이유는 2.4.6 이상 버전에만 지원을 한다고 합니다. 저의 버전은 2.4.2 버전이라서 새 버전으로 설치하였습니다.

 

현재 버전에서 --remove-original 옵션이 있는지는 --help 명령어를 사용하여 체크보시길 바랍니다.

xtrabackup --help

만약 버전이 낮다면 상위 버전을 새롭게 설치하는 것을 추천드립니다.

 

(3) 나의 삽질

increment 와 compress를 통해서 백업 작업을 진행하였을때 작업 로그들에서 마지막에 OK, Complete 가 보여서 정상적으로 백업이 진행되었고 압축도 제대로 풀리는 것을 보고 정상적으로 처리가 된 줄만 알았습니다.

그러나 복구과정에 계속 오류를 내뱉고 있어서 같은 작업을 여러번 반복 했던 것 같습니다.

문제는 qpress가 설치가 안되어있고, 압축도 제대로 풀리지 않은 상태에서 증분백업과 복구를 시도하려고 했던 것입니다. 

문제를 찾는데 너무 오래 걸렸습니다. 겨우 제대로 작업을 진행 할 수 있었습니다.

 

(4) 예시

이제 xtrabackup의 compress를 위해서 준비작업은 다 끝난 것 같으니, 다음에는 compress를 통해 증분 백업과 복구에 대해 설명해 보도록 하겠습니다.

아래 예시는 압축과 압축풀기에 대한 예시이니, 참고용으로만 봐주시면 될 것 같습니다.

# 압축하며 백업
[root@mac18-02 backup_decompress]# /mysql/xtrabackup/bin/xtrabackup --defaults-file=/etc/my_5529.cnf --compress --user=xtra --password='1234' --backup --socket=/tmp/mysql_5529.sock --target-dir=/data/backup --incremental-basedir=/data/backup_decompress --stream=xbstream > /data/backup/inc1.xbstream
241120 13:09:37  version_check Connecting to MySQL server with DSN 'dbi:mysql:;mysql_read_default_group=xtrabackup;port=3306;mysql_socket=/tmp/mysql_5529.sock' as 'xtra'  (using password: YES).
.
.
.
241120 13:19:02 [00] Compressing and streaming backup-my.cnf
241120 13:19:02 [00]        ...done
241120 13:19:02 [00] Compressing and streaming xtrabackup_info
241120 13:19:02 [00]        ...done
xtrabackup: Transaction log of lsn (300618256) to (300618256) was copied.
241120 13:19:02 completed OK!

# increment 백업을 위해 base 파일 압축풀기
[root@mac18-02 backup_decompress]# /mysql/xtrabackup/bin/xbstream -x < /data/backup/base.xbstream 
[root@mac18-02 backup_decompress]# 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

[root@mac18-02 backup_decompress]# /mysql/xtrabackup/bin/xtrabackup --decompress --target_dir=/data/backup/mysql/xtrabackup/bin/xtrabackup version 2.4.2 based on MySQL server 5.7.11 Linux (x86_64) (revision id: 8e86a84)
241120 13:07:49 completed OK!

 

반응형

'MySQL > Class' 카테고리의 다른 글

xtrabackup - (5) 복구 : incremental  (0) 2024.11.26
xtrabackup - (4) 백업 : incremental  (2) 2024.11.25
xtrabackup - (2) 복구 : 기본편  (0) 2024.11.23
xtrabackup - (1) 백업 : 기본편  (0) 2024.11.22
Load Data : 파일 내용 넣기  (0) 2024.11.20