当前位置: 首页 > 知识库问答 >
问题:

AWS-EC2 Redis服务器RDB快照写入错误

鲁城
2023-03-14

我有一个运行在Laravel5.2框架上的web应用程序,会话驱动程序设置为redis,并遵循AWS设置。

>

  • 实例-1:运行Web应用程序,. env文件中的Redis配置如下

    1. Redis主机:aws-private-ip-of-instance-2

    实例2:运行以下配置的Redis服务器

    1. 绑定AWS-私有ip-实例2和127.0.0.1
    2. 工作目录/var/lib/redis具有775权限,ower-group是redis。
    3. RDB快照名称dump.rdb具有660权限,ower-group为redis

    注意:在AWS中,端口6379的入站规则是为Instance-2配置的。

    一切正常,直到redis尝试将数据写入RDB文件。前端显示以下错误。

    Miscf Redis配置为保存RDB快照,但目前无法在磁盘上持久化。禁用可能修改数据集的命令。有关错误的详细信息,请查看Redis日志。

    在Redis服务器的日志中,我得到了以下数据。

    4873:M 23 Sep 10:08:15.028 * 1 changes in 900 seconds. Saving...
    4873:M 23 Sep 10:08:15.028 * Background saving started by pid 7392
    7392:C 23 Sep 10:08:15.028 # Failed opening .rdb for saving: Read-only file system
    4873:M 23 Sep 10:08:15.128 # Background saving error
    

    我尝试过的事情

    • 添加虚拟机。Overmit_memory=1到/etc/sysctl。conf,正如Redis Administration博客中所建议的那样
    • 将路径更改为转储。将rdb文件更改为tmp文件夹,并将权限更改为777
  • 共有2个答案

    何峰
    2023-03-14

    嗯,这是非常尴尬的张贴自己的问题的答案,这是一个非常愚蠢的错误。但希望这里的新朋友也能从我的错误中吸取教训。

    >

    观察日志并了解我的redis端口6379对Internet上的每个人开放。

    所以从日志中,我观察到其他人的服务器正在欺骗我的redis服务器并使其成为它的奴隶。由于我的redis服务器以只读的方式配置,当我尝试访问我的redis服务器时,它会抛出只读错误。

    • 在为redis服务器端口应用防火墙之后,我再也没有遇到过这个问题
    耿永寿
    2023-03-14

    这另一个堆栈交换线程可能会有所帮助,因为您正在为数据使用自定义/tmp目录:

    执行此操作的简单方法是运行systemctl edit redis。这将在文件etc/systemd/system/redis中创建一个覆盖下拉列表。服务d/override。conf,您可以在其中放置更改(以及适当的部分):

    [服务]读写目录=-/my/custom/data/dir

    您也可以创建该目录并放置以<代码>结尾的文件。手动输入conf。但不要将目录留空,因为这将禁用该服务。

    在任何一种情况下,运行systemctl daemon-reload,您就可以重新启动服务了。

    许多线程还指出文件系统不一致是根本原因。由于您使用的是EC2,请查看此AWS论坛帖子:

    要解决此问题,您必须:

    >

  • 停止实例

    分离实例的根卷

    将卷作为数据卷附加到同一可用性区域中任何正在运行的Linux实例

    对卷执行文件系统检查(fsck)并修复问题

    分离卷并将其附加回实例,因为它是根卷

    引导回实例并验证卷是否能够成功装载

    作为最后手段,如果可能,请终止实例。

    希望有帮助!

  •  类似资料:
    • 我想了解如何将EC2快照备份到S3存储桶,然后将其导入。 我发现AWS CLI可以将快照导出到S3,这里解释了如何将AWS快照复制到S3 我还从AWS CLI引用中找到了import命令,但我未能执行该命令,因为我不了解该选项https://docs.aws.amazon.com/cli/latest/reference/ec2/import-snapshot.html 有人能解释一下如何使用这个

    • 当我试图保存到redis时,我遇到了这个问题。介绍以下信息。 Miscf Redis配置为保存RDB快照,但目前无法保存到磁盘。可能修改数据集的命令被禁用,因为此实例配置为在RDB快照失败时报告写入期间的错误(在bgsave error选项上停止写入)。请检查红色 redis日志文件显示: 后台保存由pid 73启动在磁盘上保存数据库时发生写入错误:功能未实现 有人经历过这种情况吗?

    • 问题内容: 在写入Redis()期间,出现以下错误: MISCONF Redis配置为保存RDB快照,但当前无法持久保存在磁盘上。禁用了可能修改数据集的命令。请检查Redis日志以获取有关该错误的详细信息。 基本上,我了解到问题在于redis无法将数据保存在磁盘上,但是不知道如何解决该问题。 同样,以下问题也有相同的问题,它很久以前就被抛弃了,没有答案,很可能没有尝试解决该问题。 问题答案: 万一

    • 在写入Redis()的过程中,我收到以下错误: MISCONF Redis配置为保存RDB快照,但当前无法在磁盘上持久保存。禁用可能修改数据集的命令。有关该错误的详细信息,请查看Redis日志。 基本上,我知道问题是redis不能在磁盘上保存数据,但不知道如何解决这个问题。 下面的问题也有同样的问题,它很久以前就被放弃了,没有答案,很可能也没有试图解决问题。

    • 与此类似的问题有几个,如: Redis被配置为保存RDB快照,但它目前无法持久保存在Disk-Ubuntu服务器上 MISCONF Redis配置为保存RDB快照,但当前无法在磁盘上持久保存。禁用可能修改数据集的命令 当Redis安装在Docker之外时,这就可以工作了。但是我如何用docker-compose运行这个命令呢? 我尝试了以下操作: 这不起作用: 怎么解决这个?

    • 我在Ubuntu 14.04上安装了redis,而且我似乎几乎每周都有完成RDB快照的问题。Redis版本是3.0.4 64位。 3838:M 24 Feb 09:46:28.826*后台保存成功终止 3838:M 24 Feb 09:47:29.088*在60秒内更改100000次。拯救 3838:M 24 Feb 09:47:29.230*后台保存由pid 17281启动 17281:信号处理