将mongodb数据库从localhost迁移到远程服务器

Pra*_*dav 41 database-migration mongodb nosql

我在我的本地ubuntu机器上创建了一个数据库.

如何将其传输到我的远程服务器(ec2 Ubuntu)

Ste*_*nie 81

TL; DR

使用mongodumpmongorestore获取(和恢复)MongoDB数据库的完整二进制备份.压缩备份dump目录,以便更快地复制到您的Amazon实例(BSON往往压缩得很好).

最佳做法

我强烈建议您阅读MongoDB手册中的MongoDB 工具标准备份和还原教程,而不是遵循adhoc说明.

你也可以使用一个文件系统快照,但mongodumpmongorestore只导出数据,这样你的备份会更小(即你的远程服务器不会继承任何过多的存储分配,由于预分配).


Man*_*ahu 11

2服务器之间的自动同步
如果您可以从外部使用本地主机,则可以在admin中使用copydb.
将mongodb数据一个硬件迁移到另一个硬件:

user@server:~$ mongo
MongoDB shell version: 2.6.11
connecting to: test
> use admin
switched to db admin
>db.runCommand({copydb:1,fromhost:'your previous host',fromdb:'Auctions_Data',todb:'Auctions_Data'})
{ "ok" : 1 }
Run Code Online (Sandbox Code Playgroud)


小智 6

除了其他解决方案之外,您还可以创建一个 bash 脚本并非常轻松地执行它。

#!/bin/bash

HOST="somehost.com"
PORT="2345"
REMOTE_DB="some-remote-db"
LOCAL_DB="your-local-db"
USER="remote-user-name"
PASS="passwordForRemoteUser"

## DUMP REMOTE DATABASE
echo "Dumping '$HOST:$PORT/$REMOTE_DB'..."
mongodump --host $HOST:$PORT --db $REMOTE_DB -u $USER -p $PASS

## RESTORE DUMP DIRECTORY
echo "Restoring to '$LOCAL_DB'..."
mongorestore --db $LOCAL_DB --drop dump/$REMOTE_DB

## REMOVE DUMP FILES
echo "Removing dump files..."
rm -r dump

echo "Finished."
Run Code Online (Sandbox Code Playgroud)