it-swarm.com.de

Migrieren Sie die mongodb-Datenbank von localhost auf Remote-Server

Ich habe auf meinem lokalen Ubuntu-Rechner eine Datenbank erstellt.

Wie kann ich es auf meinen Remote-Server übertragen (ec2 Ubuntu)

38

TL; DR

Verwenden Sie mongodump UND mongorestore , um eine vollständige binäre Sicherung Ihrer MongoDB-Datenbank zu erstellen (und wiederherzustellen). Komprimieren Sie das Sicherungsverzeichnis dump, um das Kopieren in Ihre Amazon-Instanz zu beschleunigen (BSON neigt dazu, sehr gut zu komprimieren).

Best Practices

Anstatt den Adhoc-Anweisungen zu folgen, würde ich dringend empfehlen, das Standard-Tutorial Backup and Restore mit MongoDB-Tools im MongoDB-Handbuch zu lesen.

Sie können auch einen Filesystem-Snapshot verwenden, aber mongodump und mongorestore exportieren nur die Daten, so dass Ihre Sicherung kleiner ist (d. H. Ihr Remote-Server erbt aufgrund der Vorabzuweisung keine übermäßige Speicherzuweisung ).

74
Stennie

Auto Sync zwischen 2 Servern
Wenn Ihr lokaler Host von außen verfügbar ist, können Sie copydb in admin ..__ verwenden.
Migrieren Sie mongodb-Daten von einer Hardware auf eine andere Hardware:

[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 }
11
Manoj Sahu

Sie können eine Datenbanksicherung erstellen und in einen S3-Bucket übertragen.

Installieren Sie zuerst s3cmd:

Sudo yum --enablerepo epel install s3cmd

#to configure s3cmd
s3cmd --configure

Dann erstellen Sie eine Sicherungsroutine in einer backup.sh-Datei:

#!/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())"

Wenn Sie bash backup.sh ausführen, wird eine neue Datei wie mongodb-localhost-10-10-2013.tar erstellt.

Auf dem Remote-Server können Sie eine wget-Datei zum Herunterladen von Amazon S3 verwenden. _. Extrahieren Sie die Sicherungsdatei mit tar wie tar -xvf backupname.tar.

Zur Wiederherstellung können Sie verwenden:

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

So was:

mongorestore --dbpath /var/lib/mongo backup_directory_name 

Ich hoffe das ist genug um dir zu helfen

Zusätzlich zu den anderen Lösungen können Sie ein Bash-Skript erstellen und dies sehr einfach durchführen. 

#!/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."
1
sirrele

Installieren Sie die Mongo-Software auf Ihrem Remote-Server Stoppen Sie Mongod auf Ihrem lokalen Computer. Kopieren Sie die Datendateien und die Konfiguration auf den Remote-Computer . Überprüfen Sie, ob die Berechtigungen der Datendateien mit denen auf Ihrem lokalen Computer . übereinstimmen, und starten Sie mongod auf dem Remote-Server.

0
Tata

Nachdem Sie Ihre Dateien gefunden und an den erforderlichen Serverstandort gescannt haben, sagen Sie /data/db/*, können Sie Ihren mongod-Befehl mit dem Parameter dbpath starten: mongod --dbpath /data/db Stellen Sie sicher, dass Sie alle Dateien korrekt in diesen neuen Ordner kopiert haben .

0
brayne