• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.6 한글메뉴얼) [close]
  • 1. MySQL 5.6 새로운 기능
  • 2. MySQL 설치 및 업그레이드
  • 3. MySQL Tutorial
  • 4. MySQL 프로그램
  • 5. MySQL 서버관리
  • 6. 보안
  • 7. 백업 및 복구
  • 8. 최적화
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 11. 데이터형(Data Types)
  • 12. 함수와 연산자
  • 13. SQL 문법
  • 14. InnoDB 스토리지 엔진
  • 1. InnoDB 소개
    2. InnoDB의 개념과 아키텍처
    3. InnoDB 구성
    4. InnoDB 관리
    5. InnoDB 테이블 스페이스 관리
    6. InnoDB 테이블 관리
    7. InnoDB 압축 테이블
    8. InnoDB 파일 형식 관리
    9. InnoDB Row Storage and Row Formats
    10. InnoDB 디스크 I/O 및 파일 영역 관리
    11. InnoDB와 온라인 DDL
    12. InnoDB 부팅 옵션 및 시스템 변수
    13. InnoDB의 성능
    1. InnoDB 버퍼 풀 구성
    1. InnoDB 버퍼 풀의 인출 (미리 읽기) 구성
    2. InnoDB 버퍼 풀 플러시 빈도 구성
    3. 버퍼 풀을 스캔에 견딜 수 있도록 한다
    4. 다중 버퍼 풀 인스턴스 사용
    5. 재기동을 고속화하기 위한 InnoDB버퍼 풀의 프리 로드
    6. InnoDB 버퍼 풀 플래시 튜닝
    2. InnoDB 상호 배타적 잠금 및 읽기 / 쓰기 잠금 구현
    3. InnoDB를위한 메모리 할당 구성
    4. InnoDB 변경 버퍼링 구성
    5. InnoDB의 스레드 병렬성 구성
    6. InnoDB 백그라운드 I/O 스레드 수 구성
    7. 그룹 커밋
    8. InnoDB 마스터 스레드의 I/O 속도의 구성
    9. InnoDB 스핀 루프에서 PAUSE 명령 사용
    10. 스핀 록 폴링 구성
    11. InnoDB의 MySQL 성능 스키마와 통합
    12. 다중 롤백 세그먼트에 의한 확장성 향상
    13. InnoDB 퍼지 스케줄링 구성
    14. InnoDB의 읽기 전용 트랜잭션 최적화
    15. 체크섬의 고속화를위한 CRC32 체크섬 알고리즘의 사용
    16. 옵티 마이저 통계
    17. InnoDB 테이블에 ANALYZE TABLE의 복잡성 추정
    14. InnoDB INFORMATION_SCHEMA 테이블
    15. InnoDB 모니터
    16. InnoDB 백업 및 복구
    17. InnoDB와 MySQL 복제
    18. InnoDB 및 memcached의 통합
    19. InnoDB 문제 해결
  • 15. 기타 스토리지 엔진
  • 16. 고가용성 및 확장성
  • 17. 리플리케이션
  • 18. MySQL Cluster
  • 19. 파티셔닝
  • 20. Stored Programs and Views
  • 21. INFORMATION_SCHEMA
  • 22. PERFORMANCE SCHEMA
  • 23. 컨넥터 및 API
  • 24. MySQL 확장
  • 25. MySQL Enterprise Edition
  • 26. MySQL Workbench
  • 27. 제약 및 제한
  • 28. MySQL 5.7 새로운 기능

14.13.1.5 재기동을 고속화하기 위한 InnoDB버퍼 풀의 프리 로드

특히 큰 InnoDB 버퍼 풀 을 가진 인스턴스의 경우 서버를 다시 시작한 후 매우 긴 워밍업 기간을 방지하기 위해 서버가 종료 될 때 InnoDB 버퍼 풀의 상태를 저장하고 서버 시작시 버퍼 풀을 같은 상태로 복원 할 수 있습니다.

바쁜 서버를 다시 시작한 후 일반적으로 InnoDB 버퍼 풀에 있던 디스크 페이지가 메모리에 반환됨에 따라 (동일한 데이터에 대한 쿼리 나 업데이트가 실행되면서) 처리량이 꾸준히 향상 워밍업 기간이 존재합니다. 버퍼 풀을 ​​종료 이전 상태로 복원하는 기능은 DML 작업의 해당 행에 대한 액세스를 기다리는 것이 아니라 다시 시작하기 전에 버퍼 풀에 있던 디스크 페이지를 즉시 다시로드 할 수 있기 때문에 워밍업 기간 이 짧아집니다. I / O 요청을 큰 일괄 적으로 수행 할 수 있기 때문에 I / O 전체가 더 빨라집니다. 페이지로드는 백그라운드에서 실행되므로 데이터베이스의 시작이 지연 될 수는 없습니다.

