Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
Yandex Managed Service for MongoDB
  • Начало работы
  • Пошаговые инструкции
    • Все инструкции
    • Информация об имеющихся кластерах
    • Создание кластера
    • Подключение к базе данных
      • Обзор способов подключения к базе данных
      • Подключение к нешардированному кластеру
      • Подключение к шардированному кластеру
    • Остановка и запуск кластера
    • Изменение настроек кластера и базы данных
    • Переключение первичной реплики
    • Обновление версии MongoDB
    • Управление базами данных
    • Управление хостами кластера
    • Управление пользователями БД
    • Управление резервными копиями
    • Управление шардами
    • Просмотр логов кластера
    • Удаление кластера
    • Мониторинг состояния кластера и хостов
    • Диагностика производительности
    • Инструменты для анализа производительности
  • Практические руководства
    • Все сценарии
    • Шардирование коллекций
    • Миграция данных в Managed Service for MongoDB
    • Миграция коллекций из стороннего кластера MongoDB
    • Анализ производительности и оптимизация MongoDB
  • Концепции
    • Взаимосвязь ресурсов сервиса
    • Классы хостов
      • Действующие классы хостов
      • Архив
        • До 1 июня 2020 года
      • Использование устаревших классов хостов
    • Сеть в Managed Service for MongoDB
    • Редакции MongoDB
    • Квоты и лимиты
    • Хранилище в Managed Service for MongoDB
    • Резервные копии
    • Репликация
    • Шардирование
    • Пользователи и роли
    • Техническое обслуживание
    • Поддерживаемые клиенты
    • Настройки MongoDB
  • Управление доступом
  • Правила тарификации
    • Действующие правила
    • Архив
      • До 1 января 2019 года
      • С 1 января до 1 марта 2019 года
      • С 1 марта 2019 года до 1 февраля 2020 года
  • Справочник API
    • Аутентификация в API
    • gRPC (англ.)
      • Overview
      • BackupService
      • ClusterService
      • DatabaseService
      • ResourcePresetService
      • UserService
      • OperationService
    • REST (англ.)
      • Overview
      • Backup
        • Overview
        • delete
        • get
        • list
      • Cluster
        • Overview
        • addHosts
        • addShard
        • backup
        • create
        • delete
        • deleteHosts
        • deleteShard
        • enableSharding
        • get
        • getShard
        • list
        • listBackups
        • listHosts
        • listLogs
        • listOperations
        • listShards
        • move
        • rescheduleMaintenance
        • resetupHosts
        • restartHosts
        • restore
        • start
        • stepdownHosts
        • stop
        • streamLogs
        • update
      • Database
        • Overview
        • create
        • delete
        • get
        • list
      • ResourcePreset
        • Overview
        • get
        • list
      • User
        • Overview
        • create
        • delete
        • get
        • grantPermission
        • list
        • revokePermission
        • update
      • Operation
        • Overview
        • get
  • История изменений
  • Вопросы и ответы
    • Общие вопросы
    • Вопросы о MongoDB
    • Все вопросы на одной странице
  1. Пошаговые инструкции
  2. Обновление версии MongoDB

Обновление версии MongoDB

Статья создана
Yandex Cloud
,
улучшена
amatol
  • Перед обновлением
  • Обновить кластер
  • Примеры

Вы можете обновить кластер Managed Service for MongoDB в рамках одной мажорной версии. Переход между мажорными версиями (например, 4 → 5) не поддерживается.

Обновление доступно только на следующую версию относительно текущей, например, с версии 4.0 на 4.2. Обновление до более поздних версий производится поэтапно. Например, обновление версии MongoDB с 4.0 до 4.4 выполняется в такой последовательности: 4.0 → 4.2 → 4.4.

Внимание

  • После обновления невозможно вернуть кластер к предыдущей версии.
  • Перед обновлением выполните подготовительные шаги.

Перед обновлением

Перед обновлением кластера убедитесь, что это не нарушит работу ваших приложений:

  1. Посмотрите историю изменений для версий MongoDB, до которых вы собираетесь обновить кластер, и проверьте, не повлияют ли какие-то изменения на работу приложений.
  2. Попробуйте обновить тестовый кластер (его можно развернуть, например, из резервной копии основного кластера).
  3. Выполните резервное копирование основного кластера непосредственно перед обновлением.

Обновить кластер

Консоль управления
CLI
Terraform
API
  1. Перейдите на страницу каталога и выберите сервис Managed Service for MongoDB.
  2. Выберите нужный кластер в списке и нажмите кнопку Изменить кластер.
  3. В поле Версия выберите номер новой версии.
  4. Нажмите кнопку Сохранить изменения.

