Szukaj…
Uwagi
Jeśli nie masz nic przeciwko uruchamianiu narzędzia Ruby, Czyngis jest klasykiem: http://genghisapp.com/
Ale w celu skalowalnego wykorzystania produkcji przejdź do MongoHQ.
http://www.mongohq.com/
Ponadto usługa monitorowania Mongo od 10Gen, twórców Mongo:
https://mms.mongodb.com/
MongoClient jest napisany w Meteor, całkowicie darmowy, open source i wieloplatformowy .
RoboMongo Native wieloplatformowe narzędzie do zarządzania MongoDB
Analiza odziedziczonej bazy danych
Istnieją dwa świetne narzędzia do analizy czarnych skrzynek baz danych. Pierwsza to odmiana.js, która zapewni ogólny przegląd. Drugi to schema.js, który pozwoli ci zagłębić się w kolekcje, aby uzyskać więcej szczegółów na temat poszczególnych pól. Podczas dziedziczenia produkcyjnej bazy danych Mongo te dwa narzędzia mogą pomóc ci zrozumieć, co się dzieje i jak zorganizowane są zbiory i dokumenty.
mongo test --eval "var collection = 'users'" variety.js
mongo --shell schema.js
Połącz z bazą danych na * .meteorapp.com
Używanie flagi --url może być trudne. Istnieje 60-sekundowe okno do uwierzytelnienia, a następnie nazwa użytkownika / hasło losowo resetuje się. Więc upewnij się, że robomongo jest otwarty i gotowy do skonfigurowania nowego połączenia po uruchomieniu polecenia.
# get the MONGO_URL string for your app
meteor mongo --url $METEOR_APP_URL
Pobierz bazę danych z * .meteor.com
To samo co poprzednio, ale musisz skopiować informacje do polecenia mongodump. Musisz szybko wykonać następujące polecenia i wymaga to koordynacji rąk / oczu. Być ostrzeżonym! To jest wyjątkowo hacky! Ale fajnie! Pomyśl o tym jak o grze wideo! :RE
# get the MONGO_URL string for your app
meteor mongo --url $METEOR_APP_URL
# then quickly copy all the info into the following command
mongodump -u username -p password --port 27017 --db meteor_app_url_com --host production-db-b1.meteor.io
Eksportować dane z lokalnego instancji programowej Meteor?
To polecenie utworzy katalog / dump i zapisze każdą kolekcję w osobnym pliku obiektów blob BSON. Jest to najlepszy sposób tworzenia kopii zapasowych lub przesyłania baz danych między systemami.
mongodump --db meteor
Przywróć dane z pliku zrzutu
Analogowy do meteordump
polecenia jest meteorrestore
. Możesz wykonać częściowy import, wybierając konkretną kolekcję do zaimportowania. Szczególnie przydatny po uruchomieniu polecenia upuszczenia.
# make sure your app is running
meteor
# then import your data
mongorestore --port 3001 --db meteor /path/to/dump
# a partial import after running > db.comments.drop()
mongorestore --port 3001 --db meteor /path/to/dump -c comments.bson
Wyeksportuj kolekcję do JSON
Uruchom meteor, otwórz kolejne okno terminala i uruchom następujące polecenie.
mongoexport --db meteor --collection foo --port 3001 --out foo.json
Zaimportuj plik JSON do Meteor
Importowanie do domyślnej instancji Meteor jest dość łatwe. Pamiętaj, że możesz dodać opcję --jsonArray, jeśli plik json jest eksportowany jako tablica z innego systemu.
mongoimport --db meteor --port 3001 --collection foo --file foo.json
Kopiowanie danych między tymczasowymi a lokalnymi bazami danych
Mongo obsługuje kopiowanie z bazy danych do bazy danych, co jest przydatne, jeśli masz duże bazy danych na bazie pomostowej, którą chcesz skopiować do lokalnej instancji programistycznej.
// run mongod so we can create a staging database // note that this is a separate instance from the meteor mongo and minimongo instances mongod // import the json data into a staging database // jsonArray is a useful command, particularly if you're migrating from SQL mongoimport -d staging -c assets < data.json --jsonArray // navigate to your application cd myappdir // run meteor and initiate it's database meteor // connect to the meteor mongodb meteor mongo --port 3002 // copy collections from staging database into meteor database db.copyDatabase('staging', 'meteor', 'localhost');
Kompaktuj bazę danych Mongo na Ubuntu Box
Wstępna alokacja. Mongo odkłada miejsce na dysku w pustych pojemnikach, więc gdy przyjdzie czas na zapisanie czegoś na dysku, nie musi najpierw odsuwać bitów. Robi to przez algorytm podwajania, zawsze podwajając ilość wstępnie przydzielonego miejsca na dysku, aż osiągnie 2 GB; a następnie każdy plik prealloc z tego ma 2 GB. Gdy dane zostaną wstępnie przydzielone, nie zostaną one cofnięte, chyba że wyraźnie o tym powiesz. Obserwowalne wykorzystanie przestrzeni MongoDB zwykle rośnie automatycznie, ale nie spada.
Niektóre badania dotyczące wstępnej alokacji Mongo ...
zmniejszanie-mongodb-database-file-size
mongo-prealloc-files-taking-up-room
// compact the database from within the Mongo shell
db.runCommand( { compact : 'mycollectionname' } )
// repair the database from the command line
mongod --config /usr/local/etc/mongod.conf --repair --repairpath /Volumes/X/mongo_repair --nojournal
// or dump and re-import from the command line
mongodump -d databasename
echo 'db.dropDatabase()' | mongo databasename
mongorestore dump/databasename
Zresetuj zestaw repliki
Usuń pliki lokalnej bazy danych. Po prostu zamknij powłokę Mongo, przejdź do ścieżki / dbpath (gdziekolwiek ją skonfigurujesz) i usuń pliki z tego katalogu.
Połącz zdalnie z wystąpieniem Mongo na * .meteor.com
Czy wiesz o flagi --url
? Bardzo przydatny.
meteor mongo --url YOURSITE.meteor.com
Dostęp do plików dziennika Mongo w lokalnej instancji Meteor
Nie są łatwo dostępne. Jeśli uruchomisz polecenie „pakiet meteor”, możesz wygenerować plik tar.gz, a następnie uruchomić aplikację ręcznie. W ten sposób powinieneś mieć dostęp do dzienników mongo ... prawdopodobnie w katalogu .meteor / db. Jeśli naprawdę potrzebujesz dostępu do plików dziennika mongodb, skonfiguruj zwykłą instancję mongodb, a następnie podłącz Meteor do zewnętrznej instancji mongo, ustawiając zmienną środowiskową MONGO_URL:
MONGO_URL='mongodb://user:password@host:port/databasename'
Gdy to zrobisz, powinieneś mieć dostęp do dzienników w zwykłych miejscach ...
/var/log/mongodb/server1.log
Obróć pliki dziennika w polu Ubuntu
Musisz obrócić te pliki dziennika, w przeciwnym razie zjedzą całe miejsce na dysku. Zacznij od badań ...
mongodb-log-file-growth
rotate-log-files
Pliki dziennika można wyświetlić za pomocą następującego polecenia ...
ls /var/log/mongodb/
Aby skonfigurować rotację pliku dziennika, musisz wykonać następujące czynności ...
// put the following in the /etc/logrotate.d/mongod file
/var/log/mongo/*.log {
daily
rotate 30
compress
dateext
missingok
notifempty
sharedscripts
copytruncate
postrotate
/bin/kill -SIGUSR1 `cat /var/lib/mongo/mongod.lock 2> /dev/null` 2> /dev/null || true
endscript
}
// to manually initiate a log file rotation, run from the Mongo shell
use admin
db.runCommand( { logRotate : 1 } )