Executar uma Restauração pontual
Use a restauração pontual para criar um banco de dados como cópia de outro banco de dados em algum momento no passado, que está dentro do período de retenção. Este artigo descreve como fazer uma restauração pontual de um banco de dados em uma Instância Gerenciada de SQL habilitada pelo Azure Arc.
A restauração pontual pode restaurar um banco de dados:
- De um banco de dados existente
- Para um novo banco de dados na mesma instância gerenciada de SQL habilitada pelo Azure Arc
Você pode fazer a restauração pontual de um banco de dados em uma configuração de retenção pré-configurada. Você pode verificar a configuração de retenção para uma Instância Gerenciada de SQL habilitada pelo Azure Arc da seguinte forma:
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
No momento, a restauração pontual pode restaurar um banco de dados:
- De um banco de dados em uma instância
- Para um novo banco de dados na mesma instância
Backups automáticos
A Instância Gerenciada de SQL habilitada pelo Azure Arc tem o recurso de backups automáticos integrado habilitado. Sempre que você cria ou restaura um novo banco de dados, a Instância Gerenciada de 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 do SQL armazena esses backups na classe de armazenamento especificada durante a implantação.
A restauração pontual permite que um banco de dados seja restaurado para um ponto específico no tempo, dentro do período de retenção. Para restaurar um banco de dados para um ponto específico no tempo, os serviços de dados habilitados para Azure Arc aplicam os arquivos de backup em uma ordem específica. Por exemplo:
- Backup completo
- Backup diferencial
- Um ou mais backups de log de transações
Atualmente, backups completos são feitos uma vez por semana, backups diferenciais são feitos a cada 12 horas e backups do 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 de 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 do SQL especificando a propriedade --retention-days
. Arquivos de backup mais antigos do que o período de retenção configurado são excluídos automaticamente.
Criar um banco de dados a partir de um ponto no tempo usando a CLI do Azure
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 opção --dry-run
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 ponto no tempo usando kubectl
Para executar uma restauração pontual com ferramentas nativas do Kubernetes, você pode usar
kubectl
. 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
Edite as propriedades da seguinte maneira:
name:
Cadeia de caracteres exclusiva para cada CR (recurso personalizado). Exigido pelo Kubernetes.- Namespace
namespace:
do Kubernetes onde está a instância. source: ... name:
Nome da instância de origem.source: ... database:
Nome do banco de dados de origem a partir do qual a restauração seria aplicada.restorePoint:
Ponto no tempo para a operação de restauração na data e hora UTC.destination: ... name:
Nome da Instância Gerenciada de SQL habilitada para Azure Arc. Atualmente, só há suporte para a restauração pontual para Instância gerenciada de SQL do Arc. Ela deve ser a mesma da instância gerenciada de SQL de origem.destination: ... database:
Nome do novo banco de dados ao qual a restauração será aplicada.
Crie uma tarefa para iniciar a restauração pontual. O exemplo a seguir inicia a tarefa definida em
myrestoretask20220304.yaml
.kubectl apply -f myrestoretask20220304.yaml
Verifique o status da tarefa de restauração da seguinte forma:
kubectl get sqlmirestoretask -n <namespace>
O status da tarefa de restauração será atualizado a cada 10 segundos com base no progresso da PITR. O status progride de Waiting
para Restoring
, Completed
e Failed
.
Criar um banco de dados a partir de um ponto no tempo usando o Azure Data Studio
Você também pode restaurar um banco de dados para um ponto no tempo Azure Data Studio da seguinte forma:
- Inicie o Azure Data Studio
- Verifique se você tem as extensões do Arc necessárias, conforme descrito em Ferramentas.
- Conectar-se ao controlador de dados do Azure Arc
- Expanda o nó do controlador de dados, clique com o botão direito do mouse na instância e selecione Gerenciar. Azure Data Studio inicia o painel SQL instância gerenciada.
- Clique na guia Backups no painel
- Você deve ver uma lista de bancos de dados de instância gerenciada do SQL e suas janelas de tempo de restauração mais antigas e mais recentes e um ícone para iniciar a Restauração
- Clique no ícone do banco de dados do que você deseja restaurar. O Azure Data Studio inicia uma folha no lado direito
- Forneça a entrada necessária na folha e clique em Restaurar
Monitorar o progresso
Quando uma restauração é iniciada, uma tarefa é criada no cluster kubernetes que executa as operações de restauração reais de backups completos, diferenciais e de log. O progresso dessa atividade pode ser monitorado do cluster kubernetes da seguinte forma:
kubectl get sqlmirestoretask -n <namespace>
#Example
kubectl get sqlmirestoretask -n arc
Você pode obter mais detalhes da tarefa executando kubectl describe
na 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 com base na configuração original da seguinte forma:
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. Os backups que não são mais necessários para fornecer PITR no novo período de retenção são excluídos. Se você aumentar o período de retenção atual, não obterá imediatamente a capacidade de restaurar para os pontos mais antigos no novo período de retenção. Você pode obter essa capacidade ao longo do tempo, à medida que o sistema começa a reter backups por mais tempo.
O --retention-period
pode ser alterado para uma Instância Gerenciada de SQL-Azure Arc da seguinte maneira. O comando abaixo se aplica aos modos conectados direct
e indirect
.
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
Desabilitar 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 propriedade --retention-days
como 0, conforme a seguir. O comando abaixo se aplica aos modos direct
e indirect
.
Aviso
Se você desabilitar backups automáticos para uma instância gerenciada do 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 pontual. Você pode alterar a propriedade retention-days
para reacionar backups 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 na pasta /var/opt/mssql/backups/archived/<dbname>/<datetime>
, em que <dbname>
é o nome do banco de dados e <datetime>
seriam um carimbo de data/hora no formato UTC para o início de cada backup completo. Sempre que um backup completo é iniciado, é criada uma pasta com o back completo e todos os backups de log de transações e diferenciais subsequentes dentro dessa pasta. O backup completo mais atual e seus backups diferenciais e de log de transações subsequentes são armazenados na pasta /var/opt/mssql/backups/current/<dbname><datetime>
.
Limitações
A restauração pontual para uma Instância Gerenciada de SQL habilitada pelo Azure Arc tem as seguintes limitações:
- A restauração pontual é um recurso de nível de banco de dados, não um recurso de nível de instância. Não é possível restaurar toda a instância com a restauração pontual.
- Você só pode restaurar para a mesma instância gerenciada de SQL habilitada pelo Azure Arc da qual o backup foi tomado.
Conteúdo relacionado
Comece criando um Controlador de Dados
Por exemplo, Criar uma Instância Gerenciada de SQL habilitada pelo Azure Arc