mysql logfile group_MySQL的SQL语句 - 数据定义语句(10)- CREATE LOGFILE GROUP 语句

CREATE LOGFILE GROUP 语句

1. CREATE LOGFILE GROUP logfile_group

2. ADD UNDOFILE 'undo_file'

3. [INITIAL_SIZE [=] initial_size]

4. [UNDO_BUFFER_SIZE [=] undo_buffer_size]

5. [REDO_BUFFER_SIZE [=] redo_buffer_size]

6. [NODEGROUP [=] nodegroup_id]

7. [WAIT]

8. [COMMENT [=] 'string']

9. ENGINE [=] engine_name

此语句创建一个名为 logfile_group 的新日志文件组,其中有一个名为 'undo_file' 的 UNDO 文件。CREATE LOGFILE GROUP 语句只有一个ADD UNDOFILE子句。

注意

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

在任何给定时间,每个NDB集群实例只能有一个日志文件组。

可选的 INITIAL_SIZE 参数设置 UNDO 文件的初始大小;如果未指定,则默认为128M(128兆字节)。可选的 UNDO_BUFFER_SIZE 参数设置用于日志文件组的 UNDO 缓冲区大小;UNDO_BUFFER_SIZE 的默认值为8M(8 MB);此值不能超过可用的系统内存量。这两个参数都是以字节单位指定的。可以选择在其中一个或两个后面加上表示数量级的一个字母缩写,类似于my.cnf文件中所用. 通常,这是字母M(表示兆字节)或G(表示千兆字节)之一。

用于 UNDO_BUFFER_SIZE 的内存来自全局池,其大小由 SharedGlobalMemory 数据节点配置参数的值确定。这包括通过设置 InitialLogFileGroup 数据节点配置参数为该选项表明的任何默认值。

UNDO_BUFFER_SIZE 允许的最大值为629145600(600 MB)。

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

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

ENGINE选项确定此日志文件组要使用的存储引擎,其中 engine_name 是存储引擎的名称。在MySQL 8.0中,它必须是NDB(或NDBCLUSTER)。如果未设置 ENGINE,MySQL会尝试使用服务器系统变量 default_storage_engine(以前称为 storage_engine)指定的引擎。在任何情况下,如果没有将引擎指定为NDB或NDBCLUSTER,则CREATE LOGFILE GROUP语句看似执行成功,但实际上无法创建日志文件组,如下所示:

1. mysql> CREATE LOGFILE GROUP lg1

2. -> ADD UNDOFILE 'undo.dat' INITIAL_SIZE = 10M;

3. Query OK, 0 rows affected, 1 warning (0.00 sec)

4.

5. mysql> SHOW WARNINGS;

6. +-------+------+-----------------------------------------------------------------------------------------------+

7. | Level | Code | Message |

8. +-------+------+------------------------------------------------------------------------------------------------+

9. | Error | 1478 | Table storage engine 'InnoDB' does not support the create option 'TABLESPACE or LOGFILE GROUP' |

10. +-------+------+------------------------------------------------------------------------------------------------+

11. 1 row in set (0.00 sec)

12.

13. mysql> DROP LOGFILE GROUP lg1 ENGINE = NDB;

14. ERROR 1529 (HY000): Failed to drop LOGFILE GROUP

15.

16. mysql> CREATE LOGFILE GROUP lg1

17. -> ADD UNDOFILE 'undo.dat' INITIAL_SIZE = 10M

18. -> ENGINE = NDB;

19. Query OK, 0 rows affected (2.97 sec)

当命名非NDB存储引擎时,CREATE LOGFILE GROUP语句实际上并没有返回错误,而是看起来成功了,这是一个已知的问题,我们希望在NDB Cluster的未来版本中解决这个问题。

REDO_BUFFER_SIZE、NODEGROUP、WAIT和COMMENT被解析但被忽略,因此在MySQL 8.0中没有任何影响。这些选项用于将来的扩展。

与 ENGINE [=] NDB 一起使用时,将在每个集群数据节点上创建日志文件组和关联的 UNDO 日志文件。可以验证 UNDO 文件是否已创建,并通过查询 INFORMATION_SCHEMA.FILES 表获取有关它们的信息。例如:

1. mysql> SELECT LOGFILE_GROUP_NAME, LOGFILE_GROUP_NUMBER, EXTRA

2. -> FROM INFORMATION_SCHEMA.FILES

3. -> WHERE FILE_NAME = 'undo_10.dat';

4. +--------------------+----------------------+----------------+

5. | LOGFILE_GROUP_NAME | LOGFILE_GROUP_NUMBER | EXTRA |

6. +--------------------+----------------------+----------------+

7. | lg_3 | 11 | CLUSTER_NODE=3 |

8. | lg_3 | 11 | CLUSTER_NODE=4 |

9. +--------------------+----------------------+----------------+

10. 2 rows in set (0.06 sec)

阅读 3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值