流星:如何备份我的 mongodb 数据库

Posted

技术标签:

【中文标题】流星:如何备份我的 mongodb 数据库【英文标题】:meteor: how can I backup my mongo database 【发布时间】:2013-05-24 21:19:54 【问题描述】:

如何备份我的流星 mongo 数据库?

如果我跑:

meteor mongo

mongodump 命令在流星 mongoshell 中不起作用

【问题讨论】:

mongodump 不会从 mongo shell 运行。您需要从 mongodb.org 为您的平台下载全套 mongodb 工具 【参考方案1】:

首先你需要启动流星。

如果你跑了

meteor mongo

你会得到类似这样的输出:

MongoDB shell 版本:2.2.1

连接到:127.0.0.1:3001/meteor

Meteor db 主机位于 127.0.0.1,端口为 3001。 退出 mongo shell 并从终端使用 mongodump。

mongodump -h 127.0.0.1 --port 3001 -d meteor

转储将位于您执行上述命令的文件夹中的转储文件夹下。

您可以使用以下命令将数据库导入流星

mongorestore -h 127.0.0.1 --port 3001 -d meteor dump/meteor

【讨论】:

我必须用这样的主机号指定端口:“mongodump -h 127.0.0.1:3002 --port 3002 -d meteor” 端口已更改为 3001 嗯...我得到:“SyntaxError: Unexpected number” 有什么想法吗? 如果你得到意外的数字——你是在meteor mongo之后在控制台中执行这个操作——你需要退出那个shell,这一步只是为了显示你的主机地址 对我来说,这个命令以一个空的dump/meteor 目录退出。没有错误。【参考方案2】:

如果您需要备份部署到 meteor.com 的流星应用程序数据库,请按照以下步骤操作:

    确保您已登录到您的流星开发帐户并生成一个临时连接链接 $ cd yourapp $ meteor login $ meteor mongo yourapp.meteor.com --url

你会得到类似的东西:

mongodb://client-ID:password-3be8-f6c5-50a9-password@production-db-b1.meteor.io:27017/yourapp_meteor_com

此链接将在 1 分钟后过期,所以抓紧时间! :)

    使用 mongodump 命令创建备份 (http://docs.mongodb.org/manual/tutorial/backup-with-mongodump/#backup-from-non-local):

    $ mongodump -h production-db-b1.meteor.io --port 27017 --username client-ID --password password-3be8-f6c5-50a9-password -d yourapp_meteor_com

这会将整个远程数据库备份到默认的转储/文件夹中。 瞧!

    如果您需要将数据库导入本地流星 mongo 数据库,请启动一个 mongo shell: $ meteor mongo MongoDB shell version: 2.4.9 connecting to: 127.0.0.1:3001/meteor

在另一个终端使用mongorestore 命令

$ mongorestore --port 3001

【讨论】:

这对我不起作用。我每次都收到身份验证失败错误。 这很好用。当我太慢时,我得到了auth fails 错误。或者你可能打错了什么。 我创建了一个简单的脚本,它可以在一个命令中执行此操作。希望这会有所帮助:) gist.github.com/brugnara/80f980e4e33da7b87408 为了恢复,我发现我必须这样做:mongorestore -h 127.0.0.1 --port 3001 -d meteor dump/<some directory> 导入后我看到两个独立的数据库 (screenshot)。任何想法如何将我的远程(appname_meteor_com)备份的内容放到主流星数据库?

以上是关于流星:如何备份我的 mongodb 数据库的主要内容,如果未能解决你的问题,请参考以下文章

如何在不同的机器上连接流星和 mongoDB

如何在我的流星应用程序数据库中使用 mongoimport?

检查流星项目中的mongodb版本

如何将流星连接到现有后端?

流星连接

如何使用 mongodb 显示我的用户集合