2014-11-28 2 views
1

Я работаю над проектом с использованием MongoDB и поэтому попросил моего диспетчера сервера установить MongoDB.MongoDB проблемы с одним сервером/pittfalls

Недавно я прочитал в старой потоке stackoverflow, что на самом деле не рекомендуется запускать MongoDB на одном сервере из-за возможности потери данных. Я не специалист и хочу избегать подобных случаев. Неужели эти проблемы все еще существуют, и я должен искать другое решение, такое как удаленные базы данных или безопасно его установить?

Каковы подводные камни, которые я должен удостовериться, что мой управляемый серверный поставщик позаботится?

+1

Эта [статья] (http://www.thebuzzmedia.com/mongodb-single-server-data-durability-guide/) может быть полезна. – chridam

+1

Внимание: в статье описывается ситуация версии 1.5 с июля 2010 года. Сегодня почти 4 с половиной года мы находимся в версии 2.6.5. С тех пор многое изменилось, особенно в отношении надежности одного сервера и настроек по умолчанию. – mnemosyn

+0

Проще говоря, вы хотите иметь наборы реплик как минимум с двумя узлами для хранения данных и арбитром для производства. Это относительно дешевый способ в основном устранить большинство причин простоя со стороны базы данных: техническое обслуживание. Обычно я предлагаю иметь как минимум 3 узла данных, чтобы иметь избыточность даже во время работ по техническому обслуживанию. В общем, ваш вопрос немного не соответствует теме SO (который нацелен на вопросы _programming_), поэтому я прошу вас опубликовать его на http://dba.stackexchange.com и удалить его здесь. Я с удовольствием дам более подробный ответ. –

ответ

2

Внимание: изделие связано с chridam: опасно устаревшее.

Проще говоря, нет, не о чем беспокоиться с развертыванием единственного сервера MongoDB. По умолчанию MongoDB будет писать все в журнал каждые 100 мс. Если есть записи с опцией j (журнал), этот интервал сокращается до третьего. Я опубликовал a longer answer with the gritty details (два, фактически) к аналогичному вопросу некоторое время назад.

Дело в том, что операция записи с j : true не вернется, пока запись не сделана в журнал (т. Е. Ожидают, что эти вызовы будут принимать в среднем 16 мс), и это именно то, что можно было бы ожидать, и это также как ведут себя большинство других dbs.

Вы должны убедиться в том, что используете проблемы с записью на журналы (j : true), а регистрация не отключена. Кроме того, поскольку значения по умолчанию зависят от версии сервера и есть много новых функций, исправлений и улучшений производительности, убедитесь, что вы получаете несколько недавнюю версию MongoDB (может быть, не так, если на сервере работает что-то вроде стабилизации debian).

+0

Благодарим вас за ответ. Я поднимусь, как только у меня хватит репутации. Вы ответили очень полезно. – SimonEritsch