Loading...
MySQL 9.5 Reference Manual 9.5의 17.12.7 Online DDL Failure Conditions의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
online DDL 작업 실패는 일반적으로 다음 조건 중 하나로 인해 발생합니다:
ALGORITHM 절에서 해당 유형의 DDL 작업이나 스토리지 엔진과 호환되지 않는 algorithm을 지정한 경우.
LOCK 절에서 해당 유형의 DDL 작업과 호환되지 않는 낮은 수준의 locking(SHARED 또는 NONE)을 지정한 경우.
DDL 작업의 초기 및 최종 단계 동안 테이블에 대한 exclusive lock이 잠시 필요할 수 있는데, 그 lock을 대기하는 동안 timeout이 발생한 경우.
tmpdir 또는 innodb_tmpdir 파일 시스템의 디스크 공간이 부족하여, MySQL이 인덱스 생성 중에 디스크에 임시 정렬 파일을 기록하는 동안 디스크 공간이 소진된 경우. 자세한 내용은 Section 17.12.3, “Online DDL Space Requirements”를 참조하십시오.
작업에 오랜 시간이 소요되고, 동시에 실행되는 DML이 테이블을 지나치게 많이 변경하여, 임시 online log의 크기가 innodb_online_alter_log_max_size configuration option 값을 초과하는 경우. 이 조건은 DB_ONLINE_LOG_TOO_BIG 오류를 발생시킵니다.
동시에 실행되는 DML이 기존 테이블 정의에서는 허용되지만 새로운 테이블 정의에서는 허용되지 않는 변경을 테이블에 가하는 경우. 이 경우, MySQL이 동시에 실행된 DML statement에 의한 모든 변경 사항을 적용하려고 시도하는 맨 마지막 단계에서만 작업이 실패합니다. 예를 들어, unique index를 생성하는 동안 해당 column에 중복된 값을 insert하거나, 해당 column에 primary key index를 생성하는 동안 NULL 값을 insert할 수 있습니다. 동시에 실행된 DML에 의해 이루어진 변경이 우선하며, ALTER TABLE 작업은 사실상 rolled back됩니다.
17.12.6 Simplifying DDL Statements with Online DDL
17.12.8 Online DDL Limitations