MongoDB 3.0 представляет новый названный механизм устройства хранения данных wiredTiger
который приводит к значительно уменьшенному использованию памяти и использованию дискового пространства.
Так как мой DB в настоящее время в ~20 миллионах объектов и израсходовавший ~70GB RAM, это обновление входит в только правильное время для отсрочки аппаратного обновления.
Как Вы мигрируете, существующая установка MongoDB 2.6 к 3,0 и в то же время извлекают пользу из wiredTiger?
Документация относится к опциям, которые приводят к ошибкам запуска, которые препятствуют тому, чтобы MongoDB запустил. Кроме того, расположение файлов не соответствует тем в Ubuntu (Сервер 14.04 LTS).
В стандартных установках конфигурационный файл в /etc/mongod.conf
. То, что не упоминают документы MongoDB, - то, что при миграции на WiredTiger мы также должны обновить конфигурационный файл к новому формату YAML, представленному в 2,6.
Насколько я могу сказать engine
опция только доступна в новом формате конфигурации.
Миграция от старого механизма устройства хранения данных состоит в создании дампа базы данных, закрытии mongodb, изменении настроек и затем импорте дампа в новый механизм устройства хранения данных.
Создайте резервное копирование. Серьезно. Нам нужен дамп базы данных, который мы затем импортируем к новому механизму базы данных:
mongodump -d db_name /backup/path/
Остановите mongodb сервис
sudo service mongod stop
Переместите данные от текущего местоположения до где-то в другом месте (MongoDB не запустится, если каталог данных будет содержать файлы, сгенерированные старым механизмом устройства хранения данных).
sudo mv /var/lib/mongodb /var/lib/mongodb_26/
Обновите MongoDB до версии 3.0 (из http://docs.mongodb.org/v3.0/tutorial/install-mongodb-on-ubuntu/):
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list
sudo apt-get update
sudo apt-get install mongodb-org mongodb-org-server mongodb-org-shell mongodb-org-mongos mongodb-org-tools
Преобразуйте конфигурационный файл из старого (пред 2,6) к текущему формату YAML. Абсолютный минимум:
storage:
dbPath: "/var/lib/mongodb"
engine: wiredTiger
systemLog:
destination: file
path: "/var/log/mongodb/mongod.log"
logAppend: true
net:
bindIp: 127.0.0.1
port: 27017
# Enable the HTTP interface (Defaults to port 28017).
http:
enabled: false
Удостоверьтесь, что никакие строки в старом формате не остаются, или MongoDB не запустится.
Полная документация для configurtion файла в: http://docs.mongodb.org/v3.0/reference/configuration-options/
Дополнительно сделайте резервное копирование журнала:
sudo mv /var/log/mongodb/mongod.log /var/log/mongodb/mongod_26.log
Перезапуск mongodb
sudo service mongod start
Загрузите резервное копирование для преобразования данных в новый механизм устройства хранения данных
mongorestore /backup/location
После проверки, что все Ваши данные в порядке, можно удалить каталог со старым форматом данных
sudo rm -r /var/lib/mongodb_26/
Обратите внимание, что для наборов копии и кластеров черепка там некоторые дополнительные шаги: http://docs.mongodb.org/v3.0/release-notes/3.0-upgrade/?_ga=1.86531032.1131483509.1428671022#change-replica-set-storage-engine-to-wiredtiger
Используя старый формат файла настройки , я имел успех с:
storageEngine=wiredTiger