Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
© 2022 ООО «Яндекс.Облако»
Yandex Managed Service for MySQL®
  • Начало работы
  • Пошаговые инструкции
    • Все инструкции
    • Информация об имеющихся кластерах
    • Создание кластера
    • Подключение к базе данных
    • Остановка и запуск кластера
    • SQL-запросы в консоли управления
    • Изменение кластера
    • Подключение к DataLens
    • Управление хостами MySQL
    • Управление базами данных
    • Управление пользователями
    • Управление правами пользователей
    • Управление резервными копиями
    • Просмотр логов кластера
    • Удаление кластера
    • Диагностика производительности
    • Мониторинг состояния кластера и хостов
  • Концепции
    • Взаимосвязь ресурсов сервиса
    • Классы хостов
      • Действующие классы хостов
      • Архив
        • До 1 июня 2020 года
      • Использование устаревших классов хостов
    • Сеть в Managed Service for MySQL
    • Квоты и лимиты
    • Типы хранилища
    • Резервные копии
    • Репликация
    • Техническое обслуживание
    • Права пользователей
    • Настройки MySQL
  • Практические руководства
    • Все сценарии
    • Анализ производительности и оптимизация
    • Выгрузка базы данных в Yandex Data Proc
    • Миграция базы данных в Managed Service for MySQL
    • Миграция базы данных из Managed Service for MySQL в MySQL
  • Управление доступом
  • Правила тарификации
    • Действующие правила
    • Архив
      • До 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
      • ResourcePreset
        • Overview
        • get
        • list
      • User
        • Overview
        • create
        • delete
        • get
        • grantPermission
        • list
        • revokePermission
        • update
      • Operation
        • Overview
        • get
  • История изменений
  • Вопросы и ответы
    • Общие вопросы
    • Вопросы о MySQL
    • Подключение
    • Проблемы с чтением/записью в кластер
    • Проблемы с производительностью
    • Изменение кластера
    • Мониторинг и логи
    • Миграция/перенос
    • Настройки параметров MySQL
    • Все вопросы на одной странице
  1. Пошаговые инструкции
  2. Управление хостами MySQL

Управление хостами кластера

Статья создана
Yandex Cloud
  • Получить список хостов в кластере
  • Добавить хост
  • Изменить хост
  • Удалить хост

Вы можете добавлять и удалять хосты кластера, а также управлять их настройками.

Получить список хостов в кластере

Консоль управления
CLI
API
  1. Перейдите на страницу каталога и выберите сервис Managed Service for MySQL.
  2. Нажмите на имя нужного кластера, затем выберите вкладку Хосты.

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

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

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

yc managed-mysql host list \
   --cluster-name=<имя кластера>
+----------------------------+--------------+---------+--------+---------------+
|            NAME            |  CLUSTER ID  |  ROLE   | HEALTH |    ZONE ID    |
+----------------------------+--------------+---------+--------+---------------+
| rc1b...mdb.yandexcloud.net | c9q5k4ve7... | MASTER  | ALIVE  | ru-central1-b |
| rc1c...mdb.yandexcloud.net | c9q5k4ve7... | REPLICA | ALIVE  | ru-central1-c |
+----------------------------+--------------+---------+--------+---------------+

Имя кластера можно запросить со списком кластеров в каталоге.

Воспользуйтесь методом API listHosts и передайте идентификатор кластера в параметре clusterId запроса.

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

Добавить хост

Количество хостов в кластерах Managed Service for MySQL ограничено квотами на количество CPU и объем памяти, которые доступны кластерам БД в вашем облаке. Чтобы проверить используемые ресурсы, откройте страницу Квоты и найдите блок Managed Databases.

Консоль управления
CLI
Terraform
API
  1. Перейдите на страницу каталога и выберите сервис Managed Service for MySQL.

  2. Нажмите на имя нужного кластера и перейдите на вкладку Хосты.

  3. Нажмите кнопку Добавить хост.

  4. Укажите параметры хоста:

    • зону доступности;
    • подсеть (если нужной подсети в списке нет, создайте ее);
    • выберите опцию Публичный доступ, если хост должен быть доступен извне Yandex Cloud;
    • приоритет назначения хоста мастером;
    • приоритет хоста как MySQL-реплики для создания резервной копии.

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

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

