Spec-Zone.ru › MySQL 5.7

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.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/alter-tablespace.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API