首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql二进制日志使磁盘满

mysql二进制日志使磁盘满
EN

Drupal用户
提问于 2011-05-22 12:44:28
回答 2查看 3.2K关注 0票数 7

突然,我关闭了我的网站(drupal 6.19),无法启动mysql (太多的表崩溃了)。通过检查df -h,我发现由于非常大的二进制日志文件(我只保留二进制日志一天,expire_logs_days =1),MySQL分区是满的;通过检查mysqlbinlog中的一个bin日志,我发现大多数条目都是用于缓存表(cache_form、boost_cache、boost_cache_relationships、cache_content等)和会话表;有些数据多次重复。

顺便说一句,我有手表ls -lh和bin日志文件成倍增长(每隔一到两分钟我就有新的100 m文件大小的binlog文件!)

你知道是什么原因造成的吗?我怎样才能解决这个问题?

EN

回答 2

Drupal用户

回答已采纳

发布于 2011-05-22 15:38:17

我想一个明显的改进是使用不同的缓存后端。

如果您有一个服务器和足够的内存,您可以使用APC后端(D6:http://drupal.org/project/cacherouter,D7:http://drupal.org/project/apc)直接在共享内存中使用各种常用的缓存。这可能是您能得到的最快的缓存解决方案。

另一种选择是梅卡奇,如果您有多个应该共享缓存的服务器,这一点特别有趣。

请注意,您不能移动cache_form,因为它包含有关当前显示的表单的信息,并不是真正的缓存,因为它包含唯一的信息,而不仅仅是聚合的东西,比如其他的东西,这些东西总是可以被清除的。另外,还有一些其他缓存,特别是cache_update,您可能希望保留在数据库中,因为它不应该像其他缓存那样清除,因为它包含有关已使用模块的更新信息的信息,这种信息不会经常更改,如果有很多模块,那么重新获取的速度会非常慢。

您还可以将会话信息移出数据库,例如,您可以将其放在MongoDB中,而且可能还有其他的。

票数 6
EN

Drupal用户

发布于 2011-05-22 18:10:48

你查过你的垃圾箱日志的日期了吗?expire_logs_days设置不是“自动魔术”。它只在重新启动mysql或执行命令flush_logs或到达最大值时才生效。

然后mysql应该旋转当前的日志文件(创建一个新的日志文件),并删除超过1天的文件(在您的例子中)

尝试在您的my.cnf中设置最后一个设置,看看它是否与expire_log_days结合使用。

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

https://drupal.stackexchange.com/questions/3981

复制
相关文章

相似问题

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