删除庞大的MySQLbinlog实操

以下的文章主要描述的是清理删除庞大的MySQL binlog的实际操作方案,我们是在MySQL master/slave架构的环境下对清理删除庞大的MySQL binlog进行操作,以下就是文章的具体内容描述。

目前创新互联已为成百上千的企业提供了网站建设、域名、虚拟主机网站托管运营、企业网站设计、碌曲网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

问题:主库硬盘不足s

原因:MySQL的var下大量bin二进制log,200多个g啊

目标:安全删除MySQL binlog

方法:网上搜搜关键词“MySQL bin文件 删除”,还真有~~

相关语句:

 
 
 
  1. PURGE {MASTER | BINARY} LOGS TO 'log_name'  
  2. PURGE {MASTER | BINARY} LOGS BEFORE 'date'  

用于删除列于在指定的日志或日期之前的日志索引中的所有二进制日志。这些日志也会从记录在日志索引文件中的清单中被删除,这样被给定的日志成为第一个。

例如:

 
 
 
  1. PURGE MASTER LOGS TO 'MySQL-bin.010';  
  2. PURGE MASTER LOGS BEFORE '2003-04-02 22:46:26'; 

BEFORE变量的date自变量可以为'YYYY-MM-DD hh:mm:ss'格式。MASTER和BINARY是同义词。

如果您有一个活性的从属服务器,该服务器当前正在读取您正在试图删除的日志之一,则本语句不会起作用,而是会失败,并伴随一个错误。不过,如果从属服务器是休止的,并且您碰巧清理了其想要读取的日志之一,则从属服务器启动后不能复制。当从属服务器正在复制时,本语句可以安全运行。您不需要停止它们。

删除庞大的MySQL binlog 要清理日志,需按照以下步骤:

1. 在每个从属服务器上,使用SHOW SLAVE STATUS来检查它正在读取哪个日志。

2. 使用SHOW MASTER LOGS获得主服务器上的一系列日志。

3. 在所有的从属服务器中判定最早的日志。这个是目标日志。如果所有的从属服务器是更新的,这是清单上的最后一个日志。

4. 制作您将要删除的所有日志的备份。(这个步骤是自选的,但是建议采用。)

5. 清理所有的日志,但是不包括目标日志

实践:

从库下---

MySQL> show slave status\G;

……

Master_Log_File: tc-ns-comment-db00-bin.000162

Relay_Master_Log_File: tc-ns-comment-db00-bin.000162

……

主库下---

MySQL> show master log;

…………一堆堆

MySQL> PURGE MASTER LOGS TO 'tc-ns-comment-db00-bin.000070';

……等待n长时间

 
 
 
  1. MySQL>quit  
  2. $du -sh ./  

 

减少了好多g啊,世界清净了~~

上述的相关内容就是对删除庞大的MySQL binlog的描述,希望会给你带来一些帮助在此方面。

网页题目:删除庞大的MySQLbinlog实操
网站地址:http://www.gawzjz.com/qtweb/news5/194955.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联