Share via


Executar uma restauração point-in-time

Use a restauração point-in-time (PITR) para criar um banco de dados como uma cópia de outro banco de dados de algum tempo no passado que esteja dentro do período de retenção. Este artigo descreve como fazer uma restauração point-in-time de um banco de dados na Instância Gerenciada SQL habilitada pelo Azure Arc.

O restauro para um ponto anterior no tempo pode restaurar uma base de dados:

  • A partir de uma base de dados existente
  • Para um novo banco de dados na mesma Instância Gerenciada SQL habilitada pelo Azure Arc

Você pode restaurar um banco de dados para um point-in-time dentro de uma configuração de retenção pré-configurada. Você pode verificar a configuração de retenção para uma Instância Gerenciada SQL habilitada pelo Azure Arc da seguinte maneira:

Para o modo de conexão direta :

az sql mi-arc show --name <SQL instance name> --resource-group <resource-group>
#Example
az sql mi-arc show --name sqlmi --resource-group myresourcegroup

Para o modo de conexão indireta :

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

Atualmente, a restauração point-in-time pode restaurar um banco de dados:

  • De um banco de dados existente em uma instância
  • Para um novo banco de dados na mesma instância

Cópias de Segurança Automáticas

A Instância Gerenciada SQL habilitada pelo Azure Arc tem o recurso de backups automáticos interno habilitado. Sempre que você cria ou restaura um novo banco de dados, a Instância Gerenciada SQL habilitada pelo Azure Arc inicia um backup completo imediatamente e agenda backups diferenciais e de log de transações automaticamente. A instância gerenciada SQL armazena esses backups na classe de armazenamento especificada durante a implantação.

A restauração point-in-time permite que um banco de dados seja restaurado para um point-in-time específico, dentro do período de retenção. Para restaurar um banco de dados para um point-in-time específico, os serviços de dados habilitados para ArcGIS do Azure aplicam os arquivos de backup em uma ordem específica. Por exemplo:

  1. Cópia de segurança completa
  2. Cópia de segurança diferencial
  3. Um ou mais backups de log de transações

Point-in-time restore

Atualmente, backups completos são feitos uma vez por semana, backups diferenciais são feitos a cada 12 horas e backups de log de transações a cada 5 minutos.

Período de Retenção

O período de retenção padrão para uma nova Instância Gerenciada SQL habilitada pelo Azure Arc é de sete dias e pode ser ajustado com valores de 0 ou de 1 a 35 dias. O período de retenção pode ser definido durante a implantação da instância gerenciada SQL especificando a --retention-days propriedade. Os arquivos de backup anteriores ao período de retenção configurado são excluídos automaticamente.

Criar um banco de dados a partir de um point-in-time usando az CLI

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

Você também pode usar a --dry-run opção para validar sua operação de restauração sem realmente restaurar o banco de dados.

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

Criar um banco de dados a partir de um point-in-time usando kubectl

  1. Para executar uma restauração point-in-time com ferramentas nativas do Kubernetes, você pode usar kubectlo . Crie um arquivo yaml de especificação de tarefa. Por exemplo:

    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. Edite as propriedades da seguinte maneira:

    1. name: Cadeia de caracteres exclusiva para cada recurso personalizado (CR). Exigido pelo Kubernetes.
    2. namespace: Kubernetes namespace onde instância é.
    3. source: ... name: Nome da instância de origem.
    4. source: ... database: Nome do banco de dados de origem a partir do qual a restauração seria aplicada.
    5. restorePoint: Point-in-time para a operação de restauração em UTC datetime.
    6. destination: ... name: Nome da instância gerenciada SQL habilitada para Arc de destino. Atualmente, a restauração point-in-time só é suportada dentro da instância gerenciada do Arc SQL. Isso deve ser igual à instância gerenciada pelo SQL de origem.
    7. destination: ... database: Nome do novo banco de dados ao qual a restauração seria aplicada.
  3. Crie uma tarefa para iniciar a restauração point-in-time. O exemplo a seguir inicia a tarefa definida em myrestoretask20220304.yaml.

    kubectl apply -f myrestoretask20220304.yaml
    
  4. Verifique o status da tarefa de restauração da seguinte maneira:

    kubectl get sqlmirestoretask -n <namespace>
    

O status da tarefa de restauração será atualizado a cada 10 segundos com base no progresso do PITR. O status progride de Waiting para CompletedRestoring ou Failed.

Criar um banco de dados a partir de um point-in-time usando o Azure Data Studio

