• 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 테이블 스페이스 관리
    1. InnoDB 테이블 스페이스 생성
    2. InnoDB File-Per-Table 모드
    3. File-Per-Table 모드 활성화 및 비활성화
    4. 테이블 공간의 위치 지정
    5. 테이블 공간의 다른 서버로 복사 (이동 가능한 테이블 스페이스)
    6. 별도의 테이블 스페이스에 InnoDB Undo 로그 저장
    7. InnoDB 로그 파일의 크기 변경 및 InnoDB 테이블 스페이스의 크기 변경
    8. 공유 테이블 스페이스에서 RAW 디스크 파티션의 사용
    6. InnoDB 테이블 관리
    7. InnoDB 압축 테이블
    8. InnoDB 파일 형식 관리
    9. InnoDB Row Storage and Row Formats
    10. InnoDB 디스크 I/O 및 파일 영역 관리
    11. InnoDB와 온라인 DDL
    12. InnoDB 부팅 옵션 및 시스템 변수
    13. InnoDB의 성능
    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.5.7 InnoDB 로그 파일의 크기 변경 및 InnoDB 테이블 스페이스의 크기 변경

이 섹션에서는 InnoDB 의 Redo 로그 파일의 수 또는 크기를 변경하는 방법과 InnoDB 의 시스템 테이블 공간 의 크기를 증가 또는 감소하는 방법을 설명합니다.

InnoDB 로그 파일의 크기 나 변경

MySQL 5.6.7 이전 버전에서는 InnoDB 의 Redo 로그 파일의 수 또는 크기를 변경하려면 다음 단계를 수행합니다.

  1. innodb_fast_shutdown 가 2로 설정되어있는 경우 innodb_fast_shutdown 을 1로 설정합니다.

     mysql> SET GLOBAL innodb_fast_shutdown = 1;
    
  2. innodb_fast_shutdown 가 2로 설정되어 있지 않은지 확인한 후, MySQL 서버를 중지하고 오류없이 종료 될 (로그에 처리되지 않은 트랜잭션에 대한 정보가없는 것)을 확인합니다.

  3. 종료하는 동안 문제가 발생하여 테이블 스페이스를 복구하기 위해 오래된 로그 파일이 필요한 경우에 대비하여 이러한 로그 파일을 안전한 위치에 복사합니다.

  4. 로그 파일 디렉토리에서 오래된 로그 파일을 삭제합니다.

  5. my.cnf 를 편집하여 로그 파일의 구성을 변경합니다.

  6. MySQL을 다시 시작합니다. mysqld가 시작할 때 InnoDB 로그 파일이 존재하지 않는 것으로 나타 새 로그 파일이 만들어집니다.

MySQL 5.6.8의 시점에서는 InnoDB 로그 파일의 수 또는 크기를 변경할 때 innodb_fast_shutdown 설정 관련 않습니다. 또한 오래된 로그 파일을 제거해야 없습니다. 그러나 백업으로 오래된 로그 파일을 안전한 위치에 복사 할 수 있습니다. InnoDB 로그 파일의 수 또는 크기를 변경하려면 다음 단계를 수행합니다.

  1. MySQL 서버를 중지하고 오류없이 종료되는 것을 확인합니다.

  2. my.cnf 를 편집하여 로그 파일의 구성을 변경합니다. 로그 파일의 크기를 변경하려면 innodb_log_file_size 을 구성합니다. 로그 파일의 수를 더하려면 innodb_log_files_in_group 을 구성합니다.

  3. MySQL 서버를 다시 시작합니다.

InnoDB 에서 innodb_log_file_size 가 Redo 로그 파일의 크기와 다른 것을 감지 된 경우 로그 체크 포인트를 기록, 이전 로그 파일이 닫혀에서 삭제 된 요청 된 크기에서 새로운 파일이 만들어지고 그 새로운 로그 파일이 열립니다.

InnoDB 테이블 스페이스의 크기 증가

