Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
Yandex Managed Service for MySQL®
  • Начало работы
  • Пошаговые инструкции
    • Все инструкции
    • Информация об имеющихся кластерах
    • Создание кластера
    • Подключение к базе данных
    • Остановка и запуск кластера
    • SQL-запросы в консоли управления
    • Изменение кластера
    • Подключение к DataLens
    • Управление хостами MySQL
    • Управление базами данных
    • Управление пользователями
    • Управление правами пользователей
    • Управление резервными копиями
    • Просмотр логов кластера
    • Удаление кластера
    • Диагностика производительности
    • Мониторинг состояния кластера и хостов
  • Концепции
    • Взаимосвязь ресурсов сервиса
    • Классы хостов
      • Действующие классы хостов
      • Архив
        • До 1 июня 2020 года
      • Использование устаревших классов хостов
    • Сеть в Managed Service for MySQL
    • Квоты и лимиты
    • Типы дисков
    • Резервные копии
    • Репликация
    • Техническое обслуживание
    • Права пользователей
    • Настройки MySQL
    • Ограничения для команд SQL
  • Практические руководства
    • Все сценарии
    • Анализ производительности и оптимизация Managed Service for MySQL
    • Выгрузка базы данных в Yandex Data Proc
    • Миграция базы данных из стороннего кластера MySQL
    • Миграция базы данных из Managed Service for MySQL в MySQL
    • Поставка данных в Yandex Managed Service for Apache Kafka® с помощью Yandex Data Transfer
    • Поставка данных в Yandex Managed Service for Apache Kafka® с помощью Debezium
    • Миграция базы данных в Yandex Managed Service for YDB с помощью Yandex Data Transfer
    • Миграция базы данных из Managed Service for MySQL в Yandex Object Storage
  • Управление доступом
  • Правила тарификации
    • Действующие правила
    • Архив
      • До 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. Управление резервными копиями

Управление резервными копиями в Managed Service for MySQL

Статья создана
Yandex Cloud
  • Получить список резервных копий
  • Получить информацию о резервной копии
  • Создать резервную копию
  • Восстановить кластер из резервной копии
  • Задать время начала резервного копирования
  • Задать приоритет использования хостов при создании резервных копий

Вы можете создавать резервные копии и восстанавливать кластеры из имеющихся резервных копий, в том числе на указанный момент времени. Подробнее см. в разделе Резервные копии в Managed Service for MySQL.

Также Managed Service for MySQL ежедневно создает автоматическую резервную копию. Для нее вы можете задать время начала резервного копирования.

Получить список резервных копий

Консоль управления
CLI
API

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

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

Чтобы получить список всех резервных копий в каталоге:

  1. Перейдите на страницу каталога и выберите сервис Managed Service for MySQL.
  2. На панели слева выберите  Резервные копии.

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

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

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

yc managed-mysql backup list

Результат:

+--------------------------+---------------------+----------------------+---------------------+
|            ID            |     CREATED AT      |  SOURCE CLUSTER ID   |     STARTED AT      |
+--------------------------+---------------------+----------------------+---------------------+
| c9qgo11pud7kb3cdomeg...  | 2020-08-10 12:00:00 | c9qgo11pud7kb3cdomeg | 2020-08-10 11:55:17 |
| ...                                                                                         |
+--------------------------+---------------------+----------------------+---------------------+

Чтобы получить список резервных копий кластера, воспользуйтесь методом API listBackups и передайте в запросе идентификатор кластера в параметре clusterId.

Чтобы получить список резервных копий всех кластеров Managed Service for MySQL в каталоге, воспользуйтесь методом API list и передайте идентификатор каталога в параметре folderId запроса.

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

Получить информацию о резервной копии

Консоль управления
CLI
API

Чтобы получить информацию о резервной копии существующего кластера:

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

Чтобы получить информацию о резервной копии удаленного ранее кластера:

  1. Перейдите на страницу каталога и выберите сервис Managed Service for MySQL.
  2. На панели слева выберите Резервные копии.

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

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

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

yc managed-mysql backup get <идентификатор резервной копии>

Идентификатор резервной копии можно получить со списком резервных копий.

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

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

Создать резервную копию

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

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

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

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

  1. Посмотрите описание команды CLI для создания резервной копии кластера MySQL:

    yc managed-mysql cluster backup --help
    
  2. Запросите создание резервной копии, указав идентификатор или имя кластера:

    yc managed-mysql cluster backup <идентификатор или имя кластера>
    

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

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

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

В кластерах из одного хоста резервная копия создается чтением данных с хоста-мастера, а в многохостовых кластерах — с одной из реплик. При этом можно задать приоритет использования хостов при создании резервных копий.

Восстановить кластер из резервной копии

Для нового кластера необходимо задать все параметры, обязательные при создании, кроме типа кластера.

