2012-02-21 167 views
2

我正在使用MongoDB的一个实例只有一个节点。我想编写一个web服务,将数据文件fsyncs并将它们压缩到备份文件夹中。MongoDB如何使用Java驱动程序查找数据目录

理想情况下,我将以编程方式获取数据目录的位置(而不是读取配置文件),以便我可以轻松地将此从开发移植到安装路径不同的生产计算机。有没有办法使用Java驱动程序来做到这一点?

+0

你找麻烦试图备份的MongoDB的方式。很可能你会损坏文件。这就是为什么'mongoexport'工具存在的原因。 – 2012-04-23 04:05:37

+0

即使我停止数据库?我觉得只是复制文件可能会更快? – Eduardo 2012-04-23 07:04:00

+0

那么,使用['mongodump'](http://www.mongodb.org/display/DOCS/Import+Export+Tools#ImportExportTools-mongodump)。复制文件可能会更快,也可能会更慢,因为它可能包括复制文件中的大量可用空间。但是从文件备份恢复只能让您选择稍后重新创建您的配置(配置和全部)。通过备份到数据库的可移植表示,可以实现稍后合并数据或仅备份数据库的某些部分。 – 2012-04-23 07:12:20

回答

3

尝试使用管理员 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 
} 
0

您可以使用mongoexport来获取数据;从生产机器运行它并指定开发机器的主机/端口/集合。可以使用mongoimport将数据导入生产机器。

+0

开发和主机不在同一个网络上。我不需要将数据从一个传输到另一个。这是我的应用程序将触发备份。我宁愿fsync和压缩(不知道mongoexport +压缩将采取多快)。我看了很多,似乎没有办法以编程方式获取数据目录的位置。我想我必须通过配置来完成它 – Eduardo 2012-02-27 21:05:15

相关问题