我使用的是redis 3.0.6版本。 redis-server 进程正在由 redis 用户运行。
突然从 24 小时后的 5 天开始,redis 开始失败“打开 .rdb 进行保存”。在此之前它工作正常。
正如您在下面的日志片段中看到的那样,Redis 运行正常,然后开始出现故障。随后重新启动服务器电源解决了该问题。
1427:M 24 May 01:09:05.102 * Background saving started by pid 2493
2493:C 24 May 01:09:34.916 * DB saved on disk
2493:C 24 May 01:09:34.917 * RDB: 310 MB of memory used by copy-on-write
1427:M 24 May 01:09:34.950 * Background saving terminated with success
1427:M 24 May 01:14:35.026 * 10 changes in 300 seconds. Saving...
1427:M 24 May 01:14:35.036 * Background saving started by pid 2494
2494:C 24 May 01:15:04.329 * DB saved on disk
2494:C 24 May 01:15:04.330 * RDB: 298 MB of memory used by copy-on-write
1427:M 24 May 01:15:04.408 * Background saving terminated with success
1427:M 24 May 01:20:05.008 * 10 changes in 300 seconds. Saving...
1427:M 24 May 01:20:05.018 * Background saving started by pid 2499
2499:C 24 May 01:20:33.830 * DB saved on disk
2499:C 24 May 01:20:33.831 * RDB: 330 MB of memory used by copy-on-write
1427:M 24 May 01:20:33.843 * Background saving terminated with success
1427:M 24 May 01:23:46.966 # Failed opening .rdb for saving: Read-only file system
1427:M 24 May 01:25:34.029 * 10 changes in 300 seconds. Saving...
1427:M 24 May 01:25:34.038 * Background saving started by pid 2500
2500:C 24 May 01:25:34.038 # Failed opening .rdb for saving: Read-only file system
1427:M 24 May 01:25:34.139 # Background saving error
1427:M 24 May 01:25:40.059 * 10 changes in 300 seconds. Saving...
1427:M 24 May 01:25:40.064 * Background saving started by pid 2501
2501:C 24 May 01:25:40.064 # Failed opening .rdb for saving: Read-only file system
1427:M 24 May 01:25:40.165 # Background saving error
1427:M 24 May 01:25:46.080 * 10 changes in 300 seconds. Saving...
1427:M 24 May 01:25:46.085 * Background saving started by pid 2502
2502:C 24 May 01:25:46.085 # Failed opening .rdb for saving: Read-only file system
1427:M 24 May 01:25:46.186 # Background saving error
1427:M 24 May 01:25:52.100 * 10 changes in 300 seconds. Saving...
1427:M 24 May 01:25:52.105 * Background saving started by pid 2503
2503:C 24 May 01:25:52.105 # Failed opening .rdb for saving: Read-only file system
1427:M 24 May 01:25:52.206 # Background saving error
所以,我的问题是:这怎么可能发生? 请给我适当的解决方案。
我认为“只读文件系统”是这里的关键。它尝试写入的设备可能安装不正确,但由于它是随机发生的,系统可能会强制文件系统进入只读模式。有许多条件可以触发操作系统将文件系统置于只读模式。这可能意味着文件系统已损坏或存在其他一些文件系统一致性问题。如果您托管在云提供商上并且磁盘由网络支持(例如 AWS 中的 EBS),则这可能会由临时网络问题触发。有时问题是暂时的,强制重新安装分区(或重新启动服务器)将解决问题。其他时候它是永久性的,但由于您的服务器恢复得很好,所以情况似乎并非如此。但真正的解决办法在于你的硬件设置,但它并不详细。
这个答案是相关的,尽管“为什么”很薄弱:无法打开 RDB 文件......只读文件系统
升级后..(Ubuntu 14.04 LTS)
我曾向 redis 抱怨过这一点。文件系统不是 RO。很好。
kill -9 REDIS-PROCESS # 否则它不会死。循环错误。
删除了已经存在的dump.rdb文件..
再次启动 REDIS,问题似乎消失了。 (我刚刚做到了..所以事情可能会回来..)
看起来可能是升级问题..
你可以检查你的redis.conf,在这个配置文件中你可以找到dbfilename在哪里,
授予权限 755 'dir',其中包含 dbfilename,它是 /var/lib/redis (centos), 用户和组为“redis”,但目录中的文件应该为 644。
重启redis。
就我而言,我使用
redis-stack-server
遇到了类似的问题,.rdb
文件是在位置 /var/lib/redis-stack
创建的
按如下方式更改权限解决了问题。
RUN chmod -R 777 /var/lib/redis-stack