C# 如何备份和恢复Mongodb数据库

C# 如何备份和恢复Mongodb数据库,c#,mongodb,backup,restore,C#,Mongodb,Backup,Restore,如何使用C#备份和恢复Mongodb数据库?目前,只有一台服务器可以保存mongodb数据,我想在服务器被破坏的情况下进行备份,以便恢复它 有人知道如何使用C#实现这一点吗?如果您只想实现自动备份,有一种比使用成熟的编程语言更简单的方法: 如链接所示,下面的命令就足够了。您可以将其放入statup脚本/守护程序中,以常规频率执行: 备份: lvcreate --size 100M --snapshot --name mdb-snap01 /dev/vg0/mongodb 恢复: lvcrea

如何使用C#备份和恢复Mongodb数据库?目前,只有一台服务器可以保存mongodb数据,我想在服务器被破坏的情况下进行备份,以便恢复它


有人知道如何使用C#实现这一点吗?

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

如链接所示,下面的命令就足够了。您可以将其放入statup脚本/守护程序中,以常规频率执行:

备份:

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
蒙古拉布网站()提供了一个有用/简单的示例:

备份使用mongodump

% mongodump -h ds012345.mongolab.com:56789 -d dbname -u dbuser -p dbpassword -o dumpdir
% mongorestore -h ds023456.mongolab.com:45678 -d dbname -u dbuser -p dbpassword dumpdir/*
恢复请使用mongorestore

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

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

mongodump-d数据库\u名称-o存在mongodb\u的目录

要恢复,请使用此命令


mongorestore-d数据库名称mongodb\u restore\u目录

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

首先,确保您的MongoDB安装目录位于环境路径中,并且您能够访问mongodump命令。MongoDB通常安装在Windows上的
~\ProgramFiles\MongoDB\Server\\bin

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

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

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

当您点击enter时,该实用程序将在
dump/dbname
子目录中创建BSON和元数据JSON备份文件

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

mongorestore/host:localhost/port:27017

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


希望这有帮助

如果是一次性备份的问题,那么您真的需要编程语言吗?或者您想每隔n天/小时或其他时间创建一个自动备份?是的,我只想创建一个自动备份程序。此外,此示例适用于linux。如果您使用的是windows,您可以尝试mongodump&mongorestore实用程序:谢谢您的建议,我已经阅读了链接,它对我很有用。我使用以下命令:mongodump-h xxx.xx.xxx.xx-d test-o e:\dd在本地文件中备份reomte服务器的mongodb数据,但总是返回一个socketException错误:9001,您知道为什么吗?