13.1.8 ALTER TABLESPACE 구문
ALTER TABLESPACE
tablespace_name
{ADD|DROP} DATAFILE 'file_name
' [INITIAL_SIZE [=]size
] [WAIT] ENGINE [=]engine_name
이 문을 사용하여 테이블 공간에 새로운 데이터 파일을 추가하거나 테이블 스페이스에서 데이터 파일의 삭제를 실행할 수 있습니다.
ADD DATAFILE
변형은 INITIAL_SIZE
절을 사용하여 초기 크기를 지정할 수 있습니다. 여기서 size
는 바이트 단위로 측정됩니다. 기본값은 134217728 (128M 바이트)입니다. MySQL Cluster NDB 7.3.2 이전에는이 값은 숫자로 지정해야했습니다. (Bug # 13116514, Bug # 16104705, Bug # 62858). MySQL Cluster NDB 7.3.2 이상에서는 size
뒤에 선택적으로 my.cnf
에서 사용되는 것과 같은 주문을 나타내는 문자 약어를 지정할 수 있습니다. 일반적으로 이것은 M
(M 바이트) 또는 G
(G 바이트) 중 하나의 문자입니다.
모든 MySQL Cluster 디스크 데이터 오브젝트가 같은 네임 스페이스를 공유합니다. 즉, 각 디스크 데이터 개체 (단순히 특정 형태의 각 디스크 데이터 객체라고뿐만 아니라) 고유의 이름이 붙어 있어야합니다. 예를 들어, 테이블 스페이스 및 데이터 파일을 같은 이름으로하고 Undo 로그 파일과 테이블 공간을 같은 이름으로 할 수 없습니다.
32 비트 시스템에서는 INITIAL_SIZE
지원되는 최대 값은 4294967296 (4G 바이트)입니다. (Bug # 29186)
INITIAL_SIZE
는 CREATE TABLESPACE
와 같이 명시 적으로 반올림됩니다.
데이터 파일이 생성 된 후 그 크기를 변경할 수 없습니다. 그러나 추가 ALTER TABLESPACE ... ADD DATAFILE
문을 사용하여 테이블 공간에 더 많은 데이터 파일을 추가 할 수 있습니다.
DROP DATAFILE
을 ALTER TABLESPACE
함께 사용하면 테이블 스페이스의 데이터 파일 ' file_name
'이 삭제됩니다. 하나의 테이블이 사용하는 테이블 스페이스에서 데이터 파일을 삭제할 수 없습니다. 즉, 데이터 파일이 비어 (범위가 사용되지 않음)가 필요합니다. 섹션 18.5.12.1 "MySQL Cluster 디스크 데이터 객체" 를 참조하십시오. 또한 삭제 된 데이터 파일은 모든 CREATE TABLESPACE
또는 ALTER TABLESPACE
이전에 테이블 스페이스에 추가되어 있어야합니다.
ALTER TABLESPACE ... ADD DATAFILE
과 ALTER TABLESPACE ... DROP DATAFILE
에 모두 해당 테이블 스페이스에서 사용되는 스토리지 엔진을 지정하는 ENGINE
절이 필요합니다. 현재 engine_name
로 사용할 수있는 값은 NDB
및 NDBCLUSTER
뿐입니다.
WAIT
는 해석되지만, 그 이외는 무시되기 때문에 MySQL 5.6에서는 아무런 효과가 없습니다. 이것은 미래의 확장을 위해 준비되어 있습니다.
ALTER TABLESPACE ... ADD DATAFILE
가 ENGINE = NDB
함께 사용 된 경우, 데이터 파일이 각 클러스터 데이터 노드에 생성됩니다. INFORMATION_SCHEMA.FILES
테이블을 쿼리하여 데이터 파일이 생성 된 것을 확인하고, 그들에 대한 정보를 검색 할 수 있습니다. 예를 들어, 다음 쿼리는 newts
라는 테이블 스페이스에 속한 모든 데이터 파일을 표시합니다.
mysql>SELECT LOGFILE_GROUP_NAME, FILE_NAME, EXTRA
->FROM INFORMATION_SCHEMA.FILES
->WHERE TABLESPACE_NAME = 'newts' AND FILE_TYPE = 'DATAFILE';
+--------------------+--------------+----------------+ | LOGFILE_GROUP_NAME | FILE_NAME | EXTRA | +--------------------+--------------+----------------+ | lg_3 | newdata.dat | CLUSTER_NODE=3 | | lg_3 | newdata.dat | CLUSTER_NODE=4 | | lg_3 | newdata2.dat | CLUSTER_NODE=3 | | lg_3 | newdata2.dat | CLUSTER_NODE=4 | +--------------------+--------------+----------------+ 2 rows in set (0.03 sec)
섹션 21.30.1 "INFORMATION_SCHEMA FILES 테이블" 을 참조하십시오.
ALTER TABLESPACE
는 MySQL Cluster 데이터 저장 디스크에서만 유효합니다. 섹션 18.5.12 "MySQL Cluster 디스크 데이터 테이블" 을 참조하십시오.