13.1.9 Оператор ALTER TABLESPACE
ALTER TABLESPACE tablespace_name
{ADD | DROP} DATAFILE 'file_name'
[INITIAL_SIZE [=] size]
[WAIT]
ENGINE [=] engine_name
Этот оператор используется для добавления нового файла данных или удаления файла данных из табличного пространства.
Вариант ADD DATAFILE позволяет указать начальный размер с помощью клаузы INITIAL_SIZE, где size измеряется в байтах; значение по умолчанию равно 134217728 (128 МБ). Вы можете дополнительно указать size с однобуквенным сокращением для порядка величины, аналогичным используемым в my.cnf. Обычно это одна из букв M (мегабайты) или G (гигабайты).
Все объекты NDB Cluster Disk Data используют один и тот же пространство имен. Это означает, что каждый объект Disk Data должен иметь уникальное имя (а не только каждый объект Disk Data данного типа). Например, нельзя иметь табличное пространство и файл данных с одинаковым именем, или файл журнала отката и табличное пространство с одинаковым именем.
На 32-битных системах максимальное поддерживаемое значение для INITIAL_SIZE равно 4294967296 (4 ГБ). (Ошибка #29186)
INITIAL_SIZE округляется так же, как и для CREATE TABLESPACE.
После создания файла данных его размер изменить нельзя; однако, вы можете добавить больше файлов данных в табличное пространство с помощью дополнительных операторов ALTER TABLESPACE ... ADD DATAFILE.
Использование DROP DATAFILE с ALTER TABLESPACE удаляет файл данных 'file_name' из табличного пространства. Вы не можете удалить файл данных из табличного пространства, которое используется любой таблицей; другими словами, файл данных должен быть пустым (не используются никакие экстенты). См. Раздел 21.6.11.1, «Объекты NDB Cluster Disk Data». Кроме того, любой файл данных, подлежащий удалению, должен быть предварительно добавлен в табличное пространство с помощью CREATE
TABLESPACE или ALTER
TABLESPACE.
И ALTER TABLESPACE ... ADD DATAFILE, и ALTER TABLESPACE ... DROP DATAFILE требуют клаузу ENGINE, которая указывает используемый движок хранения для табличного пространства. В настоящее время единственными допустимыми значениями для engine_name являются NDB и NDBCLUSTER.
WAIT анализируется, но в противном случае игнорируется и не оказывает никакого влияния в MySQL 5.7. Она предназначена для будущего расширения.
При использовании ALTER TABLESPACE ... ADD DATAFILE с ENGINE = NDB, файл данных создается на каждом узле данных кластера. Вы можете проверить, что файлы данных были созданы, и получить информацию о них, обратившись к таблице схемы информации 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)
См. Раздел 24.3.9, «Таблица INFORMATION_SCHEMA FILES».
ALTER TABLESPACE полезна только с хранением Disk Data для NDB Cluster. См. Раздел 21.6.11, «Таблицы NDB Cluster Disk Data».
© 2025 Oracle
Licensed under the GPLv2 License.