Восстановление до точки во времени
Восстановление до точки во времени позволяет создать базу данных, которая является копией другой базы данных по состоянию на некоторый момент в прошлом. В этой статье описывается, как восстановить базу данных на определенный момент времени в Управляемый экземпляр SQL включенной Azure Arc.
Восстановление до точки во времени позволяет восстановить базу данных:
- из существующей базы данных;
- Создание новой базы данных в той же Управляемый экземпляр SQL, включенной Azure Arc
Вы можете восстановить базу данных до точки во времени, входящей в заранее настроенный период хранения. Вы можете проверить параметры хранения для Управляемый экземпляр SQL, включенной Azure Arc следующим образом:
Для режима прямого подключения:
az sql mi-arc show --name <SQL instance name> --resource-group <resource-group>
#Example
az sql mi-arc show --name sqlmi --resource-group myresourcegroup
Для режима непрямого подключения:
az sql mi-arc show --name <SQL instance name> --k8s-namespace <SQL MI namespace> --use-k8s
#Example
az sql mi-arc show --name sqlmi --k8s-namespace arc --use-k8s
В настоящее время восстановление до точки во времени позволяет восстановить базу данных:
- из существующей базы данных в экземпляре;
- в новую базу данных в том же экземпляре.
Автоматическое резервное копирование
Управляемый экземпляр SQL в Azure Arc включена встроенная функция автоматического резервного копирования. При создании или восстановлении новой базы данных Управляемый экземпляр SQL, включенной Azure Arc, инициирует полную резервную копию немедленно и планирует разностные резервные копии журналов транзакций автоматически. Управляемый экземпляр SQL сохраняет эти резервные копии в классе хранения, который вы указали при его развертывании.
Восстановление до точки времени позволяет восстановить базу данных в состоянии на конкретный момент времени в пределах периода хранения. Чтобы восстановить базу данных до точки во времени, службы данных с поддержкой Azure Arc применяют файлы резервной копии в определенном порядке. Например:
- Полное резервное копирование
- Разностное резервное копирование
- Одна или несколько резервных копий журналов транзакций
В настоящее время полные резервные копии создаются раз в неделю, разностные резервные копии создаются каждые 12 часов, а резервные копии журналов транзакций — каждые 5 минут.
Срок хранения
Срок хранения по умолчанию для новой Управляемый экземпляр SQL, включенной Azure Arc, составляет семь дней и может быть скорректирован со значениями 0 или 1–35 дней. Срок хранения можно задать во время развертывания управляемого экземпляра SQL, указав для него свойство --retention-days
. Файлы резервной копии старше настроенного периода хранения автоматически удаляются.
Создание базы данных с помощью восстановления до точки во времени в интерфейсе командной строки az
az sql midb-arc restore --managed-instance <SQL managed instance> --name <source DB name> --dest-name <Name for new db> --k8s-namespace <namespace of managed instance> --time "YYYY-MM-DDTHH:MM:SSZ" --use-k8s
#Example
az sql midb-arc restore --managed-instance sqlmi1 --name Testdb1 --dest-name mynewdb --k8s-namespace arc --time "2021-10-29T01:42:14.00Z" --use-k8s
Вы также можете использовать параметр --dry-run
для проверки операции восстановления без фактического восстановления базы данных.
az sql midb-arc restore --managed-instance <SQL managed instance> --name <source DB name> --dest-name <Name for new db> --k8s-namespace <namespace of managed instance> --time "YYYY-MM-DDTHH:MM:SSZ" --use-k8s --dry-run
#Example
az sql midb-arc restore --managed-instance sqlmi1 --name Testdb1 --dest-name mynewdb --k8s-namespace arc --time "2021-10-29T01:42:14.00Z" --use-k8s --dry-run
Создание базы данных с помощью восстановления до точки во времени в kubectl
Чтобы выполнить восстановление до точки времени с помощью собственных средств Kubernetes, примените
kubectl
. Создайте YAML-файл со спецификацией задачи. Например:apiVersion: tasks.sql.arcdata.microsoft.com/v1 kind: SqlManagedInstanceRestoreTask metadata: name: myrestoretask20220304 namespace: test spec: source: name: miarc1 database: testdb restorePoint: "2021-10-12T18:35:33Z" destination: name: miarc1 database: testdb-pitr dryRun: false
Измените свойства следующим образом.
name:
— уникальная строка для каждого настраиваемого ресурса. Требуется для Kubernetes.namespace:
Пространство имен Kubernetes, в котором находится экземпляр.source: ... name:
— имя исходного экземпляра.source: ... database:
— имя базы данных-источника, для которой будет выполняться восстановление.restorePoint:
— точка во времени в формате UTC для операции восстановления.destination: ... name:
— имя целевого управляемого экземпляра SQL с поддержкой Azure Arc. В настоящее время восстановление до точки во времени поддерживается только в управляемом экземпляре SQL с поддержкой Azure Arc. Это должен быть тот же управляемый экземпляр, в котором находится источник.destination: ... database:
— имя новой базы данных, в которую будет выполнено восстановление.
Создайте задачу, которая начнет восстановление до точки во времени. В следующем примере запускается задача, определенная в
myrestoretask20220304.yaml
.kubectl apply -f myrestoretask20220304.yaml
Проверьте состояние задачи восстановления следующим образом:
kubectl get sqlmirestoretask -n <namespace>
Состояние задачи восстановления обновляется каждые 10 секунд в зависимости от хода выполнения PITR. Состояние изменяется в следующем порядке: Waiting
, Restoring
, Completed
и Failed
.
Создание базы данных с помощью восстановления до точки во времени в Azure Data Studio
Вы также можете восстановить базу данных до точки во времени в интерфейсе Azure Data Studio, выполнив следующие действия.
- Запуск Azure Data Studio
- Убедитесь, что у вас есть необходимые расширения Arc, которые перечислены в статье об установке клиентских средств.
- Подключение к контроллеру данных Azure Arc
- Разверните узел контроллера данных, щелкните экземпляр правой кнопкой мыши и выберите пункт "Управление". Azure Data Studio запустит панель мониторинга управляемого экземпляра SQL.
- Щелкните на этой панели мониторинга вкладку Резервные копии
- Вы увидите список баз данных, размещенных в этом управляемом экземпляре SQL и доступные для них периоды восстановления, а также значок Восстановления для запуска процесса.
- Щелкните значок базы данных, из которой выполняется восстановление. Azure Data Studio откроет для нее колонку с правой стороны
- Укажите в этой колонке обязательные входные данные и щелкните Восстановить.
Мониторинг прогресса
При запуске восстановления в кластере Kubernetes создается задача, которая выполняет фактические операции восстановления на основе полных, разностных резервных копий и резервных копий журналов. Ход выполнения этого действия можно отслеживать на странице сведений о кластере Kubernetes, как показано ниже.
kubectl get sqlmirestoretask -n <namespace>
#Example
kubectl get sqlmirestoretask -n arc
Чтобы получить дополнительные сведения о задаче, выполните для нее операцию kubectl describe
. Например:
kubectl describe sqlmirestoretask <nameoftask> -n <namespace>
Настройка срока хранения
Период хранения для Управляемый экземпляр SQL, включенный Azure Arc, можно перенастроить из исходного параметра следующим образом:
Предупреждение
Уменьшение текущего периода хранения приведет к потере возможности восстановления до точек во времени, предшествующих новому периоду хранения. Резервные копии, которые больше не нужны для предоставления PITR в течение нового периода хранения, удаляются. Если вы увеличиваете текущий период хранения, вы не сразу получаете возможность восстановления до более ранних моментов времени в рамках нового периода хранения. Эта возможность появляется по мере того, как система начинает хранить резервные копии дольше.
Его --retention-period
можно изменить для Управляемый экземпляр SQL-Azure Arc следующим образом. Следующая команда применяется к обоим direct
и indirect
подключенным режимам.
az sql mi-arc update --name <SQLMI name> --k8s-namespace <namespace> --use-k8s --retention-days <retentiondays>
Например:
az sql mi-arc update --name sqlmi --k8s-namespace arc --use-k8s --retention-days 10
Отключение автоматического резервного копирования
Вы можете отключить встроенные автоматические резервные копии для определенного экземпляра Управляемый экземпляр SQL, включенного Azure Arc, установив --retention-days
для свойства значение 0, как показано ниже. Следующая команда применяется как к режимам, так и indirect
к direct
режимам.
Предупреждение
Если вы отключите автоматические резервные копии для Управляемый экземпляр SQL, включенной Azure Arc, все настроенные автоматические резервные копии будут удалены, и вы потеряете возможность восстановления на определенный момент времени. Вы всегда можете изменить свойство retention-days
, чтобы снова запустить автоматическое резервное копирование.
az sql mi-arc update --name <SQLMI name> --k8s-namespace <namespace> --use-k8s --retention-days 0
Например:
az sql mi-arc update --name sqlmi --k8s-namespace arc --use-k8s --retention-days 0
Мониторинг резервных копий
Резервные копии хранятся в папке /var/opt/mssql/backups/archived/<dbname>/<datetime>
, где <dbname>
— это имя базы данных, а <datetime>
— метка времени в формате UTC для каждого запуска полной резервной копии. При каждом запуске полной резервной копии создается новая папка с полной резервной копией и всеми последующими разностными резервными копиями и резервными копиями журналов транзакций в этой папке. Самая последняя полная резервная копия, а также ее последующие разностные резервные копии и резервные копии журналов транзакций хранятся в папке /var/opt/mssql/backups/current/<dbname><datetime>
.
Ограничения
Восстановление на определенный момент времени для Управляемый экземпляр SQL, включенное Azure Arc, имеет следующие ограничения:
- Восстановление на определенный момент времени — это компонент уровня базы данных, а не компонент уровня экземпляра. Невозможно восстановить весь экземпляр с помощью восстановления точки во времени.
- Вы можете восстановить только те же Управляемый экземпляр SQL, которые включены в Azure Arc, из которой была создана резервная копия.
Связанный контент
Дополнительные сведения о функциях и возможностях Управляемый экземпляр SQL с поддержкой Azure Arc