[mongodb] MongoDB 데이터 저장소 디렉토리 변경

지금까지는 MongoDB 데이터 디렉토리를 지정하지 않았으며 30GB 기본 파티션이 하나만있었습니다.

공간이 부족하고 새 하드 디스크를 추가했습니다. /var/lib/mongodb/기존 설치에 영향을주지 않고 새 디스크에서 모든 것이 실행되도록 데이터를 전송 하고 MongoDB를 구성하려면 어떻게해야합니까?



답변

짧은 대답은 --dbpathMongoDB 의 매개 변수를 사용하여 MongoDB가 데이터를 읽고 쓰는 디렉토리를 제어 할 수 있다는 것입니다.

mongod –dbpath / usr / local / mongodb-data

mongodb를 시작하고 파일을에 넣습니다 /usr/local/mongodb-data.

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

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

공식 10gen Linux 패키지 ( Ubuntu / Debian 또는 CentOS / Fedora )는에 배치 된 기본 구성 파일과 함께 /etc/mongodb.conf제공되며 MongoDB 서비스는 시작할 때이를 읽습니다. 여기서 변경할 수 있습니다.


답변

다운 타임으로 2 분 안에 해결 🙂
폴더를 이동하고 symlink를 추가 한 다음 권한을 조정하십시오.

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


답변

기본 경로를 변경하려는 경우 다음 명령이 적합합니다. mongodb의 bin 디렉토리에 이것을 입력하십시오.

mongod --dbpath=yourdirectory\data\db

기존 데이터를 이동하려는 경우 명령을 실행하기 전에 기존 data \ db 디렉토리의 모든 폴더를 새 디렉토리로 복사하십시오.

또한 실행중인 기존 mongodb 서비스를 중지하십시오.


답변

없는 경우 MongoDB 폴더에 mongod.cfg라는 파일을 작성하십시오. 제 경우에는 : C : \ Users \ 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

mongoDB를 Windows 서비스로 사용하는 경우이 키를 변경하고 mongod.cfg 파일을 지정해야합니다.

mongodb를 Windows 서비스로 설치하려면 다음 명령을 실행하십시오.

**"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**

우리는 구성 파일과 해당 로그 경로를 mongo에 표시합니다.

그런 다음 mongodb 서비스를 초기화하면 작동합니다.

다음은 Windows에서 mongoDB를 설치하는 전체 자습서입니다.
http://ivanbtrujillo.herokuapp.com/2014/07/24/installing-mongodb-as-a-service-windows/

도움이 되길 바랍니다.


답변

의 내용을 /var/lib/mongodb에 복사하십시오 /data/db. 같은 당신이 찾고해야하는 파일은 이름을 가지고 있어야 your_db_name.ns하고 your_dbname.n어디에 n당신이 아래에 이러한 파일이 표시되지 않는 경우 0으로 시작하는 숫자입니다 /var/lib/mongodb귀하의 파일 시스템에서 검색이.

복사 한 후에 --dbpath=/data/dbmongod명령을 통해 MongoDB를 시작할 때 사용 하십시오 .


답변

여기 내가 한 일이 있습니다. 다른 사람에게 도움이되기를 바랍니다.

단계 :

  1. mongodb를 사용하는 서비스중지하십시오
  2. mongod 중지 -내 rc 파일 /etc/rc.d/rc.mongod stop을 사용하는 방법은 systemd와 같은 다른 것을 사용하는 경우 문서를 확인하는 방법을 확인해야합니다
  3. 새로운 하드 디스크에 새 디렉토리만듭니다mkdir /mnt/database
  4. mongodb가 해당 디렉토리 (보통 chown mongodb:mongodb -R /mnt/database/mongodb) 에서 읽기 / 쓰기 권한을 가지고 있는지 확인하십시오 . @DanailGabenski 덕분입니다.
  5. 새 위치로 MongoDB를의 데이터 폴더를 복사cp -R /var/lib/mongodb/ /mnt/database/
  6. 기존 데이터베이스 폴더를 제거합니다rm -rf /var/lib/mongodb/
  7. 새 데이터베이스 폴더에 대한 심볼릭 링크 만들기ln -s /mnt/database/mongodb /var/lib/mongodb
  8. mongod 시작/etc/rc.d/rc.mongod start
  9. 당신의 mongod 의 로그확인하고 위생 검사 mongo를 수행하십시오 (모든 것이 괜찮은지 확인하려면 데이터베이스에 연결하십시오)
  10. 1 단계에서 중지 한 서비스시작하십시오.

이 작업을 할 때 특히 조심해야한다고 말할 필요는 없지만, rm -rf이것이 최선의 방법이라고 생각합니다.

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


답변

apt-getUbuntu 12.04 를 통해 설치 한 경우 잊지 마십시오 chown -R mongodb:nogroup /path/to/new/directory. 또한에서 구성을 변경하십시오 /etc/mongodb.conf.

다시 말해, mongodb-10gen패키지는 이제 upstart를 통해 시작되므로 구성 스크립트는/etc/init/mongodb.conf

방금이 과정을 거쳤습니다 .Google 직원이 유용하다고 생각하기를 바랍니다. 🙂