일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- kafka
- 파이어베이스
- Spark
- 머신러닝
- 카프카 성능
- firebase
- 코어/컨텍스트
- Slack File Upload
- 이미지 푸시
- 해킹
- 슬랙 파일업로드 제한
- 팀 발달 모델
- Scale Cube
- 슬랙
- 웹보안
- FCM
- Tuckman
- 슬랙 파일업로드
- 알림무시
- Slack Limit
- bag of words
- 스카우터
- 카프카
- 자연어처리 #konlpy #형태소분석
- Scouter
- Slack Rate Limit
- n-gram
- Core/Context
- 스케일 큐브
- Rate Limit
- Today
- Total
플랫폼 개발팀 기술 블로그
MariaDB : Xtrabackup 편 본문
Data Backup
DB 데이터를 다루다 보면 데이터의 양이 많아지거나 필요에 의해 백업을 해야 하는 상황이 발생하게 된다.
우선 MariaDB, MySql에서는 백업 솔루션으로Mysqldump를 기본으로 제공하고 있고 다양한 dump 옵션을 제공하고 있어 많이 사용되고 있다.
백업이라는것은 앞으로 생길수도 있는 어떠한 상황을 대비하기 위한 하나의 과정이다.
데이터를 보관한다는것을 기본 전제로 깔고 들어가고 여기에 안전하게, 신속하게 등 여러가지 옵션이 붙을 수 있다.
Xtrabackup
Xtrabackup은 MySql과 MariaDB에서 사용 할 수 있는 무료 백업 솔루션이다.
일반적인 환경이라면 기본 제공되는 Mysqldump로도 충분히 백업/복구 기능을 수행 할 수 있지만 백업 해야하는 데이터의 용량이 수십에서 수백 기가바이트급이면 이야기가 많이 달라진다. 때문에 대용량 백업 및 복원에 높은 퍼포먼스를 낼 수 있고 무료인 Xtrabackup이 많이 사용되고 있다.
Mysqldump와의 차이는 Mysqldump가 논리적 백업이라면 Xtrabackup은 물리적 백업이라고 볼 수 있다.
마치 건물 도면과 모든 재료를 하나하나 떼어내서 그대로 복원 할 수 있게 보관하는것과 건물을 통째로 복사해서 똑같이 만들어둔 것을 보관하는 느낌적인 느낌이라고 할 수 있다.
Xtrabackup 설치
이번 Xtrabackup편 에서는 Xtrabackup를 설치하고 백업 및 복구를 실습 해보는 시간을 가질 것이다.
CentOS 7.5.1804, MariaDB 10.1.37 환경에서 진행 되었다.
우선 Xtrabackup은 MariaDB에서 기본 제공되는 패키지가 아니므로 다운로드 받도록 하자
백업 시 압축 기능을 사용하려면 QPress 패키지도 같이 받도록 한다.
# yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm # yum install yum install percona-xtrabackup-24 # yum install qpress
Xtrabackup 전체 백업
압축 명령을 실행하여 MariaDB의 전체 데이터를 압축한다.
# innobackupex --defaults-file=/etc/my.cnf \ --no-lock \ --user=root \ --password='password' /root/backup/xtrabackup/
MariaDB의 전체 데이터를 압축한다.
# cd /root/backup/xtrabackup/2019-01-25_14-41-10/ # ls -l -rw-r-----. 1 root root 409 1월 25 14:41 backup-my.cnf.qp -rw-r-----. 1 root root 183071 1월 25 14:41 ibdata1.qp drwxr-x---. 2 root root 4096 1월 25 14:41 mysql drwxr-x---. 2 root root 4096 1월 25 14:41 performance_schema drwxr-x---. 2 root root 4096 1월 25 14:41 test -rw-r-----. 1 root root 113 1월 25 14:41 xtrabackup_checkpoints -rw-r-----. 1 root root 510 1월 25 14:41 xtrabackup_info.qp -rw-r-----. 1 root root 530 1월 25 14:41 xtrabackup_logfile.qp
Xtrabackup 복원준비
복원을 위해 QPress파일의 압축을 풀어준다.
# innobackupex --decompress /root/backup/xtrabackup/2019-01-25_14-41-10/
복원 전 데이터 일관성을 위하여 트랜젝션 로그파일을 적용하고 mariadb 서비스를 종료한다.
# innobackupex --defaults-file=/etc/my.cnf --apply-log /root/backup/xtrabackup/2019-01-25_14-41-10/ # systemctl stop mariadb # cp -r /var/lib/mysql/ /root/backup/mariadb/20181214/ # rm -rf /var/lib/mysql/*
Xtrabackup 데이터 복원
복원명령을 실행하여 데이터 복원을 진행 후 mariadb 서비스를 시작한다.
# innobackupex --defaults-file=/etc/my.cnf --datadir=/var/lib/mysql/ --copy-back /root/backup/xtrabackup/2019-01-25_14-41-10/ # chown -R mysql:mysql /var/lib/mysql/* # systemctl start mariadb
복원명령을 실행 후 파일이 제대로 복구 되었는지 확인한다.
# cd /var/lib/mysql/ # ls -l -rw-rw----. 1 mysql mysql 8192 1월 25 14:56 aria_log.00000001 -rw-rw----. 1 mysql mysql 52 1월 25 14:56 aria_log_control -rw-r-----. 1 mysql mysql 50331648 1월 25 14:56 ib_logfile0 -rw-r-----. 1 mysql mysql 50331648 1월 25 14:56 ib_logfile1 -rw-r-----. 1 mysql mysql 12582912 1월 25 14:56 ibdata1 -rw-r-----. 1 mysql mysql 12582912 1월 25 14:56 ibtmp1 -rw-rw----. 1 mysql mysql 5 1월 25 14:56 localhost.pid -rw-rw----. 1 mysql mysql 0 1월 25 14:56 multi-master.info drwxr-x---. 2 mysql mysql 4096 1월 25 14:56 mysql srwxrwxrwx. 1 mysql mysql 0 1월 25 14:56 mysql.sock drwxr-x---. 2 mysql mysql 4096 1월 25 14:56 performance_schema -rw-rw----. 1 mysql mysql 24576 1월 25 14:56 tc.log drwxr-x---. 2 mysql mysql 4096 1월 25 14:56 test -rw-r-----. 1 mysql mysql 532 1월 25 14:56 xtrabackup_info -rw-r-----. 1 mysql mysql 1 1월 25 14:56 xtrabackup_master_key_id
MariaDB : Xtrabackup 편
끝.
'Article' 카테고리의 다른 글
JAVA APM Scouter 활용 - 2부 스카우터 기능 활용 및 페이퍼 플러그인 (0) | 2019.01.31 |
---|---|
[FCM] #2. Firebase 프로젝트 생성 및 Android 앱 FCM 설정 (0) | 2019.01.31 |
[FCM] #1. 소개 및 메시지 (0) | 2019.01.24 |
JAVA APM Scouter 활용 - 1부 APM 선정과 스카우터의 지표 소개 (4) | 2019.01.24 |
SpringBoot2 OAuth2 구현과 LDAP 연동 (0) | 2019.01.17 |