MySQL binlog format & binlog-do-db & binlog-ignore-db

匿名 (未验证) 提交于 2019-12-02 22:06:11

1. 三者的联系

1.1. 设置 binlog-do-db 与 binlog-ignore-db 

[mysqld] binlog-do-db = db01 binlog-ignore-db = db02

1.2. 不同 binlog format 下进行测试

1.2.1. STATEMENT

  • 没有 use dbname 或者 use db02
create table db01.table01(id int primary key auto_increment); insert into db01.table01 values(1); create table db02.table01(id int primary key auto_increment); insert into db02.table01 values(1);

结果:binlog 没有记录 DDL 或者 DML 语句。

说明:如果未选择数据库或者选择的并不是 binlog-do-db 包含的数据库,则不会记录。

  • use db01

结论:DDL 和 DML 全部被记录。不过令人遗憾的是,就连我们希望忽略的 db02 也会出现在 binlog 中。

1.2.2. ROW

  • 没有 use dbname 或者 use db02

结论:DDL 没有被记录;DML 被记录。

  • use db01

结论:有关 db01 的 DDL 或 DML 能够全部记录,对于其它表只能记录 DML。

1.2.3. MIXED

  • 未选择数据库或者 use db02

结论:忽略了所有 DDL 和 DML,包括希望记录的 db01。

  • use db01

结论:任何 DDL 和 DML 全被记录。不过,希望被忽略的 db02 也会被记录,但似乎记录方式有所区别,可以自行测试。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!