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.

różnorodność.js

mongo test --eval "var collection = 'users'" variety.js

schema.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 } )


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow