如何将数据库从ec3实例mongodb复制到本地计算机

时间:2018-10-11 08:52:46

标签: mongodb

我格式化了我的机器,并删除了mongodb中的所有数据。我想将所有数据从服务器计算机复制到本地数据库。

4 个答案:

答案 0 :(得分:0)

使用mongoexport,首先在实例上备份mongodb。然后按照以下步骤复制文件。

  • 要在计算机和实例之间复制文件,可以使用 FTP服务,例如FileZilla或代表安全的命令scp 复制。
  • 要将scp与密钥对一起使用,请使用以下命令:scp -i 路径/到/密钥文件/到/复制 user@ec2-xx-xx-xxx-xxx.compute-1.amazonaws.com:path / to / file。
  • 要在没有密钥对的情况下使用它,只需省略标志-i并输入 提示时输入用户密码。

答案 1 :(得分:0)

您可以按照以下步骤在EC2上备份mongodb实例并将其还原到本地mongodb实例。

假设:启用了非分片部署和身份验证

  1. 在EC2上运行的备份mongodb:
  

mongodump --host mongodb1.example.net --port 37017 --username user --password "pass" --out /opt/backup/mongodump-2011-10-24

  1. 压缩输出数据文件
  

tar -cvzf mongodump-2011-10-24.tar.gz /opt/backup/mongodump-2011-10-24

  1. 使用scppem file

  2. 从EC2将压缩的数据库转储复制到本地计算机
  3. 将压缩的转储恢复到本地mongodb实例:

  

mongorestore --port 27017 mongodump-2011-10-24

  1. 验证本地计算机上的数据库统计信息
  

mongo> use yourDB

     

mongo> db.stats()

答案 2 :(得分:0)

  1. 将数据库转储到服务器中的某个文件夹中

      

    $ mongodump -d db-name -o folder-name-to-dump

  2. 使用scp命令将服务器数据库复制到本地计算机。

      

    $ scp -i xyz_aws_ec2.pem aws-amazonaws.com:path/to/db/* path/to/some/folder

  3. 成功复制数据库后,将数据库恢复到本地计算机。

      

    mongorestore -d db-Name path/to/some/folder

答案 3 :(得分:0)

you can use s3cms on ec2 , you have to install it

wget -O- -q http://s3tools.org/repo/deb-all/stable/s3tools.key | sudo apt-key add -
sudo wget -O/etc/apt/sources.list.d/s3tools.list http://s3tools.org/repo/deb-all/stable/s3tools.list
sudo apt-get install s3cmd

then configure
s3cmd --configure

then backup script

    #!/bin/bash

#Force file syncronization and lock writes
mongo admin --eval "printjson(db.fsyncLock())"

MONGODUMP_PATH="/usr/bin/mongodump"
MONGO_DATABASE="dbname_here" #replace with your database name

TIMESTAMP=`date +%F-%H%M`
S3_BUCKET_NAME="bucketname_here" #replace with your bucket name on Amazon S3
S3_BUCKET_PATH="mongodb-backups"

# Create backup
$MONGODUMP_PATH -d $MONGO_DATABASE

# Add timestamp to backup
mv dump mongodb-$HOSTNAME-$TIMESTAMP
tar cf mongodb-$HOSTNAME-$TIMESTAMP.tar mongodb-$HOSTNAME-$TIMESTAMP

# Upload to S3
s3cmd put mongodb-$HOSTNAME-$TIMESTAMP.tar s3://$S3_BUCKET_NAME/$S3_BUCKET_PATH/mongodb-$HOSTNAME-$TIMESTAMP.tar

#Unlock database writes
mongo admin --eval "printjson(db.fsyncUnlock())"
#Delete local files
rm -rf mongodb-*