免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 19421 | 回复: 11
打印 上一主题 下一主题

在什么时候可以调用reset master? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-07-15 14:21 |只看该作者 |倒序浏览
目前我的数据库是master/slave结构。我可不可以在running的状态下运行reset master来清除mysql-bin.0000*,这条指令对slave有没有什么影响?
mysql-bin.0000*的数据增长太快,很快就能上GB

论坛徽章:
0
2 [报告]
发表于 2008-07-15 14:22 |只看该作者
reset master 不会清除binlog。看看手册吧。

论坛徽章:
1
白银圣斗士
日期:2015-11-23 08:33:04
3 [报告]
发表于 2008-07-15 14:26 |只看该作者
  PURGE {MASTER | BINARY} LOGS TO 'log_name'

  PURGE {MASTER | BINARY} LOGS BEFORE 'date'

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

  例如:

  PURGE MASTER LOGS TO 'mysql-bin.010';

  PURGE MASTER LOGS BEFORE '2008-06-23 15:00:00';

        清除3天前的 binlog

        PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 3 DAY);

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

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

  要清理日志,需按照以下步骤:

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

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

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

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

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


看一下上面的内容。

论坛徽章:
0
4 [报告]
发表于 2008-07-15 14:37 |只看该作者
原来是使用PURGE MASTER LOGS,多谢二位。

文档上说:
12.6.1.2. RESET MASTER Syntax

RESET MASTER

Deletes all binary logs listed in the index file, resets the binary log index file to be empty, and creates a new binary log file.

论坛徽章:
1
白银圣斗士
日期:2015-11-23 08:33:04
5 [报告]
发表于 2008-07-15 14:56 |只看该作者
呵呵,多看资料,多看手册。多google...

论坛徽章:
0
6 [报告]
发表于 2008-07-15 18:29 |只看该作者
原帖由 baicj 于 2008-7-15 14:21 发表
目前我的数据库是master/slave结构。我可不可以在running的状态下运行reset master来清除mysql-bin.0000*,这条指令对slave有没有什么影响?
mysql-bin.0000*的数据增长太快,很快就能上GB

12.6.1.2. RESET MASTER Syntax
RESET MASTER

Deletes all binary logs listed in the index file, resets the binary log index file to be empty, and creates a new binary log file.

建议备份你的的bin-log

论坛徽章:
0
7 [报告]
发表于 2008-07-15 22:26 |只看该作者
后来的测试结果是,reset master清空了master的binlog以后创建了新的binlog,而slave的Master_Log_File和Relay_Master_Log_File没有变化,还是停留在老的master binlog上,导致M/S失败,看来reset master比较危险,是不能在线操作的。
而purge master logs会清理掉当前binlog之前的binlog,可是,就算使用PURGE MASTER LOGS BEFORE NOW(),也不会清理当前的binlog,因为M/S同步机制是使用binlog的行号来定位的。只有binlog的size达到了默认的1GB,才会生成新的binlog,然后才能清理。要想节省磁盘空间,只能设置max_binlog_size参数来达到效果。
对mysql的Replication不太熟,还有很多地方需要学习呀。。

论坛徽章:
1
白银圣斗士
日期:2015-11-23 08:33:04
8 [报告]
发表于 2008-07-15 22:36 |只看该作者
是的。一般是设置这个参数。呵呵。max_binlog_size

论坛徽章:
0
9 [报告]
发表于 2008-07-16 23:32 |只看该作者
原帖由 baicj 于 2008-7-15 22:26 发表
后来的测试结果是,reset master清空了master的binlog以后创建了新的binlog,而slave的Master_Log_File和Relay_Master_Log_File没有变化,还是停留在老的master binlog上,导致M/S失败,看来reset master比较危险 ...

这个是正确的想法。

论坛徽章:
0
10 [报告]
发表于 2008-07-17 09:41 |只看该作者
原帖由 baicj 于 2008-7-15 22:26 发表
后来的测试结果是,reset master清空了master的binlog以后创建了新的binlog,而slave的Master_Log_File和Relay_Master_Log_File没有变化,还是停留在老的master binlog上,导致M/S失败,看来reset master比较危险 ...


Stop slave at first!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP