15.1.17 Оператор 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_file'. Оператор CREATE LOGFILE GROUP имеет только один и единственный клауз ADD UNDOFILE. Правила именования групп файлов журнала см. в разделе 11.2, «Имена объектов схемы».
Все объекты данных дисков NDB Cluster используют один и тот же пространство имен. Это означает, что каждый объект данных диска должен иметь уникальное имя (а не только каждый объект данных диска определенного типа). Например, нельзя иметь табличное пространство и группу файлов журнала с одинаковым именем или табличное пространство и файл данных с одинаковым именем.
В любой момент времени в экземпляре NDB Cluster может быть только одна группа файлов журнала.
Необязательный параметр INITIAL_SIZE устанавливает начальный размер файла отката; если он не указан, он по умолчанию равен 128M (128 мегабайт). Необязательный параметр UNDO_BUFFER_SIZE устанавливает размер, используемый буфером отката для группы файлов журнала; значение по умолчанию для 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 является именем движка хранения. Он должен быть NDB (или NDBCLUSTER). Если ENGINE не указан, MySQL пытается использовать движок, указанный переменной серверной системы default_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 9.2. Эти параметры предназначены для будущих расширений.
При использовании с ENGINE [=] NDB группа файлов журнала и связанный с ней файл журнала отката создаются на каждом узле данных кластера. Вы можете проверить, были ли созданы файлы отката, и получить информацию о них, запросив таблицу схемы информации 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. См. раздел 25.6.11, «Таблицы NDB Cluster Disk Data».
© 2025 Oracle
Licensed under the GPLv2 License.