Você também pode restaurar um banco de dados para um point-in-time do Azure Data Studio da seguinte maneira:

  1. Iniciar o Azure Data studio
  2. Certifique-se de ter as extensões Arc necessárias, conforme descrito em Ferramentas.
  3. Conectar-se ao controlador de dados do Azure Arc
  4. Expanda o nó do controlador de dados, clique com o botão direito do mouse na instância e selecione Gerenciar. O Azure Data Studio inicia o painel de instância gerenciada do SQL.
  5. Clique na guia Backups no painel
  6. Você deve ver uma lista de bancos de dados na instância gerenciada SQL e suas janelas de tempo de restauração mais antiga e mais recente, além de um ícone para iniciar a restauração
  7. Clique no ícone da base de dados a partir da qual pretende restaurar. O Azure Data Studio inicia uma lâmina para o lado direito
  8. Forneça a entrada necessária na lâmina e clique em Restaurar

Monitorizar progresso

Quando uma restauração é iniciada, uma tarefa é criada no cluster do Kubernetes que executa as operações reais de restauração de backups completos, diferenciais e de log. O progresso dessa atividade pode ser monitorado a partir do cluster Kubernetes da seguinte maneira:

kubectl get sqlmirestoretask -n <namespace>
#Example
kubectl get sqlmirestoretask -n arc

Você pode obter mais detalhes da tarefa executando kubectl describe a tarefa. Por exemplo:

kubectl describe sqlmirestoretask <nameoftask> -n <namespace>

Configurar período de retenção

O período de retenção para uma instância gerenciada do SQL habilitada pelo Azure Arc pode ser reconfigurado a partir de sua configuração original da seguinte maneira:

Aviso

Se você reduzir o período de retenção atual, perderá a capacidade de restaurar para pontos no tempo mais antigos do que o novo período de retenção. As cópias de segurança que já não são necessárias para fornecer o PITR no novo período de retenção são eliminadas. Se você aumentar o período de retenção atual, não ganhará imediatamente a capacidade de restaurar para pontos mais antigos no tempo dentro do novo período de retenção. Você ganha essa capacidade com o tempo, à medida que o sistema começa a reter backups por mais tempo.

O --retention-period pode ser alterado para uma Instância Gerenciada SQL-Azure Arc da seguinte maneira. O comando abaixo aplica-se aos direct modos conectado e indirect a ambos.

az sql mi-arc update  --name <SQLMI name> --k8s-namespace <namespace>  --use-k8s --retention-days <retentiondays>

Por exemplo:

az sql mi-arc update  --name sqlmi --k8s-namespace arc  --use-k8s --retention-days 10

Desativar backups automáticos

Você pode desabilitar os backups automatizados internos para uma instância específica da Instância Gerenciada do SQL habilitada pelo Azure Arc definindo a --retention-days propriedade como 0, da seguinte maneira. O comando abaixo aplica-se a ambos os directindirect modos.

Aviso

Se você desabilitar os Backups Automáticos para uma Instância Gerenciada SQL habilitada pelo Azure Arc, todos os Backups Automáticos configurados serão excluídos e você perderá a capacidade de fazer uma restauração point-in-time. Você pode alterar a propriedade para reiniciar backups retention-days automáticos, se necessário.

az sql mi-arc update  --name <SQLMI name> --k8s-namespace <namespace>  --use-k8s --retention-days 0

Por exemplo:

az sql mi-arc update  --name sqlmi --k8s-namespace arc  --use-k8s --retention-days 0

Monitorar backups

Os backups são armazenados em /var/opt/mssql/backups/archived/<dbname>/<datetime> pasta, onde <dbname> é o nome do banco de dados e <datetime> seria um carimbo de data/hora no formato UTC, para o início de cada backup completo. Cada vez que um backup completo é iniciado, uma nova pasta é criada com a parte de trás completa e todos os backups subsequentes de diferencial e log de transações dentro dessa pasta. O backup completo mais atual e seus backups diferenciais e de log de transações subsequentes são armazenados em /var/opt/mssql/backups/current/<dbname><datetime> pasta.

Limitações

A restauração point-in-time para a Instância Gerenciada SQL habilitada pelo Azure Arc tem as seguintes limitações:

  • A restauração point-in-time é um recurso no nível do banco de dados, não um recurso no nível da instância. Não é possível restaurar a instância inteira com a restauração point-in-time.
  • Você só pode restaurar para a mesma Instância Gerenciada SQL habilitada pelo Azure Arc de onde o backup foi feito.

Saiba mais sobre Recursos e Capacidades da Instância Gerenciada SQL habilitada pelo Azure Arc

Comece criando um Controlador de Dados

Criar uma Instância Gerenciada SQL habilitada pelo Azure Arc