Чтобы добавить хост в кластер:

  1. Запросите список подсетей кластера, чтобы выбрать подсеть для нового хоста:

    $ yc vpc subnet list
    
    +-----------+-----------+------------+---------------+------------------+
    |     ID    |   NAME    | NETWORK ID |     ZONE      |      RANGE       |
    +-----------+-----------+------------+---------------+------------------+
    | b0cl69... | default-c | enp6rq7... | ru-central1-c | [172.16.0.0/20]  |
    | e2lkj9... | default-b | enp6rq7... | ru-central1-b | [10.10.0.0/16]   |
    | e9b0ph... | a-2       | enp6rq7... | ru-central1-a | [172.16.32.0/20] |
    | e9b9v2... | default-a | enp6rq7... | ru-central1-a | [172.16.16.0/20] |
    +-----------+-----------+------------+---------------+------------------+
    

    Если нужной подсети в списке нет, создайте ее.

  2. Посмотрите описание команды CLI для добавления хостов:

    $ yc managed-mysql host add --help
    
  3. Выполните команду добавления хоста (в примере приведены не все доступные параметры):

    yc managed-mysql host add \
      --cluster-name=<имя кластера> \
      --host zone-id=<идентификатор зоны доступности>,
      --subnet-id=<идентификатор подсети>,
      --backup-priority=<приоритет хоста при резервном копировании>
      --priority=<приоритет назначения хоста мастером: от 0 до 100>
    
    

    Managed Service for MySQL запустит операцию добавления хоста.

    Идентификатор подсети необходимо указать, если в зоне доступности больше одной подсети, в противном случае Managed Service for MySQL автоматически выберет единственную подсеть. Имя кластера можно запросить со списком кластеров в каталоге.

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

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

  2. Добавьте к описанию кластера Managed Service for MySQL блок host:

    resource "yandex_mdb_mysql_cluster" "<имя кластера>" {
      ...
      host {
        zone             = "<зона доступности>"
        subnet_id        = <идентификатор подсети>
        assign_public_ip = <публичный доступ к хосту: true или false>
        priority         = <приоритет назначения хоста мастером: от 0 до 100>
        ...
      }
    }
    
  3. Проверьте корректность настроек.

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

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

      terraform validate
      

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

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

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

      terraform plan
      

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Идентификатор кластера в параметре clusterId. Чтобы узнать идентификатор, получите список кластеров в каталоге.
  • Настройки нового хоста в одном или нескольких параметрах hostSpecs.

Важно

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

Изменить хост

Для каждого хоста в кластере Managed Service for MySQL можно:

  • указать источник репликации;
  • управлять публичным доступом;
  • задать приоритет использования при резервном копировании;
  • задать приоритет назначения хоста мастером при выходе из строя основного мастера.
Консоль управления
CLI
Terraform
API

Чтобы изменить параметры хоста в кластере:

  1. Перейдите на страницу каталога и выберите сервис Managed Service for MySQL.
  2. Нажмите на имя нужного кластера и выберите вкладку Хосты.
  3. Нажмите значок в строке нужного хоста и выберите пункт Редактировать.
  4. Задайте новые настройки для хоста:
    1. Выберите источник репликации для хоста, чтобы вручную управлять потоками репликации.
    2. Включите опцию Публичный доступ, если хост должен быть доступен извне Yandex Cloud.
    3. Задайте значение поля Приоритет мастера.
    4. Задайте значение поля Приоритет создания бэкапа.
  5. Нажмите кнопку Сохранить.

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

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

Чтобы изменить параметры хоста, выполните команду (в примере приведены не все доступные параметры):

yc managed-mysql host update <имя хоста> \
  --cluster-name=<имя кластера> \
  --replication-source=<имя хоста-источника> \
  --assign-public-ip=<публичный доступ к хосту: true или false> \
  --backup-priority=<приоритет хоста при резервном копировании: от 0 до 100>
  --priority=<приоритет назначения хоста мастером: от 0 до 100>

Где:

  • --cluster-name — имя кластера Managed Service for MySQL;
  • --replication-source — источник репликации для хоста;
  • --assign-public-ip — доступность хоста из интернета по публичному IP-адресу;
  • --backup-priority — приоритет хоста при резервном копировании.
  • --priority — приоритет назначения хоста мастером при выходе из строя основного мастера.

Имя хоста можно запросить со списком хостов в кластере, имя кластера — со списком кластеров в каталоге.

Чтобы изменить параметры хоста в кластере:

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

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

  2. Измените в описании кластера Managed Service for MySQL атрибуты блока host, соответствующего изменяемому хосту.

    resource "yandex_mdb_mysql_cluster" "<имя кластера>" {
      ...
      host {
        replication_source_name = "<источник репликации>"
        assign_public_ip        = <публичный доступ к хосту: true или false>
        priority                = <приоритет назначения хоста мастером: от 0 до 100>
      }
    }
    
  3. Проверьте корректность настроек.

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

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

      terraform validate
      

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

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

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

      terraform plan
      

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. Идентификатор кластера, в котором нужно изменить хост, в параметре clusterId.
  2. Имя хоста, который нужно изменить, в параметре updateHostSpecs.hostName.
  3. Настройки нового хоста в одном или нескольких параметрах hostSpecs.

Имя хоста можно запросить со списком хостов в кластере, идентификатор кластера — со списком кластеров в каталоге.

Важно

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

Удалить хост

Вы можете удалить хост из MySQL-кластера, если он не является единственным хостом. Чтобы заменить единственный хост, сначала создайте новый хост, а затем удалите старый.

Если хост является мастером в момент удаления, Managed Service for MySQL автоматически назначит мастером следующую по приоритету реплику.

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

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

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

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

yc managed-mysql host delete <имя хоста> \
   --cluster-name=<имя кластера>

Имя хоста можно запросить со списком хостов в кластере, имя кластера — со списком кластеров в каталоге.

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

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

  2. Удалите из описания кластера Managed Service for MySQL блок host.

  3. Проверьте корректность настроек.

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

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

      terraform validate
      

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

  4. Подтвердите удаление ресурсов.

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

      terraform plan
      

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Идентификатор кластера в параметре clusterId. Чтобы узнать идентификатор, получите список кластеров в каталоге.
  • Имя или массив имен удаляемых хостов в параметре hostNames.

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

Language / Region
© 2022 ООО «Яндекс.Облако»
В этой статье:
  • Получить список хостов в кластере
  • Добавить хост
  • Изменить хост
  • Удалить хост