我正在使用MongoDB的一个实例只有一个节点。我想编写一个web服务,将数据文件fsyncs并将它们压缩到备份文件夹中。MongoDB如何使用Java驱动程序查找数据目录
理想情况下,我将以编程方式获取数据目录的位置(而不是读取配置文件),以便我可以轻松地将此从开发移植到安装路径不同的生产计算机。有没有办法使用Java驱动程序来做到这一点?
我正在使用MongoDB的一个实例只有一个节点。我想编写一个web服务,将数据文件fsyncs并将它们压缩到备份文件夹中。MongoDB如何使用Java驱动程序查找数据目录
理想情况下,我将以编程方式获取数据目录的位置(而不是读取配置文件),以便我可以轻松地将此从开发移植到安装路径不同的生产计算机。有没有办法使用Java驱动程序来做到这一点?
尝试使用管理员 db.runCommand({getCmdLineOpts:1}),如here所述,然后使用返回的数据进行播放。
实例返回数据是
{
"argv" : [
"mongod",
"--port",
"6669",
"--dbpath=c:\\data\\mongo2",
"--rest"
],
"parsed" : {
"dbpath" : "c:\\data\\mongo2",
"port" : 6669,
"rest" : true
},
"ok" : 1
}
您可以使用mongoexport来获取数据;从生产机器运行它并指定开发机器的主机/端口/集合。可以使用mongoimport将数据导入生产机器。
开发和主机不在同一个网络上。我不需要将数据从一个传输到另一个。这是我的应用程序将触发备份。我宁愿fsync和压缩(不知道mongoexport +压缩将采取多快)。我看了很多,似乎没有办法以编程方式获取数据目录的位置。我想我必须通过配置来完成它 – Eduardo 2012-02-27 21:05:15
你找麻烦试图备份的MongoDB的方式。很可能你会损坏文件。这就是为什么'mongoexport'工具存在的原因。 – 2012-04-23 04:05:37
即使我停止数据库?我觉得只是复制文件可能会更快? – Eduardo 2012-04-23 07:04:00
那么,使用['mongodump'](http://www.mongodb.org/display/DOCS/Import+Export+Tools#ImportExportTools-mongodump)。复制文件可能会更快,也可能会更慢,因为它可能包括复制文件中的大量可用空间。但是从文件备份恢复只能让您选择稍后重新创建您的配置(配置和全部)。通过备份到数据库的可移植表示,可以实现稍后合并数据或仅备份数据库的某些部分。 – 2012-04-23 07:12:20