WiredTiger를 사용하여 MongoDB 2.6을 3.0으로 마이그레이션하는 방법


9

MongoDB 3.0에는 wiredTiger메모리 및 디스크 공간 사용량이 크게 줄어드는 새로운 스토리지 엔진이 도입되었습니다 .

내 DB는 현재 ~ 2 천만 개의 개체에 있으며 최대 70GB의 RAM을 사용하기 때문에이 업데이트는 하드웨어 업데이트를 연기하기 위해 적시에 제공됩니다.

기존 MongoDB 2.6 설치를 3.0으로 어떻게 마이그레이션하고 동시에 wiredTiger의 이점을 얻습니까?

문서는 MongoDB가 시작되지 못하게하는 시작 오류를 발생시키는 옵션을 나타냅니다. 또한 파일 위치가 Ubuntu (서버 14.04 LTS)의 위치와 일치하지 않습니다.


이것이 단일 인스턴스입니까 (복제 세트가 아님)?
Adam C

답변:


15

기본 설치에서 구성 파일은에 /etc/mongod.conf있습니다. MongoDB 문서에서 언급하지 않은 것은 WiredTiger로 마이그레이션 할 때 구성 파일을 2.6에 도입 된 새로운 YAML 형식으로 업데이트해야한다는 것입니다.
내가 알 수있는 한, engine옵션은 새로운 구성 형식에서만 사용할 수 있습니다.
이전 스토리지 엔진에서 마이그레이션은 데이터베이스 덤프 작성, mongodb 종료, 설정 변경 및 덤프를 새 스토리지 엔진으로 가져 오기로 구성됩니다.

  1. 백업을 만듭니다. 진심으로. 새 데이터베이스 엔진으로 가져올 데이터베이스 덤프가 필요합니다.

    mongodump -d db_name /backup/path/  
    
  2. mongodb 서비스 중지

    sudo service mongod stop  
    
  3. 현재 위치에서 다른 곳으로 데이터를 이동합니다 (데이터 디렉토리에 이전 스토리지 엔진에서 생성 된 파일이 포함되어 있으면 MongoDB가 시작되지 않음).

    sudo mv /var/lib/mongodb /var/lib/mongodb_26/
    
  4. 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  
    
  5. 구성 파일을 이전 (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/에 있습니다.

  6. 선택적으로 로그를 백업하십시오.

    sudo mv /var/log/mongodb/mongod.log /var/log/mongodb/mongod_26.log
    
  7. mongodb를 다시 시작하십시오.

    sudo service mongod start
    
  8. 백업을로드하여 데이터를 새로운 스토리지 엔진으로 변환

    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 엔진과 유선 타이거


1
참고 : YAML 구성 파일의 전체 예제는 DBA에 대한 내 대답을 참조하십시오. dba.stackexchange.com/a/82592/6441
Adam C

1

이전 구성 파일 형식을 사용하여 다음 과 같이 성공했습니다.

storageEngine = wiredTiger

내 게시물을 쓸 때 정확히 시도하고 오류가 발생했기 때문에 매우 흥미 롭습니다.
Emanuel Ey
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.