CREATE LOGFILE GROUPlogfile_groupADD 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
This statement creates a new log file group namedlogfile_group
having a singleUNDO
file named 'undo_file
'. ACREATE LOGFILE GROUP
statement has one and only oneADD UNDOFILE
clause. For rules covering the naming of log file groups, seeSection 9.2, “Schema Object Names”.
All NDB Cluster Disk Data objects share the same namespace. This means thateach Disk Data object必须惟一命名(而不只是每个磁盘Data object of a given type). For example, you cannot have a tablespace and a log file group with the same name, or a tablespace and a data file with the same name.
There can be only one log file group per NDB Cluster instance at any given time.
The optionalINITIAL_SIZE
parameter sets theUNDO
file's initial size; if not specified, it defaults to128M
(128 megabytes). The optionalUNDO_BUFFER_SIZE
parameter sets the size used by theUNDO
buffer for the log file group; The default value forUNDO_BUFFER_SIZE
is8M
(eight megabytes); this value cannot exceed the amount of system memory available. Both of these parameters are specified in bytes. You may optionally follow either or both of these with a one-letter abbreviation for an order of magnitude, similar to those used inmy.cnf
. Generally, this is one of the lettersM
(for megabytes) orG
(for gigabytes).
Memory used forUNDO_BUFFER_SIZE
comes from the global pool whose size is determined by the value of theSharedGlobalMemory
data node configuration parameter. This includes any default value implied for this option by the setting of theInitialLogFileGroup
data node configuration parameter.
The maximum permitted forUNDO_BUFFER_SIZE
is 629145600 (600 MB).
On 32-bit systems, the maximum supported value forINITIAL_SIZE
is 4294967296 (4 GB). (Bug #29186)
The minimum allowed value forINITIAL_SIZE
is 1048576 (1 MB).
TheENGINE
option determines the storage engine to be used by this log file group, withengine_name
being the name of the storage engine. In MySQL 8.0, this must beNDB
(orNDBCLUSTER
). IfENGINE
is not set, MySQL tries to use the engine specified by thedefault_storage_engine
server system variable (formerlystorage_engine
). In any case, if the engine is not specified asNDB
orNDBCLUSTER
,CREATE LOGFILE GROUP
statement appears to succeed but actually fails to create the log file group, as shown here:
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)
The fact that theCREATE LOGFILE GROUP
statement does not actually return an error when a non-NDB
storage engine is named, but rather appears to succeed, is a known issue which we hope to address in a future release of NDB Cluster.
REDO_BUFFER_SIZE
,NODEGROUP
,WAIT
, andCOMMENT
are parsed but ignored, and so have no effect in MySQL 8.0. These options are intended for future expansion.
When used withENGINE [=] NDB
, a log file group and associatedUNDO
log file are created on each Cluster data node. You can verify that theUNDO
files were created and obtain information about them by querying theINFORMATION_SCHEMA.FILES
table. For example:
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
is useful only with Disk Data storage for NDB Cluster. SeeSection 23.6.10, “NDB Cluster Disk Data Tables”.