Подтвердить что ты не робот

Перенести базу данных mongodb с локального хоста на удаленные серверы

Я создал базу данных на своей локальной машине ubuntu.

Как перенести его на удаленный сервер (ec2 Ubuntu)

4b9b3361

Ответ 1

TL; DR

Используйте mongodump и mongorestore, чтобы взять (и восстановить) полную двоичную резервную копию вашей базы данных MongoDB. Сжимайте резервную директорию dump, чтобы ускорить ее копирование на экземпляр Amazon (BSON имеет тенденцию к сжатию очень хорошо).

Рекомендации

Вместо инструкций adhoc я настоятельно рекомендую прочитать стандартное руководство " Резервное копирование и восстановление с помощью MongoDB Tools в руководстве MongoDB.

Вы также можете использовать моментальный снимок файловой системы, но mongodump и mongorestore только экспортируют данные, чтобы ваша резервная копия была меньше (т.е. ваш удаленный сервер не будет наследовать избыточное распределение хранилища из-за preallocation).

Ответ 2

Автоматическая синхронизация между сервером
Если ваш локальный хост доступен снаружи, вы можете использовать copydb в admin.
Перенесите данные mongodb на одно оборудование на другое оборудование:

[email protected]:~$ 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 }

Ответ 3

Вы можете создать резервную копию базы данных и перенести ее в ведро S3.

Сначала установите s3cmd:

sudo yum --enablerepo epel install s3cmd

#to configure s3cmd
s3cmd --configure

Затем создайте процедуру резервного копирования в файле backup.sh:

#!/bin/bash

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

MONGODUMP_PATH="/usr/bin/mongodump"
MONGO_HOST="prod.example.com"
MONGO_PORT="27017"
MONGO_DATABASE="dbname"

TIMESTAMP=`date +%F-%H%M`
S3_BUCKET_NAME="bucketname"
S3_BUCKET_PATH="mongodb-backups"


# Create backup
$MONGODUMP_PATH -h $MONGO_HOST:$MONGO_PORT -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 databases writes
mongo admin --eval "printjson(db.fsyncUnlock())"

При запуске bash backup.sh будет создан новый файл, например mongodb-localhost-10-10-2013.tar

На удаленном сервере вы можете использовать wget для загрузки файла с Amazon S3. Извлеките файл резервной копии с помощью tar, например tar -xvf backupname.tar.

Для восстановления вы можете использовать:

mongorestore --dbpath <database path> <directory to the backup>

Вот так:

mongorestore --dbpath /var/lib/mongo backup_directory_name

Надеюсь, этого достаточно, чтобы помочь вам

Ответ 4

Установите программное обеспечение mongo на удаленном сервере Остановите mongod на вашем локальном компьютере. скопируйте файлы данных и конфигурацию на удаленный компьютер. проверка разрешений файлов данных такая же, как на вашем локальном компьютере. а затем запустите mongod на удаленном сервере.

Ответ 5

Теперь, когда вы нашли свои файлы данных и скопировали их в необходимое место на сервере, скажите /data/db/*, вы можете запустить команду mongod с параметром dbpath следующим образом: mongod --dbpath /data/db Убедитесь, что вы скопировали все файлы правильно в эту новую папку.