流星:如何备份我的 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 数据库的主要内容,如果未能解决你的问题,请参考以下文章