• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.6 한글메뉴얼) [close]
  • 1. MySQL 5.6 새로운 기능
  • 2. MySQL 설치 및 업그레이드
  • 1. 일반적인 설치 가이드
    2. 일반적인 바이너리를 사용하여 MySQL의 Unix / Linux에 설치
    3. Microsoft Windows에 MySQL 설치
    4. OS X에 MySQL 설치
    5. Linux에 MySQL 설치
    6. Unbreakable Linux Network (ULN)를 사용한 MySQL 설치
    7. Solaris 및 OpenSolaris에 MySQL을 설치
    8. FreeBSD에 MySQL 설치
    9. Installing MySQL from Source
    10. 설치 후 설정 및 테스트
    11. MySQL 업그레이드 및 다운 그레이드
    1. MySQL 업그레이드
    2. MySQL 다운 그레이드
    3. 테이블 또는 인덱스 재구성이 필요한지 여부 확인
    4. 테이블 또는 인덱스를 다시 만들거나 복구
    5. MySQL 데이터베이스를 다른 시스템에 복사
    12. 환경 변수
    13. Perl 설치에 대한 설명
  • 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 스토리지 엔진
  • 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 새로운 기능

2.11.3 테이블 또는 인덱스 재구성이 필요한지 여부 확인

바이너리 업그레이드 또는 바이너리 다운 그레이드는 테이블을 덤프하고 다시로드하지 않고 버전의 MySQL을 기존 버전에 "in-place"에서 설치합니다.

  1. 기존 버전의 서버가 동작하고있는 경우는 그것을 중지합니다.

  2. 다른 버전의 MySQL을 설치합니다. 새 버전이 원래 버전보다 최신 경우 업그레이드가 오래된 경우 다운 그레이드됩니다.

  3. 새로운 버전의 서버를 시작합니다.

종종 MySQL의 이전 버전의 테이블은 새 버전에서 문제없이 사용할 수 있습니다. 그러나이 섹션에서 설명한대로 테이블 또는 테이블의 인덱스를 다시 작성해야 할 것 같은 변경이 발생할 수도 있습니다. 여기에서 설명하는 문제 중 하나의 영향을받는 테이블이있는 경우는 필요에 따라 테이블 또는 인덱스를 섹션 2.11.4 "테이블 또는 인덱스를 다시 만들거나 복구" 에서 설명한 절차를 사용하여 다시 구축합니다.

테이블의 비 호환성

ARCHIVE 테이블을 포함하는 MySQL 5.0 설치에서 MySQL 5.1로 바이너리 업그레이드 후이 테이블에 액세스하면 mysql_upgrade 또는 CHECK TABLE ... FOR UPGRADE 를 실행되어있는 경우에도 서버가 충돌합니다. 이 문제를 해결하려면 업그레이드 전에 mysqldump를 사용하여 모든 ARCHIVE 테이블을 덤프하고 업그레이드 후에는 MySQL 5.1에 다시로드합니다. MySQL 5.1에서 5.0으로 바이너리 다운 그레이드에서도 같은 문제가 발생합니다.

업그레이드 문제는 MySQL 5.6.4에서 수정되어 있습니다. 서버는 MySQL 5.0에서 작성된 ARCHIVE 테이블을 엽니 다. 그러나 계속 권장되는 업그레이드 절차는 업그레이드 전에 5.0 ARCHIVE 테이블을 덤프하고 업그레이드 후 다시로드하는 방법입니다.

인덱스의 비 호환성

MySQL 5.6.3에서는 ROW_FORMAT=DYNAMIC 또는 ROW_FORMAT=COMPRESSED 을 사용하는 InnoDB 테이블은 인덱스 프리픽스 키의 길이 제한은 767 바이트에서 3072 바이트로 증가했습니다. 자세한 내용은 섹션 14.6.7 "InnoDB 테이블에서의 제한" 을 참조하십시오. 이 변경은 MySQL 5.5.14에 포팅되어 있습니다. 이러한 이상 릴리스 중 하나에서 길이 제한이 짧은 이전 버전으로 다운 그레이드 할 경우 인덱스 프리픽스 키를 767 바이트로 잘릴 수 있습니다. 그렇지 않으면 다운 그레이드가 실패 할 수 있습니다. 이 문제는 다운 그레이드 서버에서 구성 옵션 innodb_large_prefix 이 유효했던 경우에만 발생할 수 있습니다.

테이블의 덤프 및 리로드를 실행하지 않고 바이너리 업그레이드를 수행하는 경우, MySQL 4.1에서 5.1로 직접 업그레이드 할 수 없습니다. 이것은 MySQL 5.0의 MyISAM 테이블 인덱스의 형식과 호환되지 않는 변경에 의한 것입니다. MySQL 4.1에서 5.0으로 업그레이드하고 모든 MyISAM 테이블을 복구하십시오. 그 후, MySQL 5.0에서 5.1로 업그레이드. 테이블을 확인하고 복구합니다.

