2013-10-07 16 views
17

Niedawno przenieśliśmy niektóre dane do MongoDB i obecnie staramy się uruchamiać codzienne kopie zapasowe, najlepiej z zadania cron, i przywracać jedną z kopii zapasowych do dodatkowej bazy danych mongo.Mongodump ze zdalnego serwera

Nasz system jest skonfigurowany w następujący sposób:

Istnieją trzy serwery: Serwer 1 posiada bazę Mongo rozwój, Serwer 2 ma dwie bazy danych Mongo, jeden dla danych postoju i jeden dla produkcji, a trzeci serwer gdzie uruchamiamy wszystkie nasze zadania cron/skrypty wsadowe.

Sprawdziłem docs Mongo i zalogować się do naszego serwera crona i próbował uruchomić następujące polecenie: (nazwa, host i hasło zmienione dla bezpieczeństwa, nie jestem faktycznie podłączenie do localhost)

mongodump --host 127.0.0.1/development --port 27017 --username user --password pass --out /opt/backup/mongodump-2013-10-07-1 

dostaję następujące komunikaty:

Pon Paź 7 10:03:42 rozpoczęciem nowego zestawu replik monitora do zestawu replik 127.0.0.1 z nasion rozwoju: 27017
Pon 07 października 10:03:42 powodzeniem połączone z rozwojem nasion: 27017 dla zestawu replik 127,0. 0.1
Mon Oct 7 10:03:42 ostrzeżenie: węzeł: programowanie: 27017 nie jest częścią zestawu: 127.0.0.1 ismaster: {ismaster: true, maxBsonObjectSize: 16777216, ok: 1.0}
pon 8 października 10 : 03: 44 replika ustawiona dla monitora ustawionego replika 127.0.0.1 rozpoczął, adres jest 127.0.0.1/
Pon 07 październik 10:03:44 [ReplicaSetMonitorWatcher] zaczynając nie mógł połączyć się [127.0.0.1/development:27017] połączyć nie udało się ustawić 127.0.0.1/development:27017

I potwierdził, że mogę połączyć się z bazą danych przy użyciu mongo -u -p ip/development Mongo

Naszym celem Wil Należy zrzucić dane z produkcyjnej bazy danych i zapisać je w tymczasowej bazie danych. Te dwie bazy danych znajdują się w tym samym polu, jeśli to robi różnicę, ale do celów testowych próbuję tylko uzyskać kopię danych testów programistycznych.

+3

Spróbuj zastąpić '--host 127.0.0.1/development' przez' --host 127.0.0.1 -d development', może to rozwiązać twój problem. –

+0

Tak też się stało, kiedy łączę się przy użyciu 'mongo -u -p', po prostu dodaję bazę danych po hoście. Wygląda na to, że nie jest to odpowiedni sposób, aby go obsłużyć, przynajmniej dla mongodump. Nora działała idealnie z tą zmianą – awestover89

Odpowiedz

32

mongo Klient może parsować MongoDB connection string URI, więc zamiast określać wszystkie parametry połączenia osobno, możesz przekazać pojedynczy identyfikator URI ciągu połączenia.

W twoim przypadku próbujesz przekazać identyfikator URI połączenia jako host, ale 127.0.0.1/development nie jest prawidłową nazwą hosta. Oznacza to należy określić database parametru oddzielnie od host:

mongodump --host 127.0.0.1 -d development --port 27017 --username user --password pass --out /opt/backup/mongodump-2013-10-07-1 
0
mongodump --host remotehostip:port --db dbname -u username -p password 
7


To pracował dla mnie.

odniesienia: https://docs.mongodb.com/manual/reference/program/mongodump


Składnia 1:

mongodump --host <hostname:port> --db <database> --username <username> --password <password> --out <path> 

Składnia 2:

mongodump -h <hostname:port> -d <database> -u <username> -p <password> -o <path> 



Przykład 1:

mongodump --host 127.0.0.1:27017 --db db_app --username root --password secret --out /backup/db/app-17-03-07 

Przykład 2:

mongodump -h 127.0.0.1:27017 -d db_app -u root -p secret -o /backup/db/app-17-03-07 
0

Oto przykład eksportu zbiór z serwera do węzła lokalnego komputera:

Host : xxx.xxx.xxx.xx 
Port :27017 
Username:”XXXX” 
Password :”YYYY” 
AuthDB : “admin” 
“DB”: “mydb” 

D:\mongodb-backup>mongodump -h xxx.xxx.xxx.xxx –port 27017 -u “XXXX” -p “YYYY” –authenticationDatabase “admin” –db “mydb” 
Powiązane problemy