关于 5月10号 数据丢失问题反馈

关于5月10号 数据丢失问题反馈。

整个异常持续时间从 5月10日 10点开始到10点17分,一共持续了17分钟,检查日志主要是【强制关闭Redis快照导致不能持久化】 导致的。程序上面出现以下日志。

第一个

ERR Error running script (call to f_a08c9c69b7c07ae2485190873b90d128a23e502d): @user_script:1: @user_script: 1: -MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error.

第二个

MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error.

参考网上的解决方案:https://segmentfault.com/q/101000001635782...

我先使用命令行解决了打不开的问题。

config set stop-writes-on-bgsave-error no

事后网上查了一下,这个错误信息是Redis客户端工具在保存数据时候抛出的异常信息,很多人都是建议config set stop-writes-on-bgsave-error no。这样做其实是不好的,这仅仅是让程序忽略了这个异常,使得程序能够继续往下运行,但实际上数据还是会存储到硬盘失败!

参考:http://www.cnblogs.com/qq78292959/p/399434...

发现是因为内存设置问题。后来才发现本地的 redis 没有使用配置文件启动。

当时处理的时候发现内存还有很多,但是就是写入磁盘失败了。

Redis在保存数据到硬盘时为了避免主进程假死,需要Fork一份主进程,然后在Fork进程内完成数据保存到硬盘的操作,如果主进程使用了4GB的内存,Fork子进程的时候需要额外的4GB,此时内存就不够了,Fork失败,进而数据保存硬盘也失败了。

所以商家设置项的数据就存在了内存里面,没有写入到硬盘中。

晚上的时间迁移 redis 到云上面,需要重启 redis,重启前没有备份 redis 数据,导致重启后丢失了很多 key,导致商户设置项的数据丢失了。

本作品采用《CC 协议》,转载必须注明作者和本文链接
宇宙最厉害
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!