13.1.8 ALTER TABLESPACE 구문
ALTER TABLESPACEtablespace_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 디스크 데이터 테이블" 을 참조하십시오.