首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql:需要避免将临时表存储在二进制日志上

mysql:需要避免将临时表存储在二进制日志上
EN

Stack Overflow用户
提问于 2014-12-10 12:53:53
回答 1查看 1.9K关注 0票数 1

在mysql上,我有两个数据库"parque_test“和"tabelas_temporais",二进制日志被激活。

修改属于“InnoDB”的parque_test表的每个操作都记录在二进制日志上。但是,"parque_test“有使用临时表检索结果的存储过程(它们不用于执行更新、删除或插入)。

为了避免在bin日志上记录临时表的活动,我设置了"/etc/ mysql /my.cnf“文件,以便mysql在"parque_test”上注册除"tabelas_temporais“之外的所有活动。

cat /etc/mysql/my.cnf"

...

#log_bin = /var/log/mysql/mysql-bin.log

log_bin=/mysql-log/bin-log

binlog_do_db=parque_test

binlog_do_db=parque_prod

expire_logs_days = 10

max_binlog_size = 100M

#binlog_do_db = include_database_name

#binlog_ignore_db = include_database_name

binlog_ignore_db=tabelas_temporais

...

所有临时表都是在"tabelas_temporais“模式上创建的;但是,当执行"parque_test”中的存储过程时,二进制日志仍然记录“parque_test”上的活动,其中包含一个命令,如

DROP TEMPORARY TABLE IF EXISTS tabelas_temporais.temp_mod_user;

任何帮助都将不胜感激!

mysql 14.14远端5.5.40,debian gnu (x86_64)使用readline 6.2

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-10 13:25:00

如果您不知道MySQL二进制日志中的数据库筛选是如何工作的,则可能会有些意外。从手册上

当使用基于语句的日志记录时,下面的示例不像您所期望的那样工作。假设服务器是用--binlog-ignore-db=sales启动的,然后发出以下语句: USE prices;UPDATE sales.january SET amount=amount+1000; 在这种情况下会记录UPDATE语句,因为--binlog-ignore-db只应用于默认数据库(由USE语句确定)。因为sales数据库是在语句中显式指定的,所以没有对语句进行筛选。但是,在使用基于行的日志记录时,UPDATE语句的效果不会写入二进制日志,这意味着不会记录对sales.january表的更改;在这种情况下,--binlog-ignore-db=sales会导致对销售数据库主副本中的表所做的所有更改都被忽略,以便进行二进制日志记录。

简而言之:您可能希望查看基于ROW的日志记录,而不是STATEMENTMIXED。然而:

您应该记住,用于记录给定语句的格式不一定与binlog_format值所指示的格式相同。例如,像CREATE和ALTER这样的DDL语句总是记录为语句,而不考虑实际的日志记录格式,因此以下基于语句的--binlog-忽略-db规则总是适用于确定语句是否被记录。

DROP也是一个被记录的DDL。所以,这是不是意味着不可能?相反地

……临时表仅在使用基于语句的复制时记录,而对于基于行的复制则不记录。对于混合复制,临时表通常会被记录;用户定义函数(UDF)和UUID()函数都会出现异常.

因此,简而言之,对于“正常”表,如果在记录的模式中工作,这几乎是不可能的,但是,默认情况下,TEMPORARY表在基于ROW的复制中被丢弃。这意味着:切换到基于ROW的复制,您不需要对真正的临时表使用不同的模式。

但是,如果您需要从STATEMENT / MIXED切换到基于ROW的复制,请检查此复制的性能,如果您经常执行大容量更新(许多行受影响),则您的绑定日志将更大一些,因为它将记录每一行更改的情况,而不是导致其发生变化的单一“简单”UPDATE语句。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27401551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档