InnoDB 시스템 테이블 스페이스의 크기를 크게하는 가장 쉬운 방법은 처음부터 자동 확장으로 구성하는 것입니다. 테이블 공간 정의의 마지막 데이터 파일에 autoextend 속성을 지정합니다. 이는 InnoDB 가 공간이 부족하면 파일의 크기가 자동으로 8M 바이트 씩 증가합니다. innodb_autoextend_increment 시스템 변수의 값을 설정하면 증분의 크기를 변경할 수 있습니다. 이 사이즈는 M 바이트 단위로 측정됩니다.

다른 데이터 파일을 추가하면 시스템 테이블 스페이스를 정의 된 양만큼 확대 할 수 있습니다.

  1. MySQL 서버를 종료합니다.

  2. 이전의 마지막 데이터 파일이 autoextend 라는 키워드를 사용하여 정의 된 경우는 실제로 증가했다 크기에 따라 크기가 고정되어 사용되도록 정의를 변경합니다. 데이터 파일의 크기를 확인하고 그것을 1024 × 1024 바이트 (= 1M 바이트)에 가장 가까운 배수로 반올림이 반올림 크기를 innodb_data_file_path 에 명시 적으로 지정합니다.

  3. 새로운 데이터 파일을 innodb_data_file_path 의 말미에 추가합니다. 이렇게하면 옵션 파일이 자동 확장됩니다. innodb_data_file_path 에서 자동 확장으로 지정할 수는 마지막 데이터 파일뿐입니다.

  4. MySQL 서버를 다시 시작합니다.

예를 들어, 테이블 스페이스는 ibdata1 라는 하나의 자동 확장 데이터 파일 만 존재하지 않습니다.

innodb_data_home_dir =
innodb_data_file_path = /ibdata/ibdata1:10M:autoextend

이 데이터 파일은 시간이 지남에 988M 바이트까지 증가했다고 가정합니다. 다음 고정 크기가 사용되도록 원본 데이터 파일을 변경하고 새로운 자동 확장 데이터 파일을 추가 한 후 구성 행을 나타냅니다.

innodb_data_home_dir =
innodb_data_file_path = /ibdata/ibdata1:988M;/disk2/ibdata2:50M:autoextend

새로운 데이터 파일을 시스템 테이블 공간 구성에 추가 할 때 해당 파일 이름이 기존의 파일을 참조하지 않는지 확인하십시오. InnoDB 는 서버를 시작할 때 파일을 만들고 초기화합니다.

InnoDB 테이블 스페이스의 크기 감소

현재는 시스템 테이블 스페이스에서 데이터 파일을 삭제할 수 없습니다. 시스템 테이블 공간의 크기를 줄이려면 다음 단계를 사용합니다.

  1. mysqldump를 사용하여 MySQL 데이터베이스에 배치되는 InnoDB 테이블을 포함한 모든 InnoDB 테이블을 덤프합니다. 5.6의 시점에서는, MySQL 데이터베이스에 5 개의 InnoDB 테이블이 포함되어 있습니다.

    mysql> select table_name from information_schema.tables where table_schema='mysql' and engine='InnoDB';
    +----------------------+
    | table_name           |
    +----------------------+
    | innodb_index_stats   |
    | innodb_table_stats   |
    | slave_master_info    |
    | slave_relay_log_info |
    | slave_worker_info    |
    +----------------------+
    5 rows in set (0.00 sec)
          
  2. 서버를 중지합니다.

  3. ibdata 와 ib_log 파일을 포함한 모든 기존의 테이블 스페이스 파일 ( *.ibd )를 제거합니다. MySQL 데이터베이스에 배치되어있는 테이블 *.ibd 파일도 지워야합니다.

  4. InnoDB 테이블의 모든 .frm 파일을 삭제합니다.

  5. 새 테이블 스페이스를 구성합니다.

  6. 서버를 다시 시작합니다.

  7. 덤프 파일을 가져옵니다.

참고

데이터베이스에서 InnoDB 엔진 만 사용되는 경우 모든 데이터베이스를 덤프하여 서버를 중지하고 모든 데이터베이스와 InnoDB 로그 파일을 제거하고 서버를 다시 시작하여 덤프 파일을 가져온 것이 간단한 수 있습니다.


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