![WiredTiger를 사용하여 MongoDB 2.6을 3.0으로 마이그레이션하는 방법](https://rvso.com/image/1127639/WiredTiger%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20MongoDB%202.6%EC%9D%84%203.0%EC%9C%BC%EB%A1%9C%20%EB%A7%88%EC%9D%B4%EA%B7%B8%EB%A0%88%EC%9D%B4%EC%85%98%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
wiredTiger
MongoDB 3.0 에는 메모리와 디스크 공간 사용량을 크게 줄이는 새로운 스토리지 엔진이 도입되었습니다 .
내 DB는 현재 최대 2천만 개의 개체를 보유하고 있으며 최대 70GB의 RAM을 사용하고 있으므로 이 업데이트는 하드웨어 업데이트를 연기하기에 적절한 시기에 제공됩니다.
MongoDB 2.6의 기존 설치를 3.0으로 마이그레이션하는 동시에 wiredTiger의 이점을 얻으려면 어떻게 해야 합니까?
설명서에서는 MongoDB 시작을 방해하는 시작 오류를 발생시키는 옵션을 참조합니다. 또한 파일 위치가 Ubuntu(Server 14.04 LTS)의 위치와 일치하지 않습니다.
답변1
기본 설치에서 구성 파일은 /etc/mongod.conf
. MongoDB 문서에서 언급되지 않은 것은 WiredTiger로 마이그레이션할 때 구성 파일을 2.6에 도입된 새로운 YAML 형식으로 업데이트해야 한다는 것입니다.
내가 아는 한 이 engine
옵션은 새로운 구성 형식에서만 사용할 수 있습니다.
이전 스토리지 엔진에서 마이그레이션하는 작업은 데이터베이스 덤프 생성, mongodb 종료, 설정 변경 및 덤프를 새 스토리지 엔진으로 가져오기로 구성됩니다.
백업을 만듭니다. 진지하게. 그런 다음 새 데이터베이스 엔진으로 가져올 데이터베이스 덤프가 필요합니다.
mongodump -d db_name /backup/path/
mongodb 서비스 중지
sudo service mongod stop
데이터를 현재 위치에서 다른 곳으로 이동합니다(데이터 디렉터리에 이전 스토리지 엔진에서 생성된 파일이 포함되어 있으면 MongoDB가 시작되지 않습니다).
sudo mv /var/lib/mongodb /var/lib/mongodb_26/
MongoDB를 버전 3.0으로 업그레이드하세요(~http://docs.mongodb.org/v3.0/tutorial/install-mongodb-on-ubuntu/):
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10 echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list sudo apt-get update sudo apt-get install mongodb-org mongodb-org-server mongodb-org-shell mongodb-org-mongos mongodb-org-tools
구성 파일을 이전(2.6 이전) 형식에서 현재 YAML 형식으로 변환합니다. 최소값은 다음과 같습니다.
storage: dbPath: "/var/lib/mongodb" engine: wiredTiger systemLog: destination: file path: "/var/log/mongodb/mongod.log" logAppend: true net: bindIp: 127.0.0.1 port: 27017 # Enable the HTTP interface (Defaults to port 28017). http: enabled: false
이전 형식의 행이 남아 있지 않은지 확인하십시오. 그렇지 않으면 MongoDB가 시작되지 않습니다.
구성 파일에 대한 전체 문서는 다음 위치에 있습니다.http://docs.mongodb.org/v3.0/reference/configuration-options/
선택적으로 로그 백업을 만듭니다.
sudo mv /var/log/mongodb/mongod.log /var/log/mongodb/mongod_26.log
몽고디비 재시작
sudo service mongod start
백업을 로드하여 데이터를 새로운 스토리지 엔진으로 변환
mongorestore /backup/location
모든 데이터가 정상인지 확인한 후 이전 데이터 형식을 사용하는 디렉터리를 삭제할 수 있습니다.
sudo rm -r /var/lib/mongodb_26/
복제본 세트 및 샤딩된 클러스터의 경우 몇 가지 추가 단계가 있습니다.http://docs.mongodb.org/v3.0/release-notes/3.0-upgrade/?_ga=1.86531032.1131483509.1428671022#change-replica-set-storage-engine-to-wiredtiger
답변2
사용하여이전 구성 파일 형식, 나는 다음과 같이 성공했습니다.
StorageEngine=wiredTiger