Redis – 无法打开 .rdb 进行保存:权限被拒绝

问题描述 投票:0回答:4

我使用的是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

所以,我的问题是:这怎么可能发生? 请给我适当的解决方案。

redis
4个回答
4
投票

我认为“只读文件系统”是这里的关键。它尝试写入的设备可能安装不正确,但由于它是随机发生的,系统可能会强制文件系统进入只读模式。有许多条件可以触发操作系统将文件系统置于只读模式。这可能意味着文件系统已损坏或存在其他一些文件系统一致性问题。如果您托管在云提供商上并且磁盘由网络支持(例如 AWS 中的 EBS),则这可能会由临时网络问题触发。有时问题是暂时的,强制重新安装分区(或重新启动服务器)将解决问题。其他时候它是永久性的,但由于您的服务器恢复得很好,所以情况似乎并非如此。但真正的解决办法在于你的硬件设置,但它并不详细。

这个答案是相关的,尽管“为什么”很薄弱:无法打开 RDB 文件......只读文件系统


1
投票

升级后..(Ubuntu 14.04 LTS)

我曾向 redis 抱怨过这一点。文件系统不是 RO。很好。

kill -9 REDIS-PROCESS # 否则它不会死。循环错误。

删除了已经存在的dump.rdb文件..

再次启动 REDIS,问题似乎消失了。 (我刚刚做到了..所以事情可能会回来..)

看起来可能是升级问题..


1
投票
  1. 你可以检查你的redis.conf,在这个配置文件中你可以找到dbfilename在哪里,

  2. 授予权限 755 'dir',其中包含 dbfilename,它是 /var/lib/redis (centos), 用户和组为“redis”,但目录中的文件应该为 644。

  3. 重启redis。


0
投票

就我而言,我使用

redis-stack-server
遇到了类似的问题,
.rdb
文件是在位置
/var/lib/redis-stack

创建的

按如下方式更改权限解决了问题。

RUN chmod -R 777 /var/lib/redis-stack 
© www.soinside.com 2019 - 2024. All rights reserved.