现象
系统变为只读,写入操作会失败
Database is read-only, and does not accept non-query operation now
原因
1.0 版本后可以通过 show cluster 查看系统状态
- 如果是 ReadOnly(Disk-Full)则是磁盘满
- 如果是 ReadOnly,可能是遇到了 IO 错误或者 OOM,可以进一步在日志中搜索
system mode to read-only
,在系统状态转为 ReadOnly 时,会打一条日志,并输出原因
0.13 及以前版本只能通过日志搜索
解决方法
- ReadOnly(Disk-Full)时
- 设置 TTL 清除老数据:https://timecho.com/docs/zh/UserGuide/V1.3.x/User-Manual/Operate-Metadata.html#ttl
- 设置系统状态为 Running:
set system status to running
或重启
- ReadOnly 时
- 重启恢复
- 根据日志中找到的具体原因进行对应操作和预防
提示
delete 删除操作是标记删除,也是需要磁盘空间记录标记文件的,所以不能在 ReadOnly 时使用。可以使用 TTL,会直接把过期的数据文件删掉。