Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
© 2022 ООО «Яндекс.Облако»
Yandex Managed Service for SQL Server™
  • Начало работы
  • Пошаговые инструкции
    • Все инструкции
    • Информация об имеющихся кластерах
    • Создание кластера
    • Подключение к базе данных
    • Остановка и запуск кластера
    • Изменение настроек кластера и базы данных
    • Управление хостами SQL Server
    • Управление базами данных
    • Управление пользователями
    • Управление пользовательскими сеансами
    • Назначение привилегий и ролей
    • Управление резервными копиями
    • Удаление кластера
    • Диагностика производительности
    • Обслуживание баз данных
    • Мониторинг состояния кластера и хостов
  • Практические руководства
    • Все руководства
    • Миграция базы данных в Managed Service for Microsoft SQL Server
  • Концепции
    • Взаимосвязь ресурсов сервиса
    • Классы хостов
    • Сеть в Managed Service for SQL Server
    • Квоты и лимиты
    • Типы хранилища
    • Резервные копии
    • Репликация
    • Техническое обслуживание
    • Настройки SQL Server
    • Доступ к компонентам SQL Server
  • Управление доступом
  • Правила тарификации
  • Справочник API
    • Аутентификация в API
    • gRPC (англ.)
      • Overview
      • BackupService
      • ClusterService
      • DatabaseService
      • ResourcePresetService
      • UserService
      • OperationService
    • REST (англ.)
      • Overview
      • Backup
        • Overview
        • get
        • list
      • Cluster
        • Overview
        • backup
        • create
        • delete
        • get
        • list
        • listBackups
        • listHosts
        • listLogs
        • listOperations
        • move
        • restore
        • start
        • startFailover
        • stop
        • update
      • Database
        • Overview
        • create
        • delete
        • exportBackup
        • get
        • importBackup
        • list
        • restore
      • ResourcePreset
        • Overview
        • get
        • list
      • User
        • Overview
        • create
        • delete
        • get
        • grantPermission
        • list
        • revokePermission
        • update
      • Operation
        • Overview
        • get
  • История изменений
  • Вопросы и ответы
    • Общие вопросы
  1. Пошаговые инструкции
  2. Управление резервными копиями

Управление резервными копиями

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

Вы можете создавать резервные копии и восстанавливать кластеры из имеющихся резервных копий.

Важно

Вы не можете с помощью команд SQL изменять модель восстановления для операций резервного копирования и восстановления.

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

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

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

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

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

yc managed-sqlserver backup list

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Технология Point-in-Time Recovery (PITR) позволяет восстановить состояние кластера или отдельной базы данных на любой момент времени в интервале от создания самой старой резервной копии до архивации самого свежего журнала транзакций (Transaction Log). Подробнее в разделе Резервные копии.

Например, если операция создания резервной копии завершилась 10.08.2020 в 12:00:00 UTC, текущая дата — 15.08.2020 19:00:00 UTC, а последний журнал транзакций был сохранен 15.08.2020 в 18:50:00 UTC, кластер или отдельная база данных могут быть восстановлены в любое свое состояние в промежутке времени с 10.08.2020 12:00:01 UTC до 15.08.2020 18:50:00 UTC включительно.

При восстановлении до состояния на текущий момент времени новый кластер или база данных будут отражать состояние:

  • существующего кластера или базы на момент восстановления;
  • удаленного кластера или базы на момент архивации последнего журнала транзакций.

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

Восстанавливая кластер из резервной копии, вы создаете новый кластер с данными из резервной копии. Если в каталоге не хватает ресурсов для создания такого кластера, восстановиться из резервной копии не получится.

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

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

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

  1. Перейдите на страницу каталога и выберите сервис Managed Service for SQL Server.
  2. Нажмите на имя нужного кластера и выберите вкладку Резервные копии.
  3. Нажмите значок для нужной резервной копии, затем нажмите Восстановить кластер.
  4. Задайте настройки нового кластера. В списке Каталог можно выбрать каталог для нового кластера.
  5. Нажмите кнопку Восстановить кластер.

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

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

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

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

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

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

    yc managed-sqlserver backup list
    
    +-------------------+---------------------+----------------------+---------------------+-----------+
    |        ID         |     CREATED AT      |  SOURCE CLUSTER ID   |     STARTED AT      | DATABASES |
    +-------------------+---------------------+----------------------+---------------------+-----------+
    | c9qk4hml9r9ng0... | 2022-01-13 13:59:57 | c9qk4hml9r9ng00hd0v3 | 2022-01-13 13:59:55 | [db1 db2] |
    | ...               |                     |                      |                     |           |
    +-------------------+---------------------+----------------------+---------------------+-----------+
    

    Время завершения создания резервной копии указано в столбце CREATED AT списка доступных резервных копий в формате yyyy-mm-dd hh:mm:ss (2022-01-13 13:59:57 в примере выше). Вы можете восстановить состояние кластера на любой момент времени, начиная с указанного.

  3. Запросите создание кластера из резервной копии (в примере приведены не все доступные параметры):

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

    Где:

    • --backup-id — идентификатор резервной копии.
    • --time — момент времени, на который нужно восстановить состояние кластера SQL Server, в формате yyyy-mm-ddThh:mm:ssZ.
    • --name — имя кластера.
    • --sqlserver-version — версия SQL Server.
    • --environment — окружение:
      • PRODUCTION — для стабильных версий ваших приложений.
      • PRESTABLE — для тестирования, в том числе самого сервиса SQL Server. В Prestable-окружении раньше появляются новая функциональность, улучшения и исправления ошибок. При этом не все обновления обеспечивают обратную совместимость.
    • --network-name — имя сети.
    • --host — параметры хоста:
      • zone-id — зона доступности.
      • subnet-id — идентификатор подсети. Необходимо указывать, если в выбранной зоне доступности создано 2 и больше подсетей.
      • assign-public-ip — флаг, который указывается, если хосту требуется публичный IP-адрес.
    • --resource-preset — класс хоста.
    • --disk-size — объем хранилища в гигабайтах.
    • --disk-type — тип хранилища:
      • network-hdd;
      • network-ssd;
      • local-ssd;
      • network-ssd-nonreplicated.

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

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

Восстановить базу данных из резервной копии

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

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

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

  1. Перейдите на страницу каталога и выберите сервис Managed Service for SQL Server.
  2. Нажмите на имя нужного кластера и выберите вкладку Базы данных.
  3. Нажмите значок для нужной базы данных, затем нажмите Восстановить.
  4. Задайте имя новой базы данных, выберите нужную резервную копию и время, на которое должна быть восстановлена база.
  5. Нажмите кнопку Восстановить.

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

  1. Перейдите на страницу каталога и выберите сервис Managed Service for SQL Server.
  2. Нажмите на имя нужного кластера и выберите вкладку Резервные копии.
  3. Найдите нужную резервную копию по времени создания и наличию в ней нужной базы данных. В колонке Базы данных перечислены базы, которые содержатся в каждой копии.
  4. Нажмите значок для нужной резервной копии, затем нажмите Восстановить.
  5. Задайте имя новой базы данных, выберите нужную исходную базу и время, на которое она должна быть восстановлена.
  6. Нажмите кнопку Восстановить.

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

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

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

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

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

    yc managed-sqlserver backup list
    
    +-------------------+---------------------+----------------------+---------------------+-----------+
    |        ID         |     CREATED AT      |  SOURCE CLUSTER ID   |     STARTED AT      | DATABASES |
    +-------------------+---------------------+----------------------+---------------------+-----------+
    | c9qk4hml9r9ng0... | 2022-01-13 13:59:57 | c9qk4hml9r9ng00hd0v3 | 2022-01-13 13:59:55 | [db1 db2] |
    | ...               |                     |                      |                     |           |
    +-------------------+---------------------+----------------------+---------------------+-----------+
    

    Время завершения создания резервной копии указано в столбце CREATED AT списка доступных резервных копий в формате yyyy-mm-dd hh:mm:ss (2022-01-13 13:59:57 в примере выше). Вы можете восстановить состояние базы данных на любой момент времени, начиная с указанного.

  3. Восстановите базу данных из резервной копии (в примере приведены не все доступные параметры):

    yc managed-sqlserver database restore <имя новой базы данных> \
       --cluster-name=<имя кластера> \
       --backup-id=<идентификатор резервной копии> \
       --from-database=<имя базы данных> \
       --time=<момент времени, на который нужно восстановить базу данных>
    

    Где:

    • --cluster-name — имя кластера.
      Имя кластера можно запросить со списком кластеров в каталоге.
    • --backup-id — идентификатор резервной копии.
    • --from-database — имя базы данных, резервная копия которой будет использована для восстановления.
    • --time — момент времени, на который нужно восстановить базу данных, в формате yyyy-mm-ddThh:mm:ssZ.

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

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

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

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

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

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

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

Чтобы задать время начала резервного копирования, передайте нужное значение в формате HH:MM:SS в аргументе --backup-window-start команды изменения кластера:

yc managed-sqlserver cluster update <идентификатор или имя кластера> \
    --backup-window-start=<время начала резервного копирования>

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

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

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

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

    resource "yandex_mdb_sqlserver_cluster" "<имя кластера>" {
      ...
      config {
        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.

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

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

Важно

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

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

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