복붙노트

[MONGODB] MongoDB의 데이터 저장소 디렉토리를 변경

MONGODB

MongoDB의 데이터 저장소 디렉토리를 변경

지금까지 나는 MongoDB의 데이터 디렉토리를 지정하지 않은 단 하나의 30기가바이트 주 파티션 있었다.

난 그냥 공간이 부족하고 새 하드 디스크를 추가했습니다. 어떻게 내 데이터를 전송할 수 있습니다 (즉 외관상로 / var / lib / MongoDB를 /) 및 구성 MongoDB를 그래서 모든 것이 내 기존 설치에 영향을주지 않고 새 디스크의 도망?

해결법

  1. ==============================

    1.짧은 대답하여 MongoDB에서 --dbpath 매개 변수는 디렉토리 MongoDB를 읽고에서의 데이터를 기록을 제어 할 수 있다는 것입니다.

    짧은 대답하여 MongoDB에서 --dbpath 매개 변수는 디렉토리 MongoDB를 읽고에서의 데이터를 기록을 제어 할 수 있다는 것입니다.

    MongoDB를 시작하고 / usr / 지방 / MongoDB의 데이터에있는 파일을 둘 것입니다.

    배포 및 MongoDB를 설치에 따라 자동으로이 작업을 수행 할 mongod.conf 파일을 구성 할 수 있습니다 :

    # Store data in /usr/local/var/mongodb instead of the default /data/db
    dbpath = /usr/local/var/mongodb
    

    시작시 공식 10gen 리눅스 패키지 (우분투 / 데비안이나 CentOS는 / 페도라) /etc/mongodb.conf에 배치 된 기본 구성 파일을 함께 제공하고 MongoDB의 서비스는이를 읽습니다. 현재 변경 사항을 만들 수 있습니다.

  2. ==============================

    2.이분의 다운 타임을 해결 :) 그냥 폴더를 이동 심볼릭 링크, 후 조정 권한을 추가합니다.

    이분의 다운 타임을 해결 :) 그냥 폴더를 이동 심볼릭 링크, 후 조정 권한을 추가합니다.

    sudo service mongod stop
    sudo mv mongodb /new/disk/mongodb/
    sudo ln -s /new/disk/mongodb/ /var/lib/mongodb
    sudo chown mongodb:mongodb /new/disk/mongodb/
    sudo service mongod start
    
    # test if mongodb user can access new location:
    sudo -u mongodb -s cd /new/disk/mongodb/
    # resolve other permissions issues if necessary
    sudo usermod -a -G <newdisk_grp> mongodb
    
  3. ==============================

    3.당신이 기본 경로를 변경하려면 다음과 같은 명령은 당신을 위해 작동합니다. 그냥 MongoDB를의 빈 디렉토리에이를 입력합니다.

    당신이 기본 경로를 변경하려면 다음과 같은 명령은 당신을 위해 작동합니다. 그냥 MongoDB를의 빈 디렉토리에이를 입력합니다.

    mongod --dbpath=yourdirectory\data\db
    

    경우에 당신은 당신이 명령을 실행하기 전에 다음 단지 새로운 디렉토리에 기존 데이터 \ db 디렉토리에서 모든 폴더를 복사도 기존 데이터를 이동하려는.

    또한 정지 실행하는 MongoDB의 서비스를 기존.

  4. ==============================

    4.당신이 그것을 해달라고하면 MongoDB를 폴더에 mongod.cfg라는 파일을 만듭니다. 나의 경우에는: C : \ 사용자 \ ivanbtrujillo \ MongoDB를

    당신이 그것을 해달라고하면 MongoDB를 폴더에 mongod.cfg라는 파일을 만듭니다. 나의 경우에는: C : \ 사용자 \ ivanbtrujillo \ MongoDB를

    그런 다음, 메모장 편집 mongod.cfg하고 다음 (우리의 사용자 정의 DBPATH)와 줄을 추가 :

    dbpath=C:\Users\ivanbtrujillo\MongoDB\data\db
    

    이 파일에서 당신은 너무 로그 경로를 지정해야합니다. 내 mongod.cfg 파일은 다음과 같습니다

    logpath=C:\Users\ivanbtrujillo\MongoDB\log\mongo.log
    dbpath=C:\Users\ivanbtrujillo\MongoDB\data\db
    

    당신이 Windows 서비스로 MongoDB를를 사용하는 경우,이 키를 변경하고 mongod.cfg 파일을 especify해야합니다.

    이 명령을 실행하여 Windows 서비스로하여 MongoDB를 설치하려면 :

    **"C:\Users\ivanbtrujillo\MongoDB\bin\mongod.exe" --config "C:\Users\ivanbtrujillo\MongoDB\mongod.cfg" –install**
    

    다음 행 노선의 열기에 regedit.exe 및 이동 :

    HKEYLOCALMACHINE\SYSTEM\CurrentControlSet\services\MongoDB
    

    MongoDB의 서비스는 우리가 편집에 ImagePath를 키가 아니라 작업의 내용을 삭제하고 다음을 넣어 않습니다 :

    **"C:\Users\ivanbtrujillo\MongoDB\bin\mongod.exe" --config "C:\Users\ivanbtrujillo\MongoDB\mongod.cfg" 
    --logpath="C:\Users\ivanbtrujillo\MongoDB\log\mongo.log" –service**
    

    우리는의 config 파일과를 logpath을 몽고을 나타냅니다.

    당신은 MongoDB의 서비스를 초기화하기 때 그런 다음, 그것을 작동합니다.

    다음은 Windows에서 MongoDB를 설치하는 전체 튜토리얼은 다음과 같습니다 http://ivanbtrujillo.herokuapp.com/2014/07/24/installing-mongodb-as-a-service-windows/

    희망이 도움이,

  5. ==============================

    5.은 / var / lib 디렉토리 / MongoDB를에 / 데이터 / DB의 내용을 복사합니다. 숫자가 0으로 시작됩니다 여기서 n 당신이 당신의 파일 시스템에서 검색,은 / var / lib 디렉토리 / MongoDB를 아래에 이러한 파일이 표시되지 않는 경우 당신이 찾고해야하는 파일은 your_db_name.ns 및 your_dbname.n 같은 이름이 있어야합니다.

    은 / var / lib 디렉토리 / MongoDB를에 / 데이터 / DB의 내용을 복사합니다. 숫자가 0으로 시작됩니다 여기서 n 당신이 당신의 파일 시스템에서 검색,은 / var / lib 디렉토리 / MongoDB를 아래에 이러한 파일이 표시되지 않는 경우 당신이 찾고해야하는 파일은 your_db_name.ns 및 your_dbname.n 같은 이름이 있어야합니다.

    복사 후 사용 --dbpath = / 데이터 / DB mongod 명령을 통해 MongoDB를 시작할 때.

  6. ==============================

    6.여기에 내가 무슨 짓을했는지, 그것은 다른 사람에게 도움이 희망 :

    여기에 내가 무슨 짓을했는지, 그것은 다른 사람에게 도움이 희망 :

    단계 :

    당신이 Especialy는 RF RM은에,이 작업을 수행하지만이 그것을 할 수있는 최선의 방법이라고 생각 할 때 조심해야한다 말할 필요가 없습니다.

    그것에서 읽기 쓰기 / 데이터베이스의 내용을 변경됩니다 서비스가있을 수 있습니다 때문에, mongod이 실행되는 동안 데이터베이스 디렉토리를 복사하려고해서는 안됩니다.

  7. ==============================

    7.를 통해 설치 한 경우 대한 Chown -R MongoDB를하는 것을 잊지 마세요, 우분투 12.04에있는 apt-get : nogroup / 경로 /로 / 새 / 디렉토리. 또한 /etc/mongodb.conf에서 구성을 변경.

    를 통해 설치 한 경우 대한 Chown -R MongoDB를하는 것을 잊지 마세요, 우분투 12.04에있는 apt-get : nogroup / 경로 /로 / 새 / 디렉토리. 또한 /etc/mongodb.conf에서 구성을 변경.

    는 config 스크립트가 /etc/init/mongodb.conf에 있도록 알림으로, MongoDB를-10gen 패키지는 이제 신출내기를 통해 시작된다

    난 그냥이 겪었, 희망 명의 Google 찾으 유용합니다 :)

  8. ==============================

    8.사용자 대신하여 MongoDB의 mongod한다

    사용자 대신하여 MongoDB의 mongod한다

    sudo는 대한 Chown mongod : mongod /를 newLocation

    서비스가 실패 할 경우 오류에 대한 로그를 볼 수 있습니다 -

    /var/log/mongodb/mongod.log

  9. ==============================

    9.데비안 / 우분투, 당신은 편집에 /etc/init.d/mongodb 스크립트가 필요합니다. 정말,이 파일은 /etc/mongodb.conf에서 설정을 당겨해야 하지만 기본 디렉토리 (아마도 버그)를 당겨하지 않는 것

    데비안 / 우분투, 당신은 편집에 /etc/init.d/mongodb 스크립트가 필요합니다. 정말,이 파일은 /etc/mongodb.conf에서 설정을 당겨해야 하지만 기본 디렉토리 (아마도 버그)를 당겨하지 않는 것

    이 해킹의 비트이지만, 스크립트에 이러한 추가는 제대로 시작했다 :

    더하다:

    DBDIR=/database/mongodb
    

    변화:

    DAEMON_OPTS=${DAEMON_OPTS:-"--unixSocketPrefix=$RUNDIR --config $CONF run"}
    

    에:

    DAEMON_OPTS=${DAEMON_OPTS:-"--unixSocketPrefix=$RUNDIR --dbpath $DBDIR --config $CONF run"}
    
  10. from https://stackoverflow.com/questions/5961145/changing-mongodb-data-store-directory by cc-by-sa and MIT license