[MONGODB] 어떻게 데이터의 손실없이 MongoDB에 덮인 모음의 크기를 조정할 수 있습니까?
MONGODB어떻게 데이터의 손실없이 MongoDB에 덮인 모음의 크기를 조정할 수 있습니까?
어떻게 데이터의 손실없이 MongoDB에 덮인 모음의 크기를 조정할 수 있습니까?
명령은 거기에, 아니면 누군가가 스크립트를 제공 할 수있다?
해결법
-
==============================
1.당신은 기본적으로 새로운 덮인 컬렉션을 만들 필요가 있고 그것에 문서를 복사합니다. 이것은 자바 스크립트 (쉘)에 매우 쉽게 할, 또는 선택의 언어를 할 수 있습니다.
당신은 기본적으로 새로운 덮인 컬렉션을 만들 필요가 있고 그것에 문서를 복사합니다. 이것은 자바 스크립트 (쉘)에 매우 쉽게 할, 또는 선택의 언어를 할 수 있습니다.
db.createCollection("new", {capped:true, size:1073741824}); /* size in bytes */ db.old.find().forEach(function (d) {db.new.insert(d)}); db.old.renameCollection("bak", true); db.new.renameCollection("old", true);
참고 : 그냥 확실히 아무도 당신이 전환 할 때 기존의 수집을 갱신 / 삽입하지되어 있는지 확인합니다. 당신이 db.eval에 그 코드를 실행하면 실행되는 동안 ( "....")는 서버를 잠급니다.
기존 컬렉션의 크기를 증가시키는 기능 요청이 있습니다 : http://jira.mongodb.org/browse/SERVER-1864
-
==============================
2.이것은 내가 덮인 컬렉션의 크기를 조정 할 것입니다 :
이것은 내가 덮인 컬렉션의 크기를 조정 할 것입니다 :
db.runCommand({"convertToCapped": "log", size: 1000000000});
나는 이미 출장 컬렉션 "로그"라는있다. 그래서 난 그냥 새 크기를 지정, 다시에서 "convertToCapped"를 실행합니다. 나는 컬렉션의 크기를 줄이는 그것을 시도하지했습니다. 즉, 스콧 에르난데스의 버전을 사용할 필요가 거라고 뭔가 할 수있다. 하지만이 모든 데이터 또는 인덱스를 손실없이 덮인 컬렉션의 크기를 증가 작동합니다.
편집 : @JMichal가 올바른지. 데이터는 보존되지만 인덱스는하지하고 다시 작성해야합니다.
from https://stackoverflow.com/questions/4225535/how-can-i-resize-a-mongodb-capped-collection-without-losing-data by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] 인덱스를 사용하지 않는 쿼리를 찾거나 MongoDB를 둔화하는 방법 (0) | 2019.12.29 |
---|---|
[MONGODB] 풀 타임 스탬프가 통합 프레임 워크에 주어 졌을 때 어떻게 날짜를 기준으로 집계하는? (0) | 2019.12.29 |
[MONGODB] 어떻게 MongoDB를 자바 드라이버를 사용하는 $ 또는 쿼리를 만들 수 있습니까? (0) | 2019.12.29 |
[MONGODB] 기존 MongoDB의 항목에서 키 / 값 삭제 (0) | 2019.12.29 |
[MONGODB] 어떻게하여 MongoDB의 기본 키를 설정하는 방법? (0) | 2019.12.29 |