Консоль управления
CLI
Terraform
API

Чтобы восстановить из резервной копии существующий кластер:

  1. Перейдите на страницу каталога и выберите сервис Managed Service for MySQL.

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

  3. Нажмите на значок для нужной резервной копии, затем нажмите Восстановить кластер.

  4. Задайте настройки нового кластера. В списке Каталог можно выбрать каталог для нового кластера.

  5. Чтобы восстановить состояние кластера на требуемый момент времени после создания этой резервной копии (Point-in-Time-Recovery), задайте нужное значение настройки Дата и время восстановления (UTC).

    Если оставить настройку без изменений, кластер будет восстановлен в состояние на момент завершения создания резервной копии.

  6. Нажмите кнопку Восстановить кластер.

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

  1. Перейдите на страницу каталога и выберите сервис Managed Service for MySQL.

  2. На панели слева выберите  Резервные копии.

  3. Найдите нужную резервную копию по времени создания и идентификатору кластера. В колонке Имя содержатся идентификаторы в формате <идентификатор кластера>:<идентификатор резервной копии>.

  4. Нажмите на значок для нужной резервной копии, затем нажмите Восстановить кластер.

  5. Задайте настройки нового кластера. В списке Каталог можно выбрать каталог для нового кластера.

  6. Чтобы восстановить состояние кластера на требуемый момент времени после создания этой резервной копии, задайте нужное значение настройки Дата и время восстановления (UTC). Значение можно ввести вручную или выбрать из выпадающего календаря.

    Если оставить настройку без изменений, кластер будет восстановлен в состояние на момент завершения создания резервной копии.

  7. Нажмите кнопку Восстановить кластер.

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

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

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

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

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

    yc managed-mysql cluster restore --help
    
  2. Получите список доступных резервных копий MySQL-кластеров:

    yc managed-mysql backup list
    

    Результат:

    +--------------------------+---------------------+----------------------+---------------------+
    |            ID            |     CREATED AT      |  SOURCE CLUSTER ID   |     STARTED AT      |
    +--------------------------+---------------------+----------------------+---------------------+
    | c9qgo11pud7kb3cdomeg...  | 2020-08-10 12:00:00 | c9qgo11pud7kb3cdomeg | 2020-08-10 11:55:17 |
    | ...                                                                                         |
    +--------------------------+---------------------+----------------------+---------------------+
    

    Время завершения создания резервной копии указано в столбце CREATED AT списка доступных резервных копий в формате yyyy-mm-dd hh:mm:ss (2020-08-10 12:00:00 в примере выше). Вы можете восстановить состояние кластера на любой момент времени, начиная от создания резервной копии.

  3. Запросите создание кластера из резервной копии:

    yc managed-mysql cluster restore \
       --backup-id=<идентификатор резервной копии> \
       --time=<момент времени, на который нужно восстановить состояние кластера MySQL> \
       --name=<имя кластера> \
       --environment=<окружение: PRESTABLE или PRODUCTION> \
       --network-name=<имя сети> \
       --host zone-id=<зона доступности>,`
             `subnet-name=<имя подсети>`
             `assign-public-ip=<доступ к хосту через публичный IP-адрес: true или false> \
       --resource-preset=<класс хоста> \
       --disk-size=<размер хранилища в гигабайтах> \
       --disk-type=<тип диска>
    

    Где:

    • --backup-id — идентификатор резервной копии.

    • --time — момент времени, на который нужно восстановить состояние кластера MySQL, в формате yyyy-mm-ddThh:mm:ssZ.

    • --name — имя кластера.

    • --environment — окружение:

      • PRESTABLE — для тестирования, в том числе самого сервиса MySQL. В Prestable-окружении раньше появляются новая функциональность, улучшения и исправления ошибок. При этом не все обновления обеспечивают обратную совместимость.
      • PRODUCTION — для стабильных версий ваших приложений.
    • --network-name — имя сети.

    • --host — параметры хоста:

      • zone-id — зона доступности.

      • subnet-name — имя подсети. Необходимо указывать, если в выбранной зоне доступности создано две или больше подсетей.

      • assign-public-ip — флаг, который указывается, если хосту требуется публичный IP-адрес.

    • --resource-preset — класс хоста.

    • --disk-size — размер хранилища в гигабайтах.

    • --disk-type — тип диска:

      • network-hdd;
      • network-ssd;
      • local-ssd;
      • network-ssd-nonreplicated.

Используйте Terraform для восстановления:

  • Существующего кластера из резервной копии.
  • Кластера, созданного и удаленного через Консоль управления, CLI или API.

Для восстановления потребуется ID резервной копии. Получите список доступных резервных копий MySQL-кластеров с помощью CLI:

yc managed-mysql backup list

Результат:

+--------------------------+---------------------+----------------------+---------------------+
|            ID            |     CREATED AT      |  SOURCE CLUSTER ID   |     STARTED AT      |
+--------------------------+---------------------+----------------------+---------------------+
| c9qgo11pud7kb3cdomeg...  | 2020-08-10 12:00:00 | c9qgo11pud7kb3cdomeg | 2020-08-10 11:55:17 |
| ...                                                                                         |
+--------------------------+---------------------+----------------------+---------------------+

Чтобы восстановить из резервной копии существующий кластер:

  1. Создайте конфигурационный файл Terraform для нового кластера.

    При этом не используйте ресурсы баз данных (yandex_mdb_mysql_database) и пользователей (yandex_mdb_mysql_user) — они будут восстановлены из резервной копии.

  2. Добавьте в этот конфигурационный файл блок restore:

    resource "yandex_mdb_mysql_cluster" "<имя кластера>" {
      ...
      restore {
        backup_id = "<имя нужной резервной копии>"
        time      = "<временная метка момента восстановления в формате yyyy-mm-ddThh:mm:ss>"
      }
    }
    

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

    Примечание

    Параметр time не является обязательным. Если его не указывать, кластер будет восстановлен на момент запуска процесса восстановления.

  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 минут
  }
}

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

  1. Создайте конфигурационный файл Terraform для нового кластера.

    При этом не используйте ресурсы баз данных (yandex_mdb_mysql_database) и пользователей (yandex_mdb_mysql_user) — они будут восстановлены из резервной копии.

  2. Добавьте в этот конфигурационный файл блок restore с именем резервной копии, из которой нужно восстановиться:

    resource "yandex_mdb_mysql_cluster" "<имя кластера>" {
      ...
      restore {
          backup_id = "<идентификатор резервной копии удаленного кластера>"
      }
    }
    
  3. Проверьте корректность настроек.

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

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

      terraform validate
      

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

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

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

      terraform plan
      

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

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

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

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

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

Terraform создаст новый кластер. Базы данных и пользователи будут развернуты из резервной копии.

Подробнее см. в документации провайдера 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 restore и передайте в запросе:

  • Идентификатор требуемой резервной копии в параметре backupId. Чтобы узнать идентификатор, получите список резервных копий в кластере.
  • Момент времени, на который должен быть восстановлен кластер, в параметре time.
  • Имя нового кластера, который будет содержать восстановленные из резервной копии данные, в параметре name. Имя кластера должно быть уникальным в рамках каталога.

Задать время начала резервного копирования

Консоль управления
CLI
Terraform
API

В консоли управления задать время начала резервного копирования можно только при изменении кластера.

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

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

Задать время начала резервного копирования в существующем кластере можно с помощью команды update:

yc managed-mysql cluster update <идентификатор или имя кластера> \
   --backup-window-start=<время начала резервного копирования, по UTC в формате `HH:MM:SS`>

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

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

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

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

    resource "yandex_mdb_mysql_cluster" "<имя кластера>" {
      ...
      backup_window_start {
        hours   = <Час начала резервного копирования (UTC)>
        minutes = <Минута начала резервного копирования (UTC)>
      }
    }
    
  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 минут
  }
}

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

  • Идентификатор кластера в параметре clusterId. Его можно получить со списком кластеров в каталоге.
  • Новое время начала резервного копирования в параметре configSpec.backupWindowStart.
  • Список изменяемых полей конфигурации кластера в параметре updateMask (в данном случае — configSpec.backupWindowStart).

Важно

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

Задать приоритет использования хостов при создании резервных копий

Минимальное значение приоритета использования хоста при создании резервных копий — 0, максимальное — 100, по умолчанию — 0. Источником резервного копирования выбирается хост-реплика с наибольшим приоритетом. Подробнее см. раздел Создание резервной копии.

Консоль управления
CLI
API

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

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

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

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

yc managed-mysql host update <имя хоста> \
   --cluster-name=<имя кластера> \
   --backup-priority=<приоритет хоста при резервном копировании: от 0 до 100>

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

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

  • Идентификатор кластера в параметре clusterId. Его можно получить со списком кластеров в каталоге.
  • Имя хоста в параметре updateHostSpecs.hostName. Его можно получить со списком хостов в кластере.
  • Новое значение приоритета хоста в параметре updateHostSpecs.backupPriority.
  • Список полей конфигурации кластера, подлежащих изменению (в данном случае — updateHostSpecs.hostName и updateHostSpecs.backupPriority), в параметре updateMask.

Важно

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

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

Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
В этой статье:
  • Получить список резервных копий
  • Получить информацию о резервной копии
  • Создать резервную копию
  • Восстановить кластер из резервной копии
  • Задать время начала резервного копирования
  • Задать приоритет использования хостов при создании резервных копий