2013-09-19 3 views
0

Когда я изначально настраивал mongodb, я, должно быть, сделал что-то неправильно, так как мои данные не записываются в /data/db, как я и предполагал. Я не знаю, где хранятся мои данные (выполнение поиска в finder для db naem не возвращает результатов, и я не могу найти в документах, как я могу узнать текущий каталог). Как я могу безопасно указать mongodb на использование моего желаемого каталога, убедившись, что он перемещает все мои существующие данные в новое место?Перемещение базы данных mongodb в новое место

+0

Попробуйте запустить 'Lsof -p ' где '' является идентификатор процесса для mongod в узнать, какие файлы используются mongodb. –

ответ

1

Способ изменения dbpath состоит в том, чтобы остановить экземпляр mongod, скопировать содержимое каталога dbpath в новое место и затем перезапустить его с соответствующим новым параметром dbpath.

Во-первых, чтобы определить текущую настройку dbpath, вы можете использовать команду getCmdLineOpts. Вот как использовать его из Монго оболочки:

> db.serverCmdLineOpts() 
{ 
    "argv" : [ 
     "mongod", 
     "--config=/Users/dstorch/foo.conf" 
    ], 
    "parsed" : { 
     "config" : "/Users/dstorch/foo.conf", 
     "dbpath" : "/data/db" 
    }, 
    "ok" : 1 
} 

Как вы можете видеть, «parsed.dbpath» даст текущее значение DBPATH.

Скажите, что вы хотите изменить dbpath из/data/db в/data/db2. Сначала вам нужно закрыть mongod. Вы делаете это, отправляя SIGTERM либо с помощью Control-C, либо с помощью kill <pid>. Третий вариант - запустить команду shutdown.

Когда mongod благополучно вышел, копировать данные на новое место, и снова с новым DBPATH:

cp -r /data/db /data/db2 
mongod --dbpath /data/db2 
+0

Оказалось, что копирование данных было проще, чем я думал (по какой-то причине мой существующий каталог данных даже не разрешил доступ к чтению admin, поэтому мне пришлось немного поработать chown/chmod) – wheresrhys

Смежные вопросы