Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
© 2022 ООО «Яндекс.Облако»
Yandex Managed Service for PostgreSQL
  • Начало работы
  • Пошаговые инструкции
    • Все инструкции
    • Информация об имеющихся кластерах
    • Создание кластера
    • Подключение к базе данных
    • Остановка и запуск кластера
    • SQL-запросы в консоли управления
    • Обновление версии PostgreSQL
    • Изменение настроек кластера и базы данных
    • Подключение к DataLens
    • Управление хостами PostgreSQL
    • Управление базами данных
    • Управление PostgreSQL-расширениями
    • Управление пользователями БД
    • Назначение привилегий и ролей
    • Управление резервными копиями
    • Просмотр логов кластера
    • Удаление кластера
    • Диагностика производительности
    • Мониторинг состояния кластера и хостов
  • Практические руководства
    • Создание кластера PostgreSQL для 1С
    • Выгрузка базы данных в Yandex Data Proc
    • Анализ производительности и оптимизация
    • Репликация и миграция
      • Логическая репликация PostgreSQL
      • Миграция базы данных в Managed Service for PostgreSQL
      • Миграция базы данных из Managed Service for PostgreSQL
      • Создание логической реплики Amazon RDS для PostgreSQL в Managed Service for PostgreSQL
    • Поставка данных в Yandex Managed Service for Apache Kafka® с помощью Yandex Data Transfer
    • Поставка данных в Yandex Managed Service for Apache Kafka® с помощью Debezium
  • Концепции
    • Взаимосвязь ресурсов сервиса
    • Классы хостов
      • Действующие классы хостов
      • Архив
        • До 1 июня 2020 года
      • Использование устаревших классов хостов
    • Сеть в Managed Service for PostgreSQL
    • Квоты и лимиты
    • Хранилище в Managed Service for PostgreSQL
    • Резервные копии
    • Назначение ролей
    • Управление соединениями
    • Репликация
    • Техническое обслуживание
    • Поддерживаемые клиенты
    • Настройки PostgreSQL
  • Управление доступом
  • Правила тарификации
    • Действующие правила
    • Архив
      • До 1 января 2019 года
      • С 1 января до 1 марта 2019 года
      • С 1 марта 2019 года до 1 февраля 2020 года
  • Справочник API
    • Аутентификация в API
    • gRPC (англ.)
      • Overview
      • BackupService
      • ClusterService
      • DatabaseService
      • ResourcePresetService
      • UserService
      • OperationService
    • REST (англ.)
      • Overview
      • Backup
        • Overview
        • get
        • list
      • Cluster
        • Overview
        • addHosts
        • backup
        • create
        • delete
        • deleteHosts
        • get
        • list
        • listBackups
        • listHosts
        • listLogs
        • listOperations
        • move
        • rescheduleMaintenance
        • restore
        • start
        • startFailover
        • stop
        • streamLogs
        • update
        • updateHosts
      • Database
        • Overview
        • create
        • delete
        • get
        • list
        • update
      • ResourcePreset
        • Overview
        • get
        • list
      • User
        • Overview
        • create
        • delete
        • get
        • grantPermission
        • list
        • revokePermission
        • update
      • Operation
        • Overview
        • get
  • История изменений
  • Вопросы и ответы
    • Общие вопросы
    • Подключение
    • Изменение кластера
    • Настройки параметров кластера
    • Перемещение и восстановление кластера
    • Мониторинг и логи
    • Все вопросы на одной странице
  1. Пошаговые инструкции
  2. Обновление версии PostgreSQL

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

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

Вы можете обновить кластер Managed Service for PostgreSQL до любой поддерживаемой версии.

Примечание

  • Недоступно обновление версий кластера Managed Service for PostgreSQL, оптимизированных для работы с системой 1С:Предприятие. Название таких версий заканчивается на -1с.
  • Недоступно обновление обычной версии кластера до версий для 1С:Предприятие (например, с версии 10 на версию 10-1с).

Обновление доступно только на следующую версию относительно текущей, например, с версии 11 на 12. Обновление до более поздних версий производится поэтапно. Например, обновление версии PostgreSQL с 11 до 13 выполняется в такой последовательности: 11 → 12 → 13.

Об обновлениях в рамках одной версии и обслуживании хостов см. в разделе Техническое обслуживание.

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

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

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

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

Внимание

  • После обновления СУБД вернуть кластер к предыдущей версии невозможно.
  • Успешность обновления версии PostgreSQL зависит от многих факторов, в том числе от настроек кластера и данных, хранящихся в базах. Рекомендуется сначала обновить тестовый кластер, который использует те же данные и настройки.
Консоль управления
CLI
Terraform
API
  1. Перейдите на страницу каталога и выберите сервис Managed Service for PostgreSQL.
  2. Выберите нужный кластер в списке и нажмите кнопку Изменить кластер.
  3. В поле Версия выберите номер новой версии.
  4. Нажмите кнопку Сохранить изменения.

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

Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.

По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name или --folder-id.

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

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

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

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

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

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

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

    Полный список доступных для изменения полей конфигурации кластера Managed Service for PostgreSQL см. в документации провайдера Terraform.

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

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

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

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

      terraform validate
      

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

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

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

      terraform plan
      

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

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

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

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

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

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

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

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

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

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

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

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

Воспользуйтесь методом API update и передайте в запросе:

  • Идентификатор кластера в параметре clusterId. Его можно получить со списком кластеров в каталоге.

  • Номер версии PostgreSQL в параметре configSpec.version.

  • Список полей конфигурации кластера, подлежащих изменению, в параметре updateMask.

    Важно

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

Примеры

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

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

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

    yc managed-postgresql cluster get postgre406
    
      id: c9q8p8j2gaih8iti42mh
      ...
      config:
        version: "11"
        ...
    
  3. Для обновления кластера postgre406 до версии 12, выполните команду:

    yc managed-postgresql cluster update postgre406 --postgresql-version 12
    

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

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