InnoDB系统表空间定义规则

Posted 老叶茶馆_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了InnoDB系统表空间定义规则相关的知识,希望对你有一定的参考价值。

  • 1. InnoDB系统表空间定义规则

  • 2. 并行复制设置不当可能导致主从数据不一致

1. InnoDB系统表空间定义规则

修改 innodb_data_file_path 选项值可自定义InnoDB系统表空间设置,不过要注意 autoextendmax 属性只能放在最后一个文件,而不能放在前面的文件。

The autoextend and max attributes can be used only for the data file that is specified last.

例如:

# 这样是错的
innodb_data_file_path=ibdata1:12M:autoextend:max:500M;ibdata2:50M:autoextend:max:500M

# 这样是正确的
innodb_data_file_path=ibdata1:50M;ibdata2:50M:autoextend:max:500M

不过,随着undo表空间从系统表空间移出后,导致系统表空间疯狂膨胀的最大因素已不复存在,也就没什么必要定义太大了,一般128MB就足够应付绝大多数场景了。

2. 并行复制设置不当可能导致主从数据不一致

当并行复制设置为 DATABASE (slave_parallel_type = DATABASE)模式时,可能会导致主从数据不一致。

因为可能有跨 DATABASE 的外键约束,但是在从节点并行应用relay log时,会忽略这些约束条件,从而导致主从数据不一致。

因此,并行复制模式一定记得要设置为 LOGICAL_CLOCK。在mysql 8.0.27前,默认值是 DATABASE,从8.0.27起默认值才改成 LOGICAL_CLOCK。

There must be no cross-database constraints, as such constraints may be violated on the replica.

Enjoy MySQL :)


《深入浅出MGR》视频课程

戳此小程序即可直达B站

https://www.bilibili.com/medialist/play/1363850082?business=space_collection&business_id=343928&desc=0



文章推荐:


想看更多技术好文,点个“在看”吧!

以上是关于InnoDB系统表空间定义规则的主要内容,如果未能解决你的问题,请参考以下文章

MySQL迁移数据目录(迁移数据库表InnoDB系统表空间状态文件/日志文件)

InnoDB 表空间

mysql数据库引擎 MyISAM和 InnoDB区别

mysql数据库引擎 MyISAM和 InnoDB区别

MYSQL数据库引擎 MYISAM和 INNODB区别

MySQL数据库引擎MyISAM与InnoDB的区别