Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

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

15.1.6 ALTER LOGFILE GROUP 语句

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 Cluster 磁盘数据对象共享同一个命名空间。这意味着 每个磁盘数据对象 都必须具有唯一的名称(而不仅仅是给定类型的每个磁盘数据对象)。例如,您不能拥有同名的表空间和撤销日志文件,或者同名的撤销日志文件和数据文件。

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

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

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

Note

WAIT 会被解析,但会被忽略。此关键字目前没有任何效果,并且 intended for future expansion.

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

以下是一个示例,假设日志文件组 lg_3 已使用 CREATE LOGFILE GROUP 创建(请参阅 Section 15.1.16, “CREATE LOGFILE GROUP 语句”):

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

ALTER LOGFILE GROUPENGINE = NDBCLUSTER(或者 ENGINE = NDB)一起使用时,会在每个 NDB Cluster 数据节点上创建一个 UNDO 日志文件。您可以通过查询 Information Schema FILES 表来验证是否已创建 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 文件表”.)

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

ALTER LOGFILE GROUP 仅对 NDB Cluster 的磁盘数据存储有用。有关更多信息,请参阅 章节 25.6.11, “NDB Cluster 磁盘数据表”.