2014-12-21 4 views
2

실행하여 MongoDB를 존중하지 않는 것MongoDB를이 : 덮인 크기 제한을 win2012에

몽고 DB 버전 v2.6.4

우리의 컬렉션이 PARAM 생성됩니다

:

덮인 : 사실, 크기 : 500000000000 // 500 gb

그러나이 컬렉션 만 보유하고있는 데이터 디렉토리는 720GBb로 증가했습니다.

이 mongo 서버에서는 전혀 복제가 사용되지 않습니다.

데이터 디렉토리를 ~ 500GB로 유지하려면 어떻게해야합니까?

이 db는 엄청난 양의 삽입을 얻을 수 있지만 최대 크기를 제어해야합니다 (이전 데이터를 버리도록 함).

캡 된 크기에 인덱스가 포함되지 않았습니까?

아니면 다른 오버 헤드를 고려해야합니까? (어떻게

또는

데시벨 통계

> db.stats 
function (scale){ 
    return this.runCommand({ dbstats : 1 , scale : scale }); 
} 
> db.stats() 
{ 
     "db" : "logging", 
     "collections" : 3, 
     "objects" : 289637086, 
     "avgObjSize" : 2076.3166847770317, 
     "dataSize" : 601378314192, 
     "storageSize" : 606012620432, 
     "numExtents" : 305, 
     "indexes" : 12, 
     "indexSize" : 147827443456, 
     "fileSize" : 776943435776, 
     "nsSizeMB" : 16, 
     "dataFileVersion" : { 
       "major" : 4, 
       "minor" : 5 
     }, 
     "extentFreeList" : { 
       "num" : 0, 
       "totalSize" : 0 
     }, 
     "ok" : 1 
} 
> 

우리는 컬렉션을 만드는 데 사용하는 명령은 다음과 같습니다?

db.createCollection ("LogItem", {덮인 : 사실, 크기 : 500000000000})

그래서 우리가 작성한 콜렉션은 capped cmd로 생성되며, 모든 공간은 모든 공간이

인 곳입니다.

디스크 공간이 부족하여 db.collection.stats()를 수행 할 수 없습니다 ...

감사합니다!

+0

데이터베이스에 대해 '수집 된 컬렉션'이있는'db.stats()'출력을 포함 할 수 있습니까? 또한 디스크상의 파일 크기를 포함한 디렉토리리스트를 가진 pastebin/gist에 대한 링크를 게시 할 수 있다면 도움이 될 것입니다. 데이터 디렉토리에는 적어도 하나의 다른 데이터베이스가 MongoDB 2.6 ('local' 데이터베이스)에 포함되며, 복제를 활성화 한 경우 커질 수 있습니다. 예를 들어, 복제본 노드에 대해 생성 된 작업 로그 (oplog)는 사용 가능한 디스크 공간의 최대 5 % (1GB와 50GB 사이)에 할당 된 '로컬'데이터베이스의 특별 출연 모음입니다. – Stennie

+0

@Stennie 감사합니다! 그것은 그 문제를 정확하게 지적하는데 도움이되었을 것입니다. 개정 된 영업 이익을 참조하십시오. – Jonesome

+0

@Stennie 문제는 활짝 열려 있습니다, 나는 두렵습니다. 수정 된 OP 내용을 참조하십시오. – Jonesome

답변

1

해결됨

문제가 있습니까? 음, 콜론을 사용하여 콜렉션을 생성 할 수는 있지만 작동은 가능합니다.하지만 새 db를 생성 할 때 들어오는 연결에서 데이터를 보내는 경우 새 db는 자 동으로 작성하기 전에 자동으로 생성됩니다. 당신은 ... 끝내지 않은 컬렉션으로 끝납니다.

솔루션 :

몽고가 오프라인 상태가

, 비 표준 포트로 설정 설정과 함께 일시적으로 다시 가져. 컬렉션을 만듭니다. 그런 다음 일반 포트에서 mongo를 다시 시작하면 모두 정상입니다.

1

여러 개념을 하나의 개념으로 통합했다고 생각합니다. "제한된"개념은 데이터베이스에있는 개별 모음에 적용됩니다. 데이터베이스는 하나 이상의 콜렉션으로 구성된 디스크의 파일입니다. 각 데이터베이스 파일에는 증가 할 공간과 삭제 된 데이터의 일부 구멍이 포함되어 있습니다. 캐핑 된 콜렉션에는 색인이 없습니다. 따라서 검색을 위해 실제로 500GB의 콜렉션을 만들려고한다면 성능이 끔찍할 것입니다 . 테스트를 위해 1MB 크기의 콜렉션을 만들고 데이터로 채우고 특정 수의 문서에 도달하면 확장되지 않는지 확인할 수 있습니다.하지만이 콜렉션을 포함하는 데이터베이스가 원하는 크기를 초과하지 마십시오. 약간의 오버 헤드가 발생할 것입니다.

+0

@alnerdev 고맙습니다. 나는 지금 OP를 정리 한 OP에서 약간의 용어를 사용하지 않았다. – Jonesome

+0

[oplog] (http://docs.mongodb.org/manual/core/replica-set-oplog/) (복제를 위해 특별히 사용되는 제한된 컬렉션 임)를 언급하지 않는 한, 제한된 컬렉션은 ** do * * 지원 인덱스. 제한된 컬렉션을 사용하는 것에 대한 명확한 경고가 있습니다. MongoDB 매뉴얼의 [권장 사항 및 제한 사항] (http://docs.mongodb.org/manual/core/capped-collections/#recommendations-and-restrictions)을 참조하십시오. – Stennie

+0

@alnerdev - 나는 OP에서 엉성함이 있었지만 그것을 정리했다. (내 머리와 포스트에서) – Jonesome