버퍼 풀의 상태를 종료 할 때 저장하고 시작할 때 복원 할뿐만 아니라 서버의 실행 중에도 버퍼 풀의 상태를 언제든지 저장 및 복원 할 수 있습니다. 예를 들어, 정상 상태의 워크로드에서 안정적인 처리량에 도달 한 후 버퍼 풀의 상태를 저장할 수 있습니다. 그 조작 자체에만 필요한 데이터 페이지를 버퍼 풀로 이동하는 보고서 또는 유지 보수 작업을 수행 한 후 나 비표준 워크로드를 사용하는 다른 기간 후에 버퍼 풀의 이전 상태를 복원 할 수 있습니다.

버퍼 풀 자체의 크기는 무엇 G 바이트도있을 수 있지만, InnoDB 가 디스크에 저장하는 데이터는 그에 비해 매우 적은 양입니다. 해당 페이지를 찾기 위해 필요한 테이블 스페이스 ID 및 페이지 ID 만 디스크에 저장됩니다. 이 정보는 INNODB_BUFFER_PAGE_LRU INFORMATION_SCHEMA 테이블에서 검색됩니다. 기본적으로 테이블 스페이스 ID 및 페이지 ID 데이터는 InnoDB 데이터 디렉토리에 저장되는 ib_buffer_pool 라는 파일에 저장됩니다. 이 파일 이름은 innodb_buffer_pool_filename 구성 매개 변수를 사용하여 변경할 수 있습니다.

기반이되는 메커니즘은 덤프 및로드 작업을 수행하기 위해 파견되는 백그라운드 스레드가 포함되어 있습니다.

압축 테이블에서 디스크 페이지는 그 압축 된 형식으로 버퍼 풀로드됩니다. DML 작업 과정에서 페이지의 내용이 액세스되면 압축 해제가 정상적으로 실행됩니다. 압축 해제는 CPU를 많이 사용하는 프로세스이기 때문에 병렬로 버퍼 풀의 복원 작업을 수행하는 단일 스레드가 아닌 연결 스레드 중 하나에서 작업을 수행하는 것이 효율적입니다.

기본적으로 버퍼 풀의 상태는 InnoDB 데이터 디렉토리에 저장되는 ib_buffer_pool 라는 파일에 저장됩니다. 이 파일 이름은 innodb_buffer_pool_filename 구성 매개 변수를 사용하여 변경할 수 있습니다.

버퍼 풀의 상태를 저장

서버가 종료 될 때 InnoDB 버퍼 풀의 상태를 저장하려면 다음 문을 실행합니다.

  SET GLOBAL innodb_buffer_pool_dump_at_shutdown = ON; 

MySQL 서버를 실행하는 동안 InnoDB 버퍼 풀의 상태를 저장하려면 다음 문을 실행합니다.

  SET GLOBAL innodb_buffer_pool_dump_now = ON; 
버퍼 풀의 상태 복원

서버 시작시 InnoDB 버퍼 풀의 상태를 복원하려면 서버를 시작할 때 --innodb_buffer_pool_load_at_startup 옵션을 지정합니다.

  mysqld --innodb_buffer_pool_load_at_startup = ON; 

MySQL의 실행 중에 InnoDB 버퍼 풀의 상태를 복원하려면 다음 문을 실행합니다.

  SET GLOBAL innodb_buffer_pool_load_now = ON; 
버퍼 풀 덤프 진행률 표시

InnoDB 버퍼 풀의 상태를 디스크에 저장하는 동안 진행률을 표시하려면 다음 옵션 중 하나를 사용합니다.

  SHOW STATUS LIKE 'innodb_buffer_pool_dump_status'; 

또는

  SELECT variable_value FROM information_schema.global_status WHERE
 variable_name = 'INNODB_BUFFER_POOL_DUMP_STATUS'; 

작업이 아직 완료되지 않은 경우 "not started"가 반환됩니다. 작업이 완료되는 경우, 완료 시간이 출력됩니다 (예 : Finished at 110505 12:18:02). 작업이 진행중인 경우에는 상태 정보가 표시됩니다 (예를 들어, Dumping buffer pool 5/7, page 237/2873).

버퍼 풀로드 진행률 표시

InnoDB 버퍼 풀을로드 할 때 진행률을 표시하려면 다음 옵션 중 하나를 사용합니다.

  SHOW STATUS LIKE 'innodb_buffer_pool_load_status'; 

또는

  SELECT variable_value FROM information_schema.global_status WHERE
 variable_name = 'INNODB_BUFFER_POOL_LOAD_STATUS'; 

작업이 아직 완료되지 않은 경우 "not started"가 반환됩니다. 작업이 완료되는 경우, 완료 시간이 출력됩니다 (예 : Finished at 110505 12:23:24). 작업이 진행중인 경우에는 상태 정보가 표시됩니다 (예를 들어, Loaded 123/22301 pages).

버퍼 풀로드 중지

버퍼 풀로드 작업을 중단하려면 다음 문을 실행합니다.

  SET innodb_buffer_pool_load_abort = ON; 


서울시 강남구 영동대로 602 6층
TEL: 02-6061-0006  /  E: csr@mysqlkorea.com
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved