视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Mysql二进制日志过滤器_MySQL
2020-11-09 18:05:51 责编:小采
文档


bitsCN.com
Mysql二进制日志过滤器 二进制日志过滤器可以通过两个选项从二进制日志中过滤语句:binlog-do-db和binlog-ignore-db 一,binlog-do-db 使用 binlog-do-db=db_name。使用这个选项后,主服务器会判断当前的数据库(即USE选定的数据库)是否是db_name,如果是,则会将更新记录到二进制日志中。在使用之后,其它所有没有明显指定的数据库 都会被忽略。如果使用该选项,你应确保只对当前的数据库进行更新。在我服务器上有两个数据库,一个db_factory,另一个是db_user。在没有使用这个选项之前,对两个数据库的更新操作都是立即会复制到从库上的,但设置 [sql] binlog-do-db=db_factory 之后,对db_user的改动,都不会被从库所复制。所以如果不是特别有需求,最好不要设置这个选项。当然如果是一个数据库经常更新,其它的都是一样的本地数据库,可以不用于二进制日志的后续操作的情况下,作为一种优化手段,也是可以的。一个需要特别注意的地方是,如果设置binlog-do-db=db_factory。但后续使用如下语句: [sql] use db_user insert into db_factory.employ ........... 此时,更新是不会被二进制日志所接收的。 二,binlog-ignore-db 表示忽略某个特定的数据库,而对其它数据库进行复制的选项。其实上面的选项是表示“忽略其他数据库,只记录我进入日志”,而这个选项可以表“忽略我,将其它数据库记录日志”,对这外选项的使用,可以如下所示: [sql] [mysqld] binlog-ignore-db=db_factory binlog-ignore-db=db_user 当然上面的binlog-do-db也可以使用多次记录多个表需要被写入二进制日志。 三,选项规则 是否有binlog-do-db或binlog-ignore-db规则?没有:将语句写入二进制日志并退出。有:执行下一步。有一些规则(binlog-do-db或binlog-ignore-db或二者都有)。当前有一个数据库,也就是是否用USE命令选择数据库? 没有:不要写入语句,并退出。有:执行下一步。 有当前的数据库。是否有binlog-do-db规则? 有:当前的数据库是否匹配binlog-do-db规则? 如果是,则写入并退出,如果不是,不写入并退出。 没有:执行下一步。有一些binlog-ignore-db规则。当前的数据库是否匹配binlog-ignore-db规则? 有:不要写入语句,并退出。没有:写入查询并退出。从上面的流程逻辑可以知道,如果binlog-do-db被设置了,binlog-ignore-db将会被忽略。 另外,在这两个选项的应用过程中,要注意的是当前数据库的选择是通过USE来选择,这一点很重要。 bitsCN.com

下载本文
显示全文
专题