Az adatbázisok áttelepítését minden rendszergazdának meg kell tennie valamikor. Szerencsére a MongoDB beépített parancsokat biztosít a biztonsági másolatok létrehozásához és visszaállításához, megkönnyítve ezzel az új szerverre való áttérést.
A mongodump segítségével készítsen biztonsági másolatot
A mongodump egy egyszerű parancs, amely létrehoz egy biztonsági másolat fájlt az adatbázisról és gyűjteményeiről, amelyekből visszaállíthat. Ehhez némi állásidőre van szükség, amíg a biztonsági másolat készen van, és az új szerver felkerül.
Ha nem akar leállást, végezhet fürt migrációt új csomópont hozzáadásával a fürtbe, ezt beállítva elsődleges írási forrásként, majd gyorsan átcserélve az új csomópontra. Ez sokkal könnyebbé válik, ha a MongoDB Atlas programot, a kezelt adatbázis-szolgáltatást használja.
mongodump
sokkal egyszerűbb. Létre kell hoznia egy könyvtárat a biztonsági mentésekhez:
sudo mkdir /var/backups/mongobackups
És akkor fuss mongodump
, egy adatbázis-paraméterben és egy kimeneti helyen továbbítva:
sudo mongodump --db databasename --out /var/backups/mongobackups/backup
Az egyes gyűjteményeket manuálisan is kiírhatja a --collection
zászló.
A Mongodump egy élő adatbázisban futtatható, és csak néhány másodpercet vesz igénybe a biztonsági másolat létrehozása. Az adatbázisba írt írások azonban elvesznek, mivel szervereket mozgat. Emiatt a dump létrehozása előtt le kell tiltania a forgalmat.
Visszaállítás a biztonsági mentésből
A biztonsági másolat fájlt át kell töltenie a régi szerverről az új kiszolgálóra. Ez megtehető úgy, hogy letölti az FTP-n keresztül, majd feltölti az új szerverre, de nagy biztonsági másolatok esetén a legjobb közvetlen kapcsolatot létrehozni és átvinni a scp
.
Használhatja a következő parancsot, kicserélve a felhasználóneveket és a gazdagépneveket a kiszolgálók értékeire.
scp user@SRC_HOST:/var/backups/mongobackups/FILENAME user@DEST_HOST:~/FILENAME
Ezután, ha megvan a biztonsági másolat az új szerveren, betöltheti a biztonsági másolatból. Természetesen szüksége lesz a MongoDB-re az új szerverre.
Ehhez használhatja a mongorestore
parancs:
mongorestore <options> <connection-string> <file to restore>
Azonnal meg kell látnia az új táblázatot az új adatbázisban.
Miután ellenőrizte, hogy minden megfelelően átment-e, fel kell cserélnie a forgalmat az új szerverre, valószínűleg a DNS-rekordok frissítésével. Ha AWS-t vagy hasonló szolgáltatót használ Elastic IP-címmel, kicserélheti a címet, hogy az új szerverre mutasson, amelyhez nem lesz szükség DNS-frissítésre.
A teljes lemez átvitele (opcionális)
Opcionálisan, ha csak egy erősebb kiszolgálóra költözik, átviheti a teljes indító meghajtót, amelynek át kell másolnia az adatbázist a szerver többi konfigurációjával együtt.
Ebben az esetben érdemes használni a rsync
parancs az adatok közvetlen feltöltésére a célkiszolgálóra. rsync
csatlakozni fog az SSH használatával, és szinkronizálja a két mappát; ebben az esetben a helyi mappát a távoli szerverre akarjuk tolni:
sudo rsync -azAP / --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} username@remote_host:/
Ez az egész parancs. Látnia kell egy előrehaladási sávot, amint befejezi az átvitelt (a -z
flag), és ha ez megtörtént, az új szerver célmappájában láthatja a fájlokat. Lehetséges, hogy ezt többször kell futtatnia az egyes mappák másolásához; Te tudod használni ezt online rsync
parancsgenerátor hogy generálja a parancsot az egyes futtatásokhoz.