Как переместить MongoDB 2.6 в 3,0 с WiredTiger

MongoDB 3.0 представляет новый названный механизм устройства хранения данных wiredTiger который приводит к значительно уменьшенному использованию памяти и использованию дискового пространства.

Так как мой DB в настоящее время в ~20 миллионах объектов и израсходовавший ~70GB RAM, это обновление входит в только правильное время для отсрочки аппаратного обновления.

Как Вы мигрируете, существующая установка MongoDB 2.6 к 3,0 и в то же время извлекают пользу из wiredTiger?

Документация относится к опциям, которые приводят к ошибкам запуска, которые препятствуют тому, чтобы MongoDB запустил. Кроме того, расположение файлов не соответствует тем в Ubuntu (Сервер 14.04 LTS).

8
задан 1 July 2015 в 10:43

2 ответа

В стандартных установках конфигурационный файл в /etc/mongod.conf. То, что не упоминают документы MongoDB, - то, что при миграции на WiredTiger мы также должны обновить конфигурационный файл к новому формату YAML, представленному в 2,6.
Насколько я могу сказать engine опция только доступна в новом формате конфигурации.
Миграция от старого механизма устройства хранения данных состоит в создании дампа базы данных, закрытии mongodb, изменении настроек и затем импорте дампа в новый механизм устройства хранения данных.

  1. Создайте резервное копирование. Серьезно. Нам нужен дамп базы данных, который мы затем импортируем к новому механизму базы данных:

    mongodump -d db_name /backup/path/  
    
  2. Остановите mongodb сервис

    sudo service mongod stop  
    
  3. Переместите данные от текущего местоположения до где-то в другом месте (MongoDB не запустится, если каталог данных будет содержать файлы, сгенерированные старым механизмом устройства хранения данных).

    sudo mv /var/lib/mongodb /var/lib/mongodb_26/
    
  4. Обновите 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  
    
  5. Преобразуйте конфигурационный файл из старого (пред 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/

  6. Дополнительно сделайте резервное копирование журнала:

    sudo mv /var/log/mongodb/mongod.log /var/log/mongodb/mongod_26.log
    
  7. Перезапуск mongodb

    sudo service mongod start
    
  8. Загрузите резервное копирование для преобразования данных в новый механизм устройства хранения данных

    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

14
ответ дан 23 November 2019 в 05:29

Используя старый формат файла настройки , я имел успех с:

storageEngine=wiredTiger
1
ответ дан 23 November 2019 в 05:29

Другие вопросы по тегам:

Похожие вопросы: