13.1.5 ALTER LOGFILE GROUP 语句

ALTER LOGFILE GROUP logfile_group
    ADD UNDOFILE 'file_name'
    [INITIAL_SIZE [=] size]
    [WAIT]
    ENGINE [=] engine_name

该语句将名为'* file_name UNDO文件添加到现有日志文件组 logfile_group *中。 更改日志文件组语句只有一个ADD UNDOFILE子句。当前不支持DROP UNDOFILE子句。

Note

所有 NDB 群集磁盘数据对象共享相同的名称空间。这意味着“每个磁盘数据对象”必须被唯一命名(而不仅仅是给定类型的每个磁盘数据对象)。例如,您不能具有相同名称的 table 空间和撤消日志文件,或具有相同名称的撤消日志文件和数据文件。

可选的INITIAL_SIZE参数以字节为单位设置UNDO文件的初始大小;如果未指定,则初始大小默认为 134217728(128 MB)。您可以选择在* size *之后加上一个字母的缩写,table 示一个数量级,类似于my.cnf中使用的缩写。通常,这是字母M(兆字节)或G(千兆字节)之一。 (缺陷#13116514,错误#16104705,错误#62858)

在 32 位系统上,INITIAL_SIZE的最大支持值为 4294967296(4 GB)。错误 29186)

INITIAL_SIZE的最小允许值为 1048576(1 MB)。错误 29574)

Note

WAIT已解析,但被忽略。此关键字当前无效,并且打算将来扩展。

ENGINE参数(必需)确定此日志文件组使用的存储引擎,其中* engine_name 是存储引擎的名称。当前, engine_name *唯一可接受的值为“ NDBCLUSTER”和“ NDB”。这两个值是等效的。

这是一个示例,假定已经使用创建日志文件组(请参阅第 13.1.15 节“ CREATE LOGFILE GROUP 语句”)创建了日志文件组lg_3

ALTER LOGFILE GROUP lg_3
    ADD UNDOFILE 'undo_10.dat'
    INITIAL_SIZE=32M
    ENGINE=NDBCLUSTER;

更改日志文件组ENGINE = NDBCLUSTER(或者ENGINE = NDB)一起使用时,将在每个 NDB 群集数据节点上创建UNDO日志文件。您可以验证已创建UNDO文件,并可以通过查询INFORMATION_SCHEMA.FILEStable 获取有关它们的信息。例如:

mysql> SELECT FILE_NAME, LOGFILE_GROUP_NUMBER, EXTRA
    -> FROM INFORMATION_SCHEMA.FILES
    -> WHERE LOGFILE_GROUP_NAME = 'lg_3';
+-------------+----------------------+----------------+
| FILE_NAME   | LOGFILE_GROUP_NUMBER | EXTRA          |
+-------------+----------------------+----------------+
| newdata.dat |                    0 | CLUSTER_NODE=3 |
| newdata.dat |                    0 | CLUSTER_NODE=4 |
| undo_10.dat |                   11 | CLUSTER_NODE=3 |
| undo_10.dat |                   11 | CLUSTER_NODE=4 |
+-------------+----------------------+----------------+
4 rows in set (0.01 sec)

(See 第 24.9 节“ INFORMATION_SCHEMA FILEStable”.)

用于UNDO_BUFFER_SIZE的内存来自全局池,该全局池的大小由SharedGlobalMemory数据节点配置参数的值确定。这包括InitialLogFileGroup数据节点配置参数的设置对此选项隐含的任何默认值。

更改日志文件组仅对 NDB 群集的磁盘数据存储有用。有关更多信息,请参见第 21.5.10 节“ NDB 群集磁盘数据 table”