Spec-Zone .ru
спецификации, руководства, описания, API
|
CREATE LOGFILE GROUPlogfile_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 [=]comment_text
] ENGINE [=]engine_name
This statement creates a new log file group named logfile_group
having
a single UNDO
file named 'undo_file
'. A
CREATE LOGFILE GROUP
statement has one and only one ADD
UNDOFILE
clause. For rules covering the naming of log file groups, see Section
9.2, "Schema Object Names".
All MySQL Cluster Disk Data objects share the same namespace. This means that each Disk Data object must be uniquely named (and not merely each Disk 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.
In MySQL Cluster NDB 7.3, you can have only one log file group per Cluster at any given time. (See Bug #16386)
The optional INITIAL_SIZE
parameter sets the UNDO
file's initial size; if not specified, it defaults to 128M
(128 megabytes). The
optional UNDO_BUFFER_SIZE
parameter sets the size used by the UNDO
buffer for the log file group; The default value for UNDO_BUFFER_SIZE
is 8M
(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 in my.cnf
. Generally, this is one of the letters M
(for megabytes) or G
(for gigabytes).
The memory used for both INITIAL_SIZE
and UNDO_BUFFER_SIZE
comes from the global pool whose size is determined by the value of
the SharedGlobalMemory
data node configuration parameter. This includes any default value implied for these options by the setting of
the InitialLogFileGroup
data node configuration parameter.
The maximum permitted for UNDO_BUFFER_SIZE
is 600M
.
On 32-bit systems, the maximum supported value for INITIAL_SIZE
is 4G
.
The minimum permitted value for INITIAL_SIZE
is 1M
.
The ENGINE
option determines the storage engine to be used by this log file group,
with engine_name
being the name of the storage engine. In MySQL 5.6,
this must be NDB
(or NDBCLUSTER
).
If ENGINE
is not set, MySQL tries to use the engine specified by the default_storage_engine
server system variable (formerly storage_engine
). In any case, if the engine is not specified as NDB
or NDBCLUSTER
,
the 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 GROUPmysql>CREATE LOGFILE GROUP lg1
->ADD UNDOFILE 'undo.dat' INITIAL_SIZE = 10M
->ENGINE = NDB;
Query OK, 0 rows affected (2.97 sec)
The fact that the CREATE 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 MySQL Cluster.
REDO_BUFFER_SIZE
, NODEGROUP
, WAIT
, and COMMENT
are parsed but ignored, and so have no
effect in MySQL 5.6. These options are intended for future expansion.
When used with ENGINE [=] NDB
, a log file group and associated UNDO
log file are created on each Cluster data node. You can verify that the UNDO
files were created and obtain information about them by querying the INFORMATION_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 MySQL Cluster. See
Section 17.5.12, "MySQL Cluster Disk Data Tables".