Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

有关binlog如何清理的一些疑问 #150

Open
seeIT-51 opened this issue Aug 11, 2021 · 7 comments
Open

有关binlog如何清理的一些疑问 #150

seeIT-51 opened this issue Aug 11, 2021 · 7 comments

Comments

@seeIT-51
Copy link

seeIT-51 commented Aug 11, 2021

Description

最近几天在试用tendis, 这个产品很棒,感谢大家的开源,遇到几个问题不是很明白,请教如下:

  1. dump中存储的binlog是否可以禁用? 因为我的场景是想适配单机和集群,现在虽然启用了集群模式,但是只有一个节点,想在这种情况下把binlog禁掉,否则会即占用I/O,又占用磁盘空间。
  2. 如果binlog暂时不支持禁用,那应该如何清理,发现它占用的空间比db的数据还大
  3. 重启一次tendis,binlog还会复制一份?又增大了它的空间
  4. 尝试将binlog都删除,tendis重启失败,是有什么校验机制?问题又回到2,应该如何清理呢?

以上是基本的可长时间稳定运行的基础,还请提供一个详细些的配置手册,感谢

使用版本如下:
image

@TendisDev
Copy link
Collaborator

你好

  1. 预计2.5.0支持禁用dump 出binlog
  2. 可以直接删除binlog,除了最新的文件意外。在删除binlog之前可以执行binlogflush
  3. 理论上只要不删除最新的binlog文件,不会有这个现象
  4. 不要删除最新的binlog文件,用于保留至少一个文件

@seeIT-51
Copy link
Author

@TendisDev
你好,感谢回复;
针对问题2, binlogflush是在删除binlog前必须执行么?
针对问题3,测试的情况是,在不删除binlog情况下,跑了一段时间后重启,如果重启成功,必然会复制一份新的binlog出来,不知道是否配置的原因
如下是我的配置,不知是否有问题:

image
image

@TendisDev
Copy link
Collaborator

@seeIT-51
请问有slave节点吗? binlog导出如果有slave只会在slave中导出

问题2:也可以不执行binlogflush,只要保证最后一个binlog文件不被清理
问题3:初步配置看起来没太大问题,binlogDelRange可以调大到50000
如果重启成功,必然会复制一份新的binlog出来
这个意思是已经导出的binlog重复导出了?怎么确定不是新的binlog

@seeIT-51
Copy link
Author

@TendisDev
你好,测试时没有slave节点。
因为现在都在定时清理binlog了,所以也没有仔细观察了。
测试时应该时设置binlogFileSizeMB = 1了, 然后发现重启后,复制了一份和之前一样的binlog(个数和文件大小),此时还没有新写入数据。。

后面有时间我再复现一下。

@seeIT-51
Copy link
Author

seeIT-51 commented Aug 26, 2021

@TendisDev
你好,配置了自动删除binlog,如下:
image

但是看 dataset,binlog的sst还是占用了很大空间,不会自动清除么? 3个master节点都是如此, 正确的清除binlog文件的方式是?
image

@TendisDev
Copy link
Collaborator

通过config get *binlog*确认下以下参数是否都生效了?
image

@takenliu
Copy link
Collaborator

db目录下有普通的数据和binlog数据,这里面的binlog只保留一部分,通过maxBinlogKeepNum和minBinlogKeepSec参数一起控制具体保留多少。
不再保留的binlog会自动写入到dump目录中去,这里面的binlog文件不会自动删除,会越来越多,需要写脚本定期删除,删除的时候要保留最新的那一个文件。
dump目录里binlog的作用:一般来说是需要定期拷贝到冷备系统,拷贝完就可以删除了,冷备系统的binlog配合全量备份,可以用来回档,也就是把数据恢复到之前到某个时间点去。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants