13.1.15 Оператор 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 [=] 'string']
ENGINE [=] engine_name
Этот оператор создаёт новую группу файлов журнала с именем logfile_group, содержащую один файл UNDO с именем 'undo_file'. Оператор CREATE LOGFILE GROUP имеет только один ADD UNDOFILE-оператор. Правила именования групп файлов журнала описаны в разделе 9.2, «Имена объектов схемы».
Все объекты данных дисков NDB Cluster используют один и тот же пространство имён. Это означает, что каждый объект данных дисков должен иметь уникальное имя (а не только каждый объект данных данного типа). Например, вы не можете иметь табличное пространство и группу файлов журнала с одинаковым именем, или табличное пространство и файл данных с одинаковым именем.
В любой момент времени в экземпляре NDB Cluster может быть только одна группа файлов журнала.
Необязательный параметр INITIAL_SIZE задаёт начальный размер файла UNDO; если он не указан, по умолчанию используется 128M (128 мегабайт). Необязательный параметр UNDO_BUFFER_SIZE задаёт размер буфера UNDO для группы файлов журнала; значение по умолчанию для UNDO_BUFFER_SIZE равно 8M (восемь мегабайт); это значение не может превышать объём доступной системной памяти. Оба этих параметра задаются в байтах. Вы можете дополнить их однобуквенным сокращением порядка величины, подобным используемым в my.cnf. Обычно это одна из букв M (для мегабайт) или G (для гигабайт).
Память, используемая для UNDO_BUFFER_SIZE, берется из глобального пула, размер которого определяется значением параметра конфигурации узла данных SharedGlobalMemory. Это включает любое значение по умолчанию, предполагаемое для этого параметра настройкой параметра конфигурации узла данных InitialLogFileGroup.
Максимально допустимое значение для UNDO_BUFFER_SIZE составляет 629145600 (600 МБ).
В 32-разрядных системах максимальное поддерживаемое значение для INITIAL_SIZE составляет 4294967296 (4 ГБ). (Ошибка #29186)
Минимальное разрешённое значение для INITIAL_SIZE составляет 1048576 (1 МБ).
Параметр ENGINE определяет используемый движок хранения для этой группы файлов журнала, где engine_name является именем движка хранения. В MySQL 5.7 это должно быть 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)
Тот факт, что оператор CREATE LOGFILE GROUP фактически не возвращает ошибку при указании движка хранения, отличного от NDB, но, кажется, выполняется успешно, является известной проблемой, которую мы надеемся решить в будущих версиях NDB Cluster.
REDO_BUFFER_SIZE, NODEGROUP, WAIT и COMMENT анализируются, но игнорируются и, таким образом, не имеют никакого эффекта в MySQL 5.7. Эти параметры предназначены для будущего расширения.
При использовании с ENGINE [=] NDB, группа файлов журнала и связанный с ней файл журнала UNDO создаются на каждом узле данных кластера. Вы можете проверить, были ли созданы файлы UNDO, и получить информацию о них, запросив таблицу схемы информации FILES. Например:
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 полезен только с хранилищем данных дисков для NDB Cluster. См. раздел 21.6.11, «Таблицы данных дисков NDB Cluster».
© 2025 Oracle
Licensed under the GPLv2 License.