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”。