문자 세트 또는 데이터 정렬 처리의 변경으로 인해 문자 집합의 순서가 변경 될 수 있으며, 따라서 영향을받는 문자 세트 또는 데이터 정렬을 사용하는 인덱스 항목의 순서가 잘못 될 수 있습니다. 이러한 변경에서 몇 가지 문제가 발생할 수 있습니다.

  • 비교 결과가 이전의 결과와 다른

  • 인덱스 항목의 순서 지정이 잘못되어 일부 인덱스 값을 찾을 수 없습니다

  • ORDER BY 결과의 순서화가 잘못

  • CHECK TABLE 에 의해보고되는 테이블을 복구 할 필요가있다

이러한 문제의 해결 방법은 인덱스를 삭제하고 다시 만들거나 전체 테이블을 덤프하고 다시로드하면 영향을받는 문자 세트 또는 데이터 정렬을 사용하는 인덱스를 다시 작성하는 것입니다. 경우에 따라서는 영향을받는 컬럼을 변경하여 다른 데이터 정렬을 사용하도록 할 수 있습니다. 인덱스 재 작성 내용은 섹션 2.11.4 "테이블 또는 인덱스를 다시 만들거나 복구" 를 참조하십시오.

다시 구축해야하는 인덱스가 테이블에 있는지 여부를 확인하려면 다음 목록을 참조하십시오. 이 목록은 인덱스의 재 구축이 필요한 문자 집합 또는 데이터 정렬 변경이 도입 된 MySQL 버전을 보여줍니다. 각 항목은 변경 한 버전과 그 변경의 영향을받는 문자 세트 또는 데이터 정렬을 보여줍니다. 변경이 특정 버그 리포트에 연결된 경우 버그 번호가 표시되어 있습니다.

이 목록은 바이너리 업그레이드 및 바이너리 다운 그레이드에 모두 적용됩니다. 예를 들어, Bug # 27877는 MySQL 5.1.24에서 수정 되었기 때문에 5.1.24 이전 버전에서 5.1.24 이상 버전으로 업그레이드 및 5.1.24 이상에서 5.1.24 이전 버전으로 다운 그레이드 에 적용됩니다.

많은 경우 CHECK TABLE ... FOR UPGRADE 를 사용하여 인덱스를 다시 작성해야하는 테이블을 식별 할 수 있습니다. 다음 메시지가보고됩니다.

 Table upgrade required.
 Please do "REPAIR TABLE`tbl_name`"or dump / reload to fix it!

이러한 경우에는 mysqlcheck --check-upgrade 또는 mysql_upgrade도 사용할 수 있습니다. 이들은 CHECK TABLE 을 실행합니다. 그러나 CHECK TABLE 을 사용할 수는 다운 그레이드가 아닌 업그레이드 뒤뿐입니다. 또한 CHECK TABLE 은 모든 스토리지 엔진에 적용 할 수있는 것은 없습니다. CHECK TABLE 가 지원하는 스토리지 엔진 자세한 내용은 섹션 13.7.2.2 "CHECK TABLE 구문" 을 참조하십시오.

이러한 변경으로 인해 인덱스의 재 구축이 필요합니다.

  • MySQL 5.1.24 (Bug # 27877)

    'ß' LATIN SMALL LETTER SHARP S (독일어)를 포함한 열 utf8_general_ci 또는 ucs2_general_ci 데이터 정렬을 사용하는 인덱스에 영향을줍니다. 이 버그 수정은 원래 데이터 정렬 오류가 수정되었습니다했지만 'ß' 가 이전 다르다는 비교 결과였다 문자 같다는 비교 결과가된다는 비 호환성이 도입되었습니다.

    영향을받는 테이블은 MySQL 5.1.30에서 CHECK TABLE ... FOR UPGRADE 검출 할 수 있습니다 (Bug # 40053를 참조하십시오).

    이 문제의 해결 방법은 MySQL 5.1.62,5.5.21 및 5.6.5에서 구현되어 있습니다. 해결 방법은 영향을받는 열을 utf8_general_mysql500_ci 및 ucs2_general_mysql500_ci 데이터 정렬을 사용하도록 변경할 수 있습니다. 이 데이터 정렬은 원래 5.1.24 이전 utf8_general_ci 및 ucs2_general_ci 순서를 유지합니다.

  • MySQL 5.0.48,5.1.23 (Bug # 27562)

    '`' GRAVE ACCENT, '[' LEFT SQUARE BRACKET, '\' REVERSE SOLIDUS, ']' RIGHT SQUARE BRACKET, '~' TILDE 중 하나의 문자를 포함하는 컬럼에서 ascii_general_ci 데이터 정렬을 사용하는 인덱스에 영향이 있습니다

    영향을받는 테이블은 MySQL 5.1.29에서 CHECK TABLE ... FOR UPGRADE 검출 할 수 있습니다 (Bug # 39585를 참조하십시오).

  • MySQL 5.0.48,5.1.21 (Bug # 29461)

    eucjpms , euc_kr , gb2312 , latin7 , macce , ujis 중 하나의 문자 집합을 사용하는 컬럼의 인덱스에 영향이 있습니다

    영향을받는 테이블은 MySQL 5.1.29에서 CHECK TABLE ... FOR UPGRADE 검출 할 수 있습니다 (Bug # 39585를 참조하십시오).


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