• 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의 성능
    14. InnoDB INFORMATION_SCHEMA 테이블
    15. InnoDB 모니터
    16. InnoDB 백업 및 복구
    17. InnoDB와 MySQL 복제
    18. InnoDB 및 memcached의 통합
    19. InnoDB 문제 해결
    1. InnoDB의 I/O 문제 해결
    2. InnoDB 복구 강제 실행
    3. InnoDB 데이터 사전 작업 문제 해결
    4. InnoDB 오류 처리
    5. InnoDB 오류 코드
    6. 운영 체제 오류 코드
  • 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.19.4 InnoDB 오류 처리

InnoDB 에서의 오류 처리는 SQL 표준에 지정된 것과 반드시 같지는 않습니다. 이 표준에 따르면, SQL 문 중 오류가 발생하면 반드시 그 문 롤백을 실행해야합니다. InnoDB 는 경우에 따라 문 일부만 또는 전체 트랜잭션을 롤백합니다. 다음의 각 항목은 InnoDB 가 오류 처리를 어떻게 실행하는지 설명하고 있습니다.

  • 테이블 공간 의 파일 공간이 부족하면 MySQL의 Table is full 오류가 발생하고 InnoDB 는 SQL 문을 롤백합니다.

  • 트랜잭션 교착 상태 가 발생하면 InnoDB 는 트랜잭션 전체를 롤백 합니다. 이것이 발생하면 전체 트랜잭션을 다시 시도합니다.

    잠금 대기 시간 초과가 발생하면 InnoDB 는 잠금 대기 중 시간이 초과 한 1 개의 문만 롤백합니다. (전체 트랜잭션이 롤백되도록하려면 --innodb_rollback_on_timeout 옵션을 사용하여 서버를 시작합니다.) 현재 동작을 사용하는 경우는 그 문을 --innodb_rollback_on_timeout 를 사용하여 있다면 전체 트랜잭션을 다시 시도합니다.

    교착 상태 및 잠금 대기 시간은 모두 바쁜 서버에서는 정상적인 것이며, 응용 프로그램은 그 발생 가능성을 인식하고 발생한 경우 시도에서 처리해야합니다. 트랜잭션의 첫번째 데이터 변경에서 커밋 사이에 할 작업을 최소화하여 잠금이 가능한 최단 시간 가능성있는 가장 작은 행수에 유지되도록함으로써 그들이 발생 가능성을 줄일 수 있습니다. 경우에 따라서는 다른 트랜잭션 사이에 작업의 분할이 실제적으로하고 도움이 될 수 있습니다.

    교착 상태 또는 잠금 대기 시간 초과로 인해 트랜잭션 롤백이 발생하면 그 트랜잭션의 문 효과가 취소됩니다. 그러나 트랜잭션 시작 문이 START TRANSACTION 또는 BEGIN 문이면 명령문이 롤백 의해 취소되지 않습니다. 그 이상의 SQL 문은 COMMIT , ROLLBACK 또는 암시 적 커밋을 발생시키는 어떤 SQL 문이 나타날 때까지 해당 트랜잭션의 일부입니다.

  • 문 IGNORE 옵션을 지정하지 않은 경우 중복 키 오류는 SQL 문을 롤백합니다.

  • row too long error 는 SQL 문을 롤백합니다.

  • 다른 오류는 대부분 ( InnoDB 스토리지 엔진 레벨 위에있는) 코드의 MySQL 레이어에 의해 검출 된 해당 SQL 문을 롤백합니다. 하나의 SQL 문 롤백에서는 잠금이 해제되지 않습니다.

암시 적 롤백 중이나 명시적인 ROLLBACK SQL 문 실행 중에 SHOW PROCESSLIST 관련 연결 State 컬럼에 Rolling back 을 표시합니다.

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