13.1.14 CREATE LOGFILE GROUP 구문
CREATE LOGFILE GROUP
logfile_group
ADD UNDOFILE 'undo_file
' [INITIAL_SIZE [=]initial_size
] [UNDO_BUFFER_SIZE [=]undo_buffer_size
] [REDO_BUFFER_SIZE [=]redo_buffer_size
] [NODEGROUP [=]nodegroup_id
] [WAIT] [COMMENT [=]comment_text
] ENGINE [=]engine_name
이 문장은 ' undo_file
'라는 하나의 UNDO
파일을 가진 logfile_group
라는 새 로그 파일 그룹을 만듭니다. CREATE LOGFILE GROUP
문은 ADD UNDOFILE
절 하나만 존재합니다. 로그 파일 그룹의 이름을 관리하는 규칙 내용은 섹션 9.2 "스키마 객체 이름" 을 참조하십시오.
모든 MySQL Cluster 디스크 데이터 오브젝트가 같은 네임 스페이스를 공유합니다. 즉, 각 디스크 데이터 개체 (단순히 특정 형태의 각 디스크 데이터 객체라고뿐만 아니라) 고유의 이름이 붙어 있어야합니다. 예를 들어, 테이블 스페이스 및 로그 파일 그룹을 같은 이름 또는 테이블 스페이스와 데이터 파일을 같은 이름으로 할 수 없습니다.
MySQL Cluster NDB 7.3 이상에서는 클러스터 당 항상 하나의 로그 파일 그룹 만 만들 수 없습니다. (Bug # 16386를 참조하십시오)
옵션 INITIAL_SIZE
매개 변수는 UNDO
파일의 초기 크기를 설정합니다. 지정되지 않은 경우 기본적으로 128M
(128M 바이트)입니다. 옵션 UNDO_BUFFER_SIZE
매개 변수는 로그 파일 그룹의 UNDO
버퍼로 사용되는 크기를 설정합니다. UNDO_BUFFER_SIZE
의 기본값은 8M
(8M 바이트)입니다. 이 값이 사용 가능한 시스템 메모리의 양을 초과 할 수 없습니다. 이러한 매개 변수는 모두 바이트 단위로 지정됩니다. MySQL Cluster NDB 7.3.2 이후에서는 이러한 양쪽 모두 또는 어느 한쪽의 뒤에 선택적으로 my.cnf
에서 사용되는 것과 같은 자리수를 나타내는 문자 약어를 지정할 수 있습니다. 일반적으로 이것은 M
(M 바이트) 또는 G
(G 바이트) 중 하나의 문자입니다. MySQL Cluster NDB 7.3.2 이전에는이 옵션의 값은 숫자로 밖에 지정할 수 없습니다. (Bug # 13116514, Bug # 16104705, Bug # 62858)
INITIAL_SIZE
과 UNDO_BUFFER_SIZE
모두에 사용되는 메모리는 크기가 SharedGlobalMemory
데이터 노드 구성 매개 변수의 값에 의해 결정되는 전역 풀에서 가져옵니다. 여기에는 InitialLogFileGroup
데이터 노드 구성 매개 변수의 설정에 따라 이러한 옵션에 암묵적으로 지정되는 기본값이 모두 포함되어 있습니다.
UNDO_BUFFER_SIZE
에 허용되는 최대 값은 629145600 (600M 바이트)입니다.
32 비트 시스템에서는 INITIAL_SIZE
지원되는 최대 값은 4294967296 (4G 바이트)입니다. (Bug # 29186)
INITIAL_SIZE
의 허용되는 최소 값은 1048576 (1M 바이트)입니다.
ENGINE
옵션이 로그 파일 그룹에 의해 사용되는 스토리지 엔진을 결정합니다. 여기에서 engine_name
은 스토리지 엔진의 이름입니다. MySQL 5.6에서는이 NDB
(또는 NDBCLUSTER
)이어야합니다. ENGINE
이 설정되어 있지 않은 경우, MySQL은 default_storage_engine
서버 시스템 변수 (이전 storage_engine
)에서 지정된 엔진을 사용하려고합니다. 어느 경우에도 엔진이 NDB
또는 NDBCLUSTER
로 지정되어 있지 않은 경우, CREATE LOGFILE GROUP
문은 성공한 것처럼 보이지만, 다음과 같이 실제로는 로그 파일 그룹을 만드는 데 실패합니다.
mysql>CREATE LOGFILE GROUP lg1
->ADD UNDOFILE 'undo.dat' INITIAL_SIZE = 10M;
Query OK, 0 rows affected, 1 warning (0.00 sec) mysql>SHOW WARNINGS;
+-------+------+------------------------------------------------------------------------------------------------+ | Level | Code | Message | +-------+------+------------------------------------------------------------------------------------------------+ | Error | 1478 | Table storage engine 'InnoDB' does not support the create option 'TABLESPACE or LOGFILE GROUP' | +-------+------+------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec) mysql>DROP LOGFILE GROUP lg1 ENGINE = NDB;
ERROR 1529 (HY000): Failed to drop LOGFILE GROUP mysql>CREATE LOGFILE GROUP lg1
->ADD UNDOFILE 'undo.dat' INITIAL_SIZE = 10M
->ENGINE = NDB;
Query OK, 0 rows affected (2.97 sec)
NDB
이외의 스토리지 엔진이 지정된 경우 CREATE LOGFILE GROUP
문이 실제로는 오류를 반환하고, 성공한 것처럼 보인다는 사실은 MySQL Cluster 릴리스에서 해결하고자하는 알려진 문제입니다 .
REDO_BUFFER_SIZE
, NODEGROUP
, WAIT
및 COMMENT
는 해석되지만 무시되기 때문에 MySQL 5.6에서는 아무런 효과가 없습니다. 이 옵션은 미래의 확장을 위해 준비되어 있습니다.
ENGINE [=] NDB
함께 사용 된 경우, 로그 파일 그룹 및 관련된 UNDO
로그 파일이 각 클러스터 데이터 노드에 생성됩니다. INFORMATION_SCHEMA.FILES
테이블을 쿼리하여 UNDO
파일이 생성 된 것을 확인하고, 그들에 대한 정보를 검색 할 수 있습니다. 예 :
mysql>SELECT LOGFILE_GROUP_NAME, LOGFILE_GROUP_NUMBER, EXTRA
->FROM INFORMATION_SCHEMA.FILES
->WHERE FILE_NAME = 'undo_10.dat';
+--------------------+----------------------+----------------+ | LOGFILE_GROUP_NAME | LOGFILE_GROUP_NUMBER | EXTRA | +--------------------+----------------------+----------------+ | lg_3 | 11 | CLUSTER_NODE=3 | | lg_3 | 11 | CLUSTER_NODE=4 | +--------------------+----------------------+----------------+ 2 rows in set (0.06 sec)
CREATE LOGFILE GROUP
은 MySQL Cluster 데이터 저장 디스크에서만 유효합니다. 섹션 18.5.12 "MySQL Cluster 디스크 데이터 테이블" 을 참조하십시오.