【问题标题】:Set storage location of MongoDB installed on AWS EC2 Instance to EBS storage. And How do I recover It after instance is stopped/terminated?将安装在 AWS EC2 实例上的 MongoDB 的存储位置设置为 EBS 存储。实例停止/终止后如何恢复它?
【发布时间】:2017-01-24 20:39:28
【问题描述】:

大家好,我是 AWS 新手。我已经创建并实例化并在其上安装了 MongoDB。但是我从 EC2 文档中了解到,存储在 EC2 机器上的数据一旦停止或终止就会被破坏。所以我必须使用 EBS 来存储数据。

在创建 EC2-Instance 的第四步,我选择了卷

但我不知道如何使用它。是 EC2-Instance 自动使用它来存储数据还是我们必须手动执行。 我知道要更改数据库存储,我们必须更改名为 mongod.conf 的文件并在那里修改 dbpath,但我不知道在那里提供什么路径。在那之后,如果我销毁了那个实例,我就会取回 EBS 存储。 提前感谢您的帮助。

【问题讨论】:

    标签: mongodb amazon-web-services amazon-ec2 amazon-ebs


    【解决方案1】:

    在您的屏幕截图中,EBS 卷是实例的根卷。因此,除非您向实例添加其他卷,否则持久保存到该实例磁盘上的所有内容都将存储在 EBS 卷上。您可以选择(或创建)任何位置来存储您的数据库。

    【讨论】:

    • 好的,所以你说的是根卷而不是问题中的 EBS 卷,对吧?那么,如果我添加另一卷通用 SSD 的 EBS,那么在我必须要做的事情之后,我会问这个问题。
    • 在您的屏幕截图中,根卷是一个 EBS 卷。如果您添加了更多卷,您将在操作系统中安装该卷,然后将安装点用作数据库的位置。这已经有据可查docs.aws.amazon.com/AWSEC2/latest/UserGuide/…
    • hello @MarkB 正如你所说,我创建了一个卷并将其挂载到名为 data 的目录中,所以现在如果我将我的数据库存储到 data 文件夹,那么它将存储在EBS 音量正确。抱歉,我知道这很尴尬,但我对 AWS 非常陌生,并且担心数据。还有一件事,如果我的实例位于不同的区域/子区域并且我想连接到其中包含数据的 EBS 卷,有什么办法可以做到这一点。再次感谢。
    • 是的,没错。如果您将 EBS 卷挂载到 /data,则 /data 中存储的文件将在 EBS 卷上。
    【解决方案2】:

    按照here的说明正确挂载EBS卷后,您可以使用以下步骤将数据存储到EBS卷。

    • 编辑 mongod.conf 文件。
      sudo nano /etc/mongod.conf

    • 将dbpath=/var/lib/mongodb行更改为新的路径存储位置,例如dbpath=/data/mongodb

    • 更新您选择的路径的权限以允许 MongoDB 用户对其进行写入,例如chown $USER -R /home/user/data/mongodb
      在大多数情况下,您的用户是 mongodb。所以你可以用 mongodb:mongodb

      替换 $USER
    • 重启服务
      sudo service mongod stop 然后sudo service mongod start

    请注意,如果您在旧位置有任何数据要保留,请注意,您需要先停止 MongoDB 服务,手动移动文件,然后重新启动服务。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-13
      • 1970-01-01
      • 1970-01-01
      • 2015-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多