- 파티션
- MariaDB 10.0에서 파티션 최대 개수가 1024개에서 8192개로 확장
- 명시적 파티션 지정
- 명시적 파티션 지정 기능으로 대부분의 DML 문장과 SELECT 쿼리에서 사용할 수 있음
- 명시적 파티션 지정 사용법
테이블 생성
데이터 입력
데이터 입력 – 파티션을 지정해서 데이터를 입력할 수 있음
데이터 입력 – 파티션을 지정하여 데이터를 입력할 때, 범위와 맞지 않으면 에러 발생
데이터 확인
데이터 확인 – 파티션을 지정해서 데이터를 조회할 수 있음
명시적으로 파티션을 지정했을 때 pruning 확인
조건절로 특정 파티션에 있는 데이터를 조회했을 때 pruning 확인
- 명시적 파티션 지정 기능의 용도
- 옵티마이저가 파티션 프루닝을 처리하지 못할 때
- NOT DETERMINISTIC(함수의 결과를 예측할 수 없음-> 재사용 불가)의 함수를 조건절에 사용할 경우, 대상 파티션만 명시적으로 사용
- 파티션 테이블 스페이스 교체
교체 테이블 생성
교체 테이블에 데이터 적재
테이블 교체
교체 테이블에 적재되어있던 데이터가 파티션 테이블 p1의 대상임. 따라서 기존에 p1 파티션에 있던 데이터가 교체 대상이 됨
p1 파티션 확인
교체 테이블의 데이터 확인(파티션 테이블의 p1에 적재되어있던 데이터)
- 백업
- mysqldump는 성능이나 안정성 면에서 문제가 많기 때문에 XtraBackup 도구를 주로 사용
- 바이너리 로그 원격 백업
- mysqlbinlog 유틸리티는 이진 형태로 저장된 바이너리 로그 파일을 텍스트 파일로 디코딩해서 사람이 읽을 수 있도록 해주거나 MySQL 서버에서 바이너리 로그 파일의 내용을 재실행할 수 있도록 해주는 유틸리티
- MariaDB10.0 버전부터 mysqlbinlog 유틸리티에 원격 서버의 바이너리 로그를 로컬 컴퓨터로 실시간 복사할 수 있는 기능이 추가
- 실제 mysqlbinlog의 바이너리 로그 백업 기능이 하나의 MySQL 슬레이브로 실행되는 것처럼 작동
- XtraBackup 소개
- XtraBackup 패키지 구성
- XtraBackup의 원리
- 테이블 백업 시작
- 테이블에 데이터 변경 발생
- 데이터 변경 발생한 부분은 리두 로그로 추적해서 변경된 부분만 모아둠 -> 백업된 리두 로그
- 백업 완료 후 백업된 리두 로그를 이용해서 데이터 변경 사항을 적용
- XtraBackup의 기본 사용법
설치
- 백업
백업 진행
백업 경로에 폴더 생성
백업 파일 확인
- 로그 적용
백업 중 데이터 변경에 대한 로그 적용
- 복구
복구 전 서비스 종료 및 데이터, 로그 파일 삭제
복구 시작
복구 중
복구 완료
복구된 파일 확인
- 서버 시작
서버 가동
데이터 확인
- XtraBackup의 기능
- 스트리밍 백업
- 로컬 디스크의 데이터 파일을 읽어서 바로 네트워크를 통해 다른 서버로 전송할 수 있는 방법
- 압축
- 트랜잭션 로그나 데이터 파일, 메타 데이터들을 quicklz 압축 알고리즘을 이용해서 압축
- 암호화
- 백업된 데이터 파일을 암호화해서 저장할 수 있는 기능 추가(AES128, AES192, AES256)
- 슬레이브 백업
- Replication 구성 시 주로 슬레이브에서 백업을 수행 -> 새로운 슬레이브를 구축하거나 마스터 및 슬레이브 서버를 복구할 때 사용할 수 있도록 마스터의 바이너리 로그 파일과 바이너리 로그 포지션을 파일로 기록할 수 있음
- 병렬 백업
- 스트리밍 백업을 수행할 때, 동시에 여러 개의 데이터 파일을 복사할 수 있는 기능
- 백업 속도 조절
- 데이터 파일 복사를 통한 백업이므로 디스크의 대역폭을 모두 소진해버릴 수 있음. 이를 보완하기 위해서 초단위로 1MB 단위의 읽고 쓰기의 수행 횟수를 설정할 수 있음
- 개별 테이블 복구
- InnoDB와 XtraDB 스토리지만 가능
- MariaDB 10.0 부터 테이블스페이스의 익스포트/임포트 기능 추가로 복구 가능
- FLUSH TABLES WITH READ LOCK 개선
- 마스터서버의 바이너리 로그 위치를 수집하려면 전역 잠금이 필요
- 잠금 명령은 다른 커넥션의 새로운 쿼리 실행을 중지시키고 기존에 실행되는 쿼리는 끝날 때까지 대기
- 이를 보완하기 위해 글로벌 잠금을 획득하기 위한 옵션 추가(대기/강제 종료)
- XtraBackup의 고급 사용법
- PIT(Point In Time) 복구
- 특정 시점까지의 데이터 복구
- 풀 백업이나 증분 백업이 존재해야 하며, 바이너리 로그 파일이 보존되어 있어야 함
- 증분 백업
- 직전에 수행했던 풀 백업 시점부터 변경된 데이터들만 백업
- 전체 데이터 파일을 읽은 후 풀 백업 시점 이후의 로그 시퀀스 번호보다 큰 것만 백업
- 소요 시간이 풀 백업에 비해서 빠르지 않지만, 백업 파일의 크기는 작을 수 있음
- 부분 백업
- 일부 테이블만 백업
- 컴팩티 백업
- 테이블의 데이터 영역만 백업 가능
- 스트리밍 백업
- 암호화 백업
'MariaDB > Admin' 카테고리의 다른 글
[MariaDB][Admin] DB 생성 과 테이블 조작(DDL, DML) (0) | 2016.08.07 |
---|---|
레플리케이션 (0) | 2015.10.27 |
[MariaDB][Admin]스토리지 엔진 - InnoDB (0) | 2015.10.20 |
스토리지 엔진 2 (0) | 2015.10.20 |
MariaDB 최적화 1 (0) | 2015.10.14 |