수색…


비고

Ruby 유틸리티를 실행하는 것에 반대하지 않는다면 Genghis는 고전입니다. http://genghisapp.com/

그러나 확장 가능한 생산 사용을 위해서는 MongoHQ에 몸을 맡기십시오.
http://www.mongohq.com/

또한 Mongo의 제작자 인 10Gen의 Mongo Monitoring Service :
https://mms.mongodb.com/

MongoClient 는 Meteor, Complete Free, Open Source 및 Cross-Platform으로 작성되었습니다.

RoboMongo 네이티브 크로스 플랫폼 MongoDB 관리 도구

상속 된 데이터베이스 분석

데이터베이스의 블랙 박스 분석에는 두 가지 훌륭한 유틸리티가 있습니다. 첫 번째는 variety.js로 높은 수준의 개요를 제공합니다. 두 번째는 schema.js입니다. 개별 필드에 대한 자세한 내용은 컬렉션을 파헤쳐 볼 수 있습니다. 프로덕션 Mongo 데이터베이스를 상속 할 때이 두 유틸리티는 진행중인 작업과 컬렉션 및 문서의 구조를 이해하는 데 도움을 줄 수 있습니다.

variety.js

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

schema.js

mongo --shell schema.js 

* .meteorapp.com의 데이터베이스에 연결

--url 플래그는 사용하기 까다로울 수 있습니다. 인증 할 창이 60 초이며 사용자 이름 / 암호가 임의로 재설정됩니다. 따라서 robomongo를 열고 명령을 실행할 때 새로운 연결을 구성 할 준비를하십시오.

# get the MONGO_URL string for your app  
meteor mongo --url $METEOR_APP_URL

* .meteor.com에서 데이터베이스 다운로드

이전과 같지만 정보를 mongodump 명령에 복사해야합니다. 다음 명령을 재빨리 빨리 실행해야하며 손 / 눈동자 조정이 필요합니다. 경고 받다! 이것은 우스꽝스러운 해키트입니다! 그러나 재미! 비디오 게임으로 생각하십시오! :디

# 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

로컬 Meteor 개발 인스턴스에서 데이터 내보내기?

이 명령은 / dump 디렉토리를 작성하고 각 콜렉션을 개별 BSON blob 파일에 저장합니다. 이것은 시스템간에 데이터베이스를 백업하거나 전송하는 가장 좋은 방법입니다.

mongodump --db meteor

덤프 파일에서 데이터 복원

meteordump 명령에 대한 아날로그는 meteorrestore 입니다. 가져올 특정 모음을 선택하여 부분 가져 오기를 수행 할 수 있습니다. 특히 drop 명령을 실행 한 후에 유용합니다.

# 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

컬렉션을 JSON으로 내보내기

유성을 실행하고 다른 터미널 창을 연 다음 다음 명령을 실행하십시오.

mongoexport --db meteor --collection foo --port 3001 --out foo.json

Meteor로 JSON 파일 가져 오기

기본 Meteor 인스턴스로 가져 오기는 매우 쉽습니다. json 파일을 다른 시스템의 배열로 내보내는 경우 --jsonArray 옵션을 추가 할 수 있습니다.

mongoimport --db meteor --port 3001 --collection foo --file foo.json

준비 데이터베이스와 로컬 데이터베이스 간의 데이터 복사

Mongo는 데이터베이스 간 복사를 지원합니다. 이는 로컬 개발 인스턴스로 복사하려는 준비 데이터베이스에 대규모 데이터베이스가있는 경우 유용합니다.

// 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');

우분투 상자에 몽고 데이터베이스 압축

사전 할당. Mongo는 빈 컨테이너에 디스크 공간을 둡니다. 그래서 디스크에 무언가를 쓸 때가되면 먼저 비트를 섞어 놓을 필요가 없습니다. 이것은 배가 알고리즘에 의해 수행되며, 사전 할당 된 디스크 공간이 2GB에 도달 할 때까지 항상 두 배가됩니다. 그런 다음 각 prealloc 파일은 2GB입니다. 데이터가 사전 할당 된 후에는 특별히 지정하지 않으면 할당되지 않습니다. 따라서 관측 가능한 MongoDB 공간 사용은 자동으로 증가하는 경향이 있지만 감소하지는 않습니다.

몽고 사전 할당에 관한 연구
reduce-mongodb-database-file-size
mongo-prealloc-files-take-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

복제 세트 재설정

로컬 데이터베이스 파일을 삭제하십시오. Mongo 쉘을 종료하고 / dbpath (설정 한 곳)로 이동 한 다음 해당 디렉토리 내의 파일을 삭제하십시오.

* .meteor.com의 Mongo 인스턴스에 원격으로 연결

--url 플래그에 대해 아십니까? 매우 편리합니다.

meteor mongo --url YOURSITE.meteor.com

로컬 Meteor 인스턴스에서 Mongo 로그 파일에 액세스하기

그들은 쉽게 접근 할 수 없습니다. '유성 번들'명령을 실행하면 tar.gz 파일을 생성 한 다음 앱을 수동으로 실행할 수 있습니다. 그렇게하면 아마도 .meteor / db 디렉토리에서 mongo 로그에 액세스 할 수 있습니다. mongodb 로그 파일에 실제로 액세스해야하는 경우 일반 mongodb 인스턴스를 설정 한 다음 Mongo_URL 환경 변수를 설정하여 Metoor를 외부 mongo 인스턴스에 연결하십시오.

MONGO_URL='mongodb://user:password@host:port/databasename'

완료되면 평소에 로그에 액세스 할 수 있어야합니다 ...

/var/log/mongodb/server1.log

우분투 상자에서 로그 파일 회전

로그 파일을 회전시켜야합니다. 그렇지 않으면 디스크 공간이 모두 소모됩니다. 약간 연구로 시작하십시오 ...
mongodb-log-file-growth
회전 로그 파일

로그 파일은 다음 명령으로 볼 수 있습니다 ...

ls /var/log/mongodb/

하지만 로그 파일 순환을 설정하려면 다음을 수행해야합니다 ...

// 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
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow