지금까지는 MongoDB 데이터 디렉토리를 지정하지 않았으며 30GB 기본 파티션이 하나만있었습니다.
공간이 부족하고 새 하드 디스크를 추가했습니다. /var/lib/mongodb/
기존 설치에 영향을주지 않고 새 디스크에서 모든 것이 실행되도록 데이터를 전송 하고 MongoDB를 구성하려면 어떻게해야합니까?
답변
짧은 대답은 --dbpath
MongoDB 의 매개 변수를 사용하여 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/db
는 mongod
명령을 통해 MongoDB를 시작할 때 사용 하십시오 .
답변
여기 내가 한 일이 있습니다. 다른 사람에게 도움이되기를 바랍니다.
단계 :
- mongodb를 사용하는 서비스 를 중지하십시오
- mongod 중지 -내 rc 파일
/etc/rc.d/rc.mongod stop
을 사용하는 방법은 systemd와 같은 다른 것을 사용하는 경우 문서를 확인하는 방법을 확인해야합니다 - 새로운 하드 디스크에 새 디렉토리 를 만듭니다 –
mkdir /mnt/database
- mongodb가 해당 디렉토리 (보통
chown mongodb:mongodb -R /mnt/database/mongodb
) 에서 읽기 / 쓰기 권한을 가지고 있는지 확인하십시오 . @DanailGabenski 덕분입니다. - 새 위치로 MongoDB를의 데이터 폴더를 복사 –
cp -R /var/lib/mongodb/ /mnt/database/
- 기존 데이터베이스 폴더를 제거합니다 –
rm -rf /var/lib/mongodb/
- 새 데이터베이스 폴더에 대한 심볼릭 링크 만들기 –
ln -s /mnt/database/mongodb /var/lib/mongodb
- mongod 시작 –
/etc/rc.d/rc.mongod start
- 당신의 mongod 의 로그 를 확인하고 위생 검사
mongo
를 수행하십시오 (모든 것이 괜찮은지 확인하려면 데이터베이스에 연결하십시오) - 1 단계에서 중지 한 서비스 를 시작하십시오.
이 작업을 할 때 특히 조심해야한다고 말할 필요는 없지만, rm -rf
이것이 최선의 방법이라고 생각합니다.
mongod가 실행되는 동안 데이터베이스 디렉토리를 복사하려고 시도해서는 안됩니다. 데이터베이스의 내용을 변경하는 서비스가 쓰기 / 읽기 서비스가있을 수 있기 때문입니다.
답변
apt-get
Ubuntu 12.04 를 통해 설치 한 경우 잊지 마십시오 chown -R mongodb:nogroup /path/to/new/directory
. 또한에서 구성을 변경하십시오 /etc/mongodb.conf
.
다시 말해, mongodb-10gen
패키지는 이제 upstart를 통해 시작되므로 구성 스크립트는/etc/init/mongodb.conf
방금이 과정을 거쳤습니다 .Google 직원이 유용하다고 생각하기를 바랍니다. 🙂