【问题标题】:Redis – Failed opening .rdb for saving: Permission deniedRedis – 无法打开 .rdb 进行保存:权限被拒绝
【发布时间】:2020-04-17 12:03:08
【问题描述】:

我正在使用 redis 版本 3.0.6。 redis-server 进程正在由 redis 用户运行。

突然从 24 小时后的 5 天开始,redis 开始“打开 .rdb 进行保存”失败。在此之前它工作正常。

正如您在下面的日志中的 sn-p 中看到的,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

那么,我的问题是:这怎么会发生? 请给我适当的解决方案。

【问题讨论】:

  • @holmberd 不,在那个问题中 redis 无法在启动时启动,这似乎是一个不同的故事
  • @beena 你确定只有一个 redis 服务器在运行吗?
  • 您的 redis 服务器托管在哪里?
  • 您能否始终如一地重现该问题?没有它,任何答案都只是猜测

标签: redis


【解决方案1】:

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

这个答案是相关的,尽管“为什么”很薄弱:Failed opening the RDB file ... Read-only file system

【讨论】:

  • 如果再次出现,运行dmesg查看日志,您可能会发现系统为什么将文件系统设置为只读模式。正如 Ryan 所说,如果分区是网络挂载,或者磁盘(或其控制器)出现故障,则可能是网络问题。
【解决方案2】:

升级后..(Ubuntu 14.04 LTS)

我有 redis 抱怨这个.. 文件系统不是 RO。很好。

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

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

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

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

【讨论】:

  • 进展如何?我遇到了同样的随机 RO 错误。
【解决方案3】:
  1. 你可以检查你的redis.conf,在这个配置文件中你可以找到dbfilename在哪里,

  2. 授予权限 755 'dir' 其中包括 dbfilename,它是 /var/lib/redis (centos), 以及用户和组到'redis',但对于目录中的文件,它应该是644。

  3. 重启redis。

【讨论】:

    猜你喜欢
    • 2014-04-05
    • 2017-02-26
    • 2017-03-25
    • 2019-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-29
    • 2020-05-31
    相关资源
    最近更新 更多