【问题标题】:How to backup and restore the Mongodb database如何备份和恢复MongoDB数据库
【发布时间】:2013-03-23 05:53:29
【问题描述】:

如何使用C#备份和恢复Mongodb数据库?目前只有一个服务器保存mongodb数据,我想做一个备份,以防服务器被破坏,这样我可以恢复它。

有人知道如何使用 C# 做到这一点吗?

【问题讨论】:

  • 如果是一次性备份的问题,那你真的需要编程语言吗?或者您想每 n 天/小时创建一次自动备份?
  • 是的,我只是想做一个自动备份程序。

标签: c# mongodb backup restore


【解决方案1】:

来自 mongolab 网站 (http://docs.mongolab.com/backups/) 的一个有用/简单的示例:

备份使用mongodump

% mongodump -h ds012345.mongolab.com:56789 -d dbname -u dbuser -p dbpassword -o dumpdir

恢复使用mongorestore

% mongorestore -h ds023456.mongolab.com:45678 -d dbname -u dbuser -p dbpassword dumpdir/*

【讨论】:

    【解决方案2】:

    如果您只想自动备份,有一种比使用成熟的编程语言更简单的方法:

    http://docs.mongodb.org/manual/tutorial/backup-databases-with-filesystem-snapshots/

    如链接所示,以下命令就足够了。您可以将其放入 statup-script/daemon 以定期执行它:

    备份:

    lvcreate --size 100M --snapshot --name mdb-snap01 /dev/vg0/mongodb
    

    恢复:

    lvcreate --size 1G --name mdb-new vg0
    gzip -d -c mdb-snap01.gz | dd of=/dev/vg0/mdb-new
    mount /dev/vg0/mdb-new /srv/mongodb
    

    【讨论】:

    • 另外,这个例子适用于linux。如果您在 Windows 上,您可以尝试使用 mongodump 和 mongorestore 实用程序:docs.mongodb.org/manual/tutorial/…
    • 感谢您的建议,我已阅读链接,它对我很有用。
    • 我使用以下命令:mongodump -h xxx.xx.xxx.xx -d test -oe:\dd 将reomte服务器的mongodb数据备份到我的本地文件中,但总是返回给我一个socketException 错误:9001,你知道为什么吗?
    【解决方案3】:

    使用 mongodump 进行备份,使用以下命令

    mongodump -d 数据库名称 -o directory_where_mongodb_exists

    要恢复使用这个命令

    mongorestore -d 数据库名称 mongodb_restore_directory

    【讨论】:

      【解决方案4】:

      在这个答案中,我将强调我在第一次这样做时遇到的一些注意事项。希望这对处于相同情况的人有用。尽管该示例使用命令行,但这些实用程序在 Mongo 安装中是开箱即用的,并且可以很好地与 C# 一起使用。

      首先,确保您的 MongoDB 安装目录在环境路径中,并且您可以访问 mongodump 命令。 MongoDB 通常安装在 Windows 上的~\ProgramFiles\MongoDB\Server\<vr>\bin

      从 CMD 访问该实用程序后,导航到您要保存(或转储)备份的目录。

      查看mongodump --help 的选项。 我使用了简单的(完整)备份和恢复。因此,使用命令并指定所需的选项。这是一个例子:

      mongodump /host:ds062199.mlab.com /port:62199 /username:mydbuser /password:mypwd /db:mydbname

      当您按下 Enter 键时,该实用程序将在 dump/dbname 子目录中创建 BSON 和元数据 JSON 备份文件。

      现在,要恢复,请执行以下操作。 请注意,我备份了在 Azure (Mongo Labs) 上运行的 Mongo 实例,并在我的本地计算机上恢复它,如下所示。 在同一目录中(在 cmd 上),执行以下命令:

      mongorestore /host:localhost /port:27017

      它会创建一个新的数据库,作为本地 mongodb 实例上备份的副本。

      希望这会有所帮助!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-04-29
        • 1970-01-01
        • 2014-08-10
        • 1970-01-01
        • 2017-08-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多