Поделиться через


Восстановление до точки во времени

Восстановление до точки во времени позволяет создать базу данных, которая является копией другой базы данных по состоянию на некоторый момент в прошлом. В этой статье описывается, как восстановить базу данных на определенный момент времени в Управляемый экземпляр 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 применяют файлы резервной копии в определенном порядке. Например:

  1. Полное резервное копирование
  2. Разностное резервное копирование
  3. Одна или несколько резервных копий журналов транзакций

Восстановление на определенный момент времени

В настоящее время полные резервные копии создаются раз в неделю, разностные резервные копии создаются каждые 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

  1. Чтобы выполнить восстановление до точки времени с помощью собственных средств 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  
    
  2. Измените свойства следующим образом.

    1. name: — уникальная строка для каждого настраиваемого ресурса. Требуется для Kubernetes.
    2. namespace: Пространство имен Kubernetes, в котором находится экземпляр.
    3. source: ... name: — имя исходного экземпляра.
    4. source: ... database: — имя базы данных-источника, для которой будет выполняться восстановление.
    5. restorePoint: — точка во времени в формате UTC для операции восстановления.
    6. destination: ... name: — имя целевого управляемого экземпляра SQL с поддержкой Azure Arc. В настоящее время восстановление до точки во времени поддерживается только в управляемом экземпляре SQL с поддержкой Azure Arc. Это должен быть тот же управляемый экземпляр, в котором находится источник.
    7. destination: ... database: — имя новой базы данных, в которую будет выполнено восстановление.
  3. Создайте задачу, которая начнет восстановление до точки во времени. В следующем примере запускается задача, определенная в myrestoretask20220304.yaml.

    kubectl apply -f myrestoretask20220304.yaml
    
  4. Проверьте состояние задачи восстановления следующим образом:

    kubectl get sqlmirestoretask -n <namespace>
    

Состояние задачи восстановления обновляется каждые 10 секунд в зависимости от хода выполнения PITR. Состояние изменяется в следующем порядке: Waiting, Restoring, Completed и Failed.

Создание базы данных с помощью восстановления до точки во времени в Azure Data Studio

Вы также можете восстановить базу данных до точки во времени в интерфейсе Azure Data Studio, выполнив следующие действия.

  1. Запуск Azure Data Studio
  2. Убедитесь, что у вас есть необходимые расширения Arc, которые перечислены в статье об установке клиентских средств.
  3. Подключение к контроллеру данных Azure Arc
  4. Разверните узел контроллера данных, щелкните экземпляр правой кнопкой мыши и выберите пункт "Управление". Azure Data Studio запустит панель мониторинга управляемого экземпляра SQL.
  5. Щелкните на этой панели мониторинга вкладку Резервные копии
  6. Вы увидите список баз данных, размещенных в этом управляемом экземпляре SQL и доступные для них периоды восстановления, а также значок Восстановления для запуска процесса.
  7. Щелкните значок базы данных, из которой выполняется восстановление. Azure Data Studio откроет для нее колонку с правой стороны
  8. Укажите в этой колонке обязательные входные данные и щелкните Восстановить.

Мониторинг прогресса

При запуске восстановления в кластере 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

Начните работу, создав контроллер данных.

Создание Управляемый экземпляр SQL с поддержкой Azure Arc