MariaDB/Admin

기타 기능2

알 수 없는 사용자 2015. 10. 26. 23:06
  1. 파티션
  • MariaDB 10.0에서 파티션 최대 개수가 1024개에서 8192개로 확장
  1. 명시적 파티션 지정
  • 명시적 파티션 지정 기능으로 대부분의 DML 문장과 SELECT 쿼리에서 사용할 수 있음
  1. 명시적 파티션 지정 사용법

    테이블 생성

     

    데이터 입력

     

    데이터 입력 – 파티션을 지정해서 데이터를 입력할 수 있음

     

    데이터 입력 – 파티션을 지정하여 데이터를 입력할 때, 범위와 맞지 않으면 에러 발생

     

    데이터 확인

     

    데이터 확인 – 파티션을 지정해서 데이터를 조회할 수 있음

     

    명시적으로 파티션을 지정했을 때 pruning 확인

     

    조건절로 특정 파티션에 있는 데이터를 조회했을 때 pruning 확인

     

  2. 명시적 파티션 지정 기능의 용도
    1. 옵티마이저가 파티션 프루닝을 처리하지 못할 때
    2. NOT DETERMINISTIC(함수의 결과를 예측할 수 없음-> 재사용 불가)의 함수를 조건절에 사용할 경우, 대상 파티션만 명시적으로 사용
  1. 파티션 테이블 스페이스 교체

    교체 테이블 생성

     

    교체 테이블에 데이터 적재

     

    테이블 교체

     

    교체 테이블에 적재되어있던 데이터가 파티션 테이블 p1의 대상임. 따라서 기존에 p1 파티션에 있던 데이터가 교체 대상이 됨

     

    p1 파티션 확인

     

    교체 테이블의 데이터 확인(파티션 테이블의 p1에 적재되어있던 데이터)

     

  1. 백업
  • mysqldump는 성능이나 안정성 면에서 문제가 많기 때문에 XtraBackup 도구를 주로 사용
  1. 바이너리 로그 원격 백업
    1. mysqlbinlog 유틸리티는 이진 형태로 저장된 바이너리 로그 파일을 텍스트 파일로 디코딩해서 사람이 읽을 수 있도록 해주거나 MySQL 서버에서 바이너리 로그 파일의 내용을 재실행할 수 있도록 해주는 유틸리티
    2. MariaDB10.0 버전부터 mysqlbinlog 유틸리티에 원격 서버의 바이너리 로그를 로컬 컴퓨터로 실시간 복사할 수 있는 기능이 추가
    3. 실제 mysqlbinlog의 바이너리 로그 백업 기능이 하나의 MySQL 슬레이브로 실행되는 것처럼 작동
  2. XtraBackup 소개
    1. XtraBackup 패키지 구성
    2. XtraBackup의 원리
      1. 테이블 백업 시작
      2. 테이블에 데이터 변경 발생
      3. 데이터 변경 발생한 부분은 리두 로그로 추적해서 변경된 부분만 모아둠 -> 백업된 리두 로그
      4. 백업 완료 후 백업된 리두 로그를 이용해서 데이터 변경 사항을 적용
    3. XtraBackup의 기본 사용법

      설치

      1. 백업

        백업 진행

         

        백업 경로에 폴더 생성

         

        백업 파일 확인

         

      2. 로그 적용

         

        백업 중 데이터 변경에 대한 로그 적용

         

      3. 복구

        복구 전 서비스 종료 및 데이터, 로그 파일 삭제

         

        복구 시작

         

        복구 중

         

        복구 완료

         

        복구된 파일 확인

         

      4. 서버 시작

        서버 가동

         

        데이터 확인

         

  3. XtraBackup의 기능
    1. 스트리밍 백업
      1. 로컬 디스크의 데이터 파일을 읽어서 바로 네트워크를 통해 다른 서버로 전송할 수 있는 방법
    2. 압축
      1. 트랜잭션 로그나 데이터 파일, 메타 데이터들을 quicklz 압축 알고리즘을 이용해서 압축
    3. 암호화
      1. 백업된 데이터 파일을 암호화해서 저장할 수 있는 기능 추가(AES128, AES192, AES256)
    4. 슬레이브 백업
      1. Replication 구성 시 주로 슬레이브에서 백업을 수행 -> 새로운 슬레이브를 구축하거나 마스터 및 슬레이브 서버를 복구할 때 사용할 수 있도록 마스터의 바이너리 로그 파일과 바이너리 로그 포지션을 파일로 기록할 수 있음
    5. 병렬 백업
      1. 스트리밍 백업을 수행할 때, 동시에 여러 개의 데이터 파일을 복사할 수 있는 기능
    6. 백업 속도 조절
      1. 데이터 파일 복사를 통한 백업이므로 디스크의 대역폭을 모두 소진해버릴 수 있음. 이를 보완하기 위해서 초단위로 1MB 단위의 읽고 쓰기의 수행 횟수를 설정할 수 있음
    7. 개별 테이블 복구
      1. InnoDB와 XtraDB 스토리지만 가능
      2. MariaDB 10.0 부터 테이블스페이스의 익스포트/임포트 기능 추가로 복구 가능
    8. FLUSH TABLES WITH READ LOCK 개선
      1. 마스터서버의 바이너리 로그 위치를 수집하려면 전역 잠금이 필요
      2. 잠금 명령은 다른 커넥션의 새로운 쿼리 실행을 중지시키고 기존에 실행되는 쿼리는 끝날 때까지 대기
      3. 이를 보완하기 위해 글로벌 잠금을 획득하기 위한 옵션 추가(대기/강제 종료)
  4. XtraBackup의 고급 사용법
    1. PIT(Point In Time) 복구
      1. 특정 시점까지의 데이터 복구
      2. 풀 백업이나 증분 백업이 존재해야 하며, 바이너리 로그 파일이 보존되어 있어야 함
    2. 증분 백업
      1. 직전에 수행했던 풀 백업 시점부터 변경된 데이터들만 백업
      2. 전체 데이터 파일을 읽은 후 풀 백업 시점 이후의 로그 시퀀스 번호보다 큰 것만 백업
      3. 소요 시간이 풀 백업에 비해서 빠르지 않지만, 백업 파일의 크기는 작을 수 있음
    3. 부분 백업
      1. 일부 테이블만 백업
    4. 컴팩티 백업
      1. 테이블의 데이터 영역만 백업 가능
    5. 스트리밍 백업
    6. 암호화 백업

'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