После запуска обновления кластер переходит в статус UPDATING. Дождитесь окончания операции и проверьте версию кластера.

  1. Получите список ваших кластеров MongoDB командой:

    yc managed-mongodb cluster list
    
  2. Получите информацию о нужном кластере и проверьте версию MongoDB, указанную в свойстве config.version:

    yc managed-mongodb cluster get <идентификатор или имя кластера>
    
  3. Запустите обновление MongoDB:

    yc managed-mongodb cluster update <идентификатор или имя кластера> \
       --mongodb-version=<номер новой версии>
    

    После того, как обновление запущено, кластер переходит в статус UPDATING. Дождитесь окончания операции и проверьте версию кластера.

  4. После обновления все возможности MongoDB, у которых нет обратной совместимости с прежней версией, выключены. Чтобы снять это ограничение, выполните команду:

    yc managed-mongodb cluster update <идентификатор или имя кластера> \
       --feature-compatibility-version=<номер новой версии>
    

    Подробнее об обратной совместимости читайте в документации MongoDB.

  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

    О том, как создать такой файл, см. в разделе Создание MongoDB-кластера.

  2. Добавьте к описанию кластера Managed Service for MongoDB поле version или измените его значение, если оно уже существует:

    resource "yandex_mdb_mongodb_cluster" "<имя кластера>" {
      ...
      cluster_config {
        version = "<версия MongoDB>"
      }
    }
    
  3. Проверьте корректность настроек.

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  4. Подтвердите изменение ресурсов.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

Подробнее см. в документации провайдера Terraform.

Ограничения по времени

Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for MongoDB:

  • создание, в т. ч. путем восстановления из резервной копии, — 30 минут;
  • изменение — 60 минут;
  • удаление — 30 минут.

Операции, длящиеся дольше указанного времени, прерываются.

Как изменить эти ограничения?

Добавьте к описанию кластера блок timeouts, например:

resource "yandex_mdb_mongodb_cluster" "<имя кластера>" {
  ...
  timeouts {
    create = "1h30m" # Полтора часа
    update = "2h"    # 2 часа
    delete = "30m"   # 30 минут
  }
}

Чтобы обновить версию MongoDB, воспользуйтесь методом API update и передайте в запросе:

  • Идентификатор кластера в параметре clusterId. Чтобы узнать идентификатор, получите список кластеров в каталоге.
  • Версию MongoDB, до которой производится обновление, в параметре configSpec.version.
  • Список настроек, которые необходимо изменить (в данном случае — configSpec.version), в параметре updateMask.

Важно

Этот метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре updateMask (одной строкой через запятую).

После обновления все возможности MongoDB, у которых нет обратной совместимости с прежней версией, выключены. Чтобы снять это ограничение, используйте метод API update: передайте в запросе номер новой версии в свойстве configSpec.featureCompatibilityVersion.

Подробнее об обратной совместимости читайте в документации MongoDB.

Примеры

Допустим, нужно обновить кластер с версии 4.0 до версии 4.2.

CLI
  1. Чтобы узнать идентификатор кластера, получите список всех кластеров в каталоге:

    yc managed-mongodb cluster list
    
    +----------------------+---------------+---------------------+--------+---------+
    |          ID          |     NAME      |     CREATED AT      | HEALTH | STATUS  |
    +----------------------+---------------+---------------------+--------+---------+
    | c9q8p8j2gaih8iti42mh |   mongodb406  | 2019-04-23 12:44:17 | ALIVE  | RUNNING |
    +----------------------+---------------+---------------------+--------+---------+
    
  2. Чтобы получить информацию о кластере c9qut3k64b2o9umqogr7, выполните команду:

    yc managed-mongodb cluster get c9qut3k64b2o9umqogr7
      id: c9qut3k64b2o9umqogr7
      folder_id: b1g0itj57rbjk9thrinv
      created_at: "2019-07-16T09:43:50.393231Z"
      name: mongodb406
      environment: PRODUCTION
      monitoring:
      - name: Console
        description: Console charts
        link: https://console.cloud.yandex.ru/folders/b1g0itj57rbjk9thrinv/managed-mongodb/cluster/c9qut3k64b2o9umqogr7?section=monitoring
      config:
        version: "4.0"
        feature_compatibility_version: "4.0"
        ...
    
  3. Для обновления кластера c9qutgkd4b2o9umqog97 до версии 4.2, выполните команду:

    yc managed-mongodb cluster update c9qutgkd4b2o9umqog97 \
        --mongodb-version=4.2
    
  4. Чтобы включить все возможности версии 4.2 в кластере c9qutgkd4b2o9umqog97, выполните команду:

    yc managed-mongodb cluster update c9qutgkd4b2o9umqog97 \
        --feature-compatibility-version=4.2
    

Была ли статья полезна?

Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
В этой статье:
  • Перед обновлением
  • Обновить кластер
  • Примеры