我格式化了我的机器,并删除了mongodb中的所有数据。我想将所有数据从服务器计算机复制到本地数据库。
答案 0 :(得分:0)
使用mongoexport,首先在实例上备份mongodb。然后按照以下步骤复制文件。
答案 1 :(得分:0)
您可以按照以下步骤在EC2上备份mongodb实例并将其还原到本地mongodb实例。
假设:启用了非分片部署和身份验证
mongodump --host mongodb1.example.net --port 37017 --username user --password "pass" --out /opt/backup/mongodump-2011-10-24
tar -cvzf mongodump-2011-10-24.tar.gz /opt/backup/mongodump-2011-10-24
使用scp
和pem file
将压缩的转储恢复到本地mongodb实例:
mongorestore --port 27017 mongodump-2011-10-24
mongo> use yourDB
mongo> db.stats()
答案 2 :(得分:0)
将数据库转储到服务器中的某个文件夹中
$ mongodump -d db-name -o folder-name-to-dump
使用scp命令将服务器数据库复制到本地计算机。
$ scp -i xyz_aws_ec2.pem aws-amazonaws.com:path/to/db/* path/to/some/folder
成功复制数据库后,将数据库恢复到本地计算机。
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-*