Управление резервными копиями
Вы можете создавать резервные копии и восстанавливать кластеры из имеющихся резервных копий.
Важно
Вы не можете с помощью команд SQL изменять модель восстановления для операций резервного копирования и восстановления.
Получить список резервных копий
- Перейдите на страницу каталога и выберите сервис Managed Service for SQL Server.
- Нажмите на имя нужного кластера и выберите вкладку Резервные копии.
Если у вас еще нет интерфейса командной строки 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
запроса.
Чтобы узнать идентификатор кластера, получите список кластеров в каталоге.
Получить информацию о резервной копии
- Перейдите на страницу каталога и выберите сервис Managed Service for SQL Server.
- Нажмите на имя нужного кластера и выберите вкладку Резервные копии.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы получить данные о резервной копии кластера SQL Server, выполните команду:
yc managed-sqlserver backup get <идентификатор резервной копии>
Идентификатор резервной копии можно получить со списком резервных копий.
Воспользуйтесь методом API get и передайте идентификатор резервной копии в параметре backupId
запроса. Чтобы узнать идентификатор, получите список резервных копий.
Создать резервную копию
- Перейдите на страницу каталога и выберите сервис Managed Service for SQL Server.
- Нажмите на имя нужного кластера и выберите вкладку Резервные копии.
- Нажмите кнопку Создать резервную копию.
Managed Service for SQL Server запустит операцию создания резервной копии.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы создать резервную копию кластера:
-
Посмотрите описание команды CLI для создания резервной копии SQL Server:
yc managed-sqlserver cluster backup --help
-
Запросите создание резервной копии, указав идентификатор или имя кластера:
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 включительно.
При восстановлении до состояния на текущий момент времени новый кластер или база данных будут отражать состояние:
- существующего кластера или базы на момент восстановления;
- удаленного кластера или базы на момент архивации последнего журнала транзакций.
Восстановить кластер из резервной копии
Восстанавливая кластер из резервной копии, вы создаете новый кластер с данными из резервной копии. Если в каталоге не хватает ресурсов для создания такого кластера, восстановиться из резервной копии не получится.
Для нового кластера необходимо задать все обязательные при его создании параметры.
Чтобы восстановить из резервной копии существующий кластер:
- Перейдите на страницу каталога и выберите сервис Managed Service for SQL Server.
- Нажмите на имя нужного кластера и выберите вкладку Резервные копии.
- Нажмите значок для нужной резервной копии, затем нажмите Восстановить кластер.
- Задайте настройки нового кластера. В списке Каталог можно выбрать каталог для нового кластера.
- Нажмите кнопку Восстановить кластер.
Managed Service for SQL Server запустит операцию создания кластера из резервной копии.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы восстановить кластер из резервной копии:
-
Посмотрите описание команды CLI для восстановления кластера SQL Server:
yc managed-sqlserver cluster restore --help
-
Получите список доступных резервных копий кластеров 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
в примере выше). Вы можете восстановить состояние кластера на любой момент времени, начиная с указанного. -
Запросите создание кластера из резервной копии (в примере приведены не все доступные параметры):
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
. - Имя нового кластера, который будет содержать восстановленные из резервной копии данные. Имя кластера должно быть уникальным в рамках каталога.
Восстановить базу данных из резервной копии
Восстанавливая базу данных из резервной копии, вы создаете новую базу с данными из резервной копии в текущем кластере.
Чтобы восстановить из резервной копии существующую базу данных:
- Перейдите на страницу каталога и выберите сервис Managed Service for SQL Server.
- Нажмите на имя нужного кластера и выберите вкладку Базы данных.
- Нажмите значок для нужной базы данных, затем нажмите Восстановить.
- Задайте имя новой базы данных, выберите нужную резервную копию и время, на которое должна быть восстановлена база.
- Нажмите кнопку Восстановить.
Чтобы восстановить из резервной копии удаленную ранее базу данных:
- Перейдите на страницу каталога и выберите сервис Managed Service for SQL Server.
- Нажмите на имя нужного кластера и выберите вкладку Резервные копии.
- Найдите нужную резервную копию по времени создания и наличию в ней нужной базы данных. В колонке Базы данных перечислены базы, которые содержатся в каждой копии.
- Нажмите значок для нужной резервной копии, затем нажмите Восстановить.
- Задайте имя новой базы данных, выберите нужную исходную базу и время, на которое она должна быть восстановлена.
- Нажмите кнопку Восстановить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы восстановить базу данных из резервной копии:
-
Посмотрите описание команды CLI для восстановления базы данных SQL Server:
yc managed-sqlserver database restore --help
-
Получите список доступных резервных копий кластеров 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
в примере выше). Вы можете восстановить состояние базы данных на любой момент времени, начиная с указанного. -
Восстановите базу данных из резервной копии (в примере приведены не все доступные параметры):
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
. Имя базы данных должно быть уникальным в рамках кластера.
Задать время начала резервного копирования
В консоли управления задать время начала резервного копирования можно при создании или изменении кластера.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы задать время начала резервного копирования, передайте нужное значение в формате HH:MM:SS
в аргументе --backup-window-start
команды изменения кластера:
yc managed-sqlserver cluster update <идентификатор или имя кластера> \
--backup-window-start=<время начала резервного копирования>
Идентификатор и имя кластера можно запросить со списком кластеров в каталоге.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера SQL Server.
-
Добавьте к описанию кластера Managed Service for SQL Server блок
backup_window_start
в секцииconfig
:resource "yandex_mdb_sqlserver_cluster" "<имя кластера>" { ... config { backup_window_start { hours = <Час начала резервного копирования (UTC)> minutes = <Минута начала резервного копирования (UTC)> } ... } }
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее см. в документации провайдера Terraform.
Воспользуйтесь методом API update и передайте в запросе:
- Идентификатор кластера в параметре
clusterId
. Чтобы узнать идентификатор, получите список кластеров в каталоге. - Новое время начала резервного копирования в параметре
configSpec.backupWindowStart
. - Список полей конфигурации кластера, подлежащих изменению (в данном случае —
configSpec.backupWindowStart
), в параметреupdateMask
.
Важно
Этот метод API сбросит все настройки кластера, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре updateMask
(одной строкой через запятую).