Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 Reference Manual  /  ...  /  ALTER LOGFILE GROUP Statement

15.1.6 更改日志文件组语句

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

该语句将名为'file_name'的UNDO文件添加到现有日志文件组logfile_group中。一个ALTER LOGFILE GROUP语句只能包含一个ADD UNDOFILE子句当前不支持DROP UNDOFILE子句。

Note

所有 NDB 集群磁盘数据对象共享同一个命名空间。这意味着每个磁盘数据对象都必须唯一命名(而不是每种类型的磁盘数据对象)。例如,你不能有一个表空间和一个回滚日志文件具有相同名称,或者一个回滚日志文件和一个数据文件具有相同名称。

可选的INITIAL_SIZE参数设置UNDO文件的初始大小,以字节为单位;如果不指定,初始大小默认为134217728(128 MB)。你可以在size后面跟一个一位的缩写,类似于my.cnf文件中使用的缩写。通常,这是一个字母M(兆)或G(GB)。(Bug #13116514、Bug #16104705、Bug #62858)

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

INITIAL_SIZE的最小允许值为1048576(1 MB)。(Bug #29574)

Note

WAIT被解析,但否则被忽略。这关键字当前无效,旨在未来扩展。

ENGINE子句(必需)确定了该日志文件组使用的存储引擎,engine_name是存储引擎名称。当前,只接受NDBCLUSTER”和NDB”这两个值是等价的。

以下是一个示例,假设日志文件组lg_3已经使用CREATE LOGFILE GROUP创建了(见第15.1.16节,“CREATE LOGFILE GROUP 语句”):

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

使用ALTER LOGFILE GROUP时,指定ENGINE = NDBCLUSTER(或者ENGINE = NDB),在每个NDB集群数据节点上创建了undo日志文件。可以通过查询信息SchemaFILES表来验证undo文件是否创建成功,并获取它们的信息,例如:

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)

(参见第28.3.15节,“INFORMATION_SCHEMA FILES 表”。)

UNDO_BUFFER_SIZE所占用的内存来自全局池,大小由SharedGlobalMemory数据节点配置参数确定。包括了通过InitialLogFileGroup数据节点配置参数隐含的默认值。

ALTER LOGFILE GROUP仅适用于 NDB 集群磁盘存储。更多信息,见第25.6.11节,“NDB 集群磁盘数据表”