Spec-Zone.ru › MySQL 8.4

15.1.16 Оператор 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 используют один и тот же адресное пространство. Это означает, что каждый объект данных диска должен иметь уникальное имя (а не только каждый объект данных данного типа). Например, нельзя иметь табличное пространство и группу файлов журнала с одинаковым именем, или табличное пространство и файл данных с одинаковым именем.

В любой момент времени на экземпляре кластера NDB может быть только одна группа файлов журнала.

Необязательный параметр 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.

REDO_BUFFER_SIZE, NODEGROUP, WAIT и COMMENT анализируются, но игнорируются и не оказывают никакого влияния в MySQL 8.4. Эти опции предназначены для будущего расширения.

При использовании с 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. См. раздел 25.6.11, «Таблицы данных диска кластера NDB».

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/create-logfile-group.html

Spec-Zone.ru

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