Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2019 (15.x) e versões posteriores
Este artigo ensina a habilitar e desabilitar a ADR (Recuperação Acelerada de Banco de Dados) com o T-SQL (Transact-SQL) no SQL Server 2019 (15.x) e versões posteriores, bem como alterar o grupo de arquivos do PVS (repositório de versão persistente) usado pela ADR.
Observação
No Banco de Dados SQL do Azure, na Instância Gerenciada de SQL do Azure e no Banco de Dados SQL no Microsoft Fabric, a ADR (Recuperação Acelerada de Banco de Dados) está sempre habilitada. Se você observar problemas, como alto uso de armazenamento por PVS ou limpeza lenta da ADR, consulte Monitoramento e solução de problemas de recuperação acelerada de banco de dados ou entre em contato com o suporte do Azure .
Quem deve considerar usar a recuperação de banco de dados acelerada
Muitos clientes acham a ADR (recuperação acelerada de banco de dados) uma tecnologia valiosa para melhorar o tempo de recuperação do banco de dados e evitar reversões longas.
Se suas cargas de trabalho de banco de dados encontrarem frequentemente os seguintes cenários, você poderá se beneficiar da ADR:
- Transações de execução prolongada que não podem ser evitadas. Por exemplo, a ADR ajuda em casos em que transações de longa duração correm risco de reversão.
- Transações ativas que fazem o log de transações crescer significativamente.
- Recuperação de banco de dados de execução prolongada que afeta a disponibilidade do banco de dados (por exemplo, após uma reinicialização inesperada do SQL Server ou reversão manual de transações).
Se o aplicativo usar um alto volume de modificações de linha única em transações individuais, sua carga de trabalho poderá não ser ideal para a ADR. Considere agrupar modificações em instruções de múltiplas linhas sempre que possível e evite um alto volume de transações DML pequenas.
Habilitar a ADR
A ADR está desativada por padrão e disponível a partir do SQL Server 2019 (15.x).
Use o seguinte comando T-SQL (Transact-SQL) para habilitar a ADR:
ALTER DATABASE [<db_name>] SET ACCELERATED_DATABASE_RECOVERY = ON;
Um bloqueio de banco de dados exclusivo é necessário para habilitar ou desabilitar a ADR. Isso significa que o comando ALTER DATABASE
é bloqueado até que todas as sessões ativas tenham sido encerradas e que todas as novas sessões aguardem na fila do comando ALTER DATABASE
. Se for importante concluir a operação e remover o bloqueio, use a cláusula de terminação, WITH ROLLBACK [IMMEDIATE | AFTER {number} SECONDS | NO_WAIT]
, para anular todas as sessões ativas no banco de dados. Para obter mais informações, consulte Opções ALTER DATABASE SET.
Se estiver habilitando ou desabilitando a ADR em tempdb
, um bloqueio de banco de dados exclusivo não será necessário e a cláusula de terminação não deverá ser especificada. No entanto, uma reinicialização do Mecanismo de Banco de Dados deve ocorrer para que a alteração entre em vigor.
Desabilitar a ADR
Use o seguinte comando T-SQL para desabilitar a ADR:
ALTER DATABASE [<db_name>] SET ACCELERATED_DATABASE_RECOVERY = OFF;
GO
Mesmo depois que a ADR estiver desabilitada, pode haver versões armazenadas em PVS que o sistema ainda precisa para a reversão lógica até que todas as transações ativas sejam concluídas. Se desabilitar a ADR em tempdb
, será necessária uma reinicialização do Mecanismo de Banco de Dados para que a alteração entre em vigor.
Alterar o grupo de arquivos do PVS
Por padrão, os dados do PVS (repositório de versão persistente) estão no grupo de arquivos PRIMARY
. Você pode mover o PVS para um grupo de arquivos diferente, se necessário. Por exemplo, ele pode exigir mais espaço ou um armazenamento mais rápido.
Para alterar o local do PVS para um grupo de arquivos diferente, siga estas etapas:
Crie o grupo de arquivos para o PVS e adicione, pelo menos, um arquivo de dados a esse grupo de arquivos. Por exemplo:
ALTER DATABASE [<db_name>] ADD FILEGROUP [VersionStoreFG]; GO ALTER DATABASE [<db_name>] ADD FILE ( NAME = N'VersionStoreFG', FILENAME = N'E:\DATA\VersionStore.ndf', SIZE = 8192 MB, FILEGROWTH = 64 MB ) TO FILEGROUP [VersionStoreFG];
Desabilite a ADR com o seguinte comando T-SQL:
ALTER DATABASE [<db_name>] SET ACCELERATED_DATABASE_RECOVERY = OFF; GO
Aguarde até que todas as versões armazenadas no PVS sejam removidas.
Para habilitar a ADR usando um novo local do PVS, primeiro verifique se todas as informações de versão foram limpas do local anterior do PVS. Você pode forçar que a limpeza ocorra com o procedimento armazenado sys.sp_persistent_version_cleanup:
EXEC sys.sp_persistent_version_cleanup [<db_name>];
O procedimento armazenado
sys.sp_persistent_version_cleanup
é síncrono, o que significa que ele não será concluído até que todas as informações de versão sejam eliminadas do PVS atual. Assim que estiver concluído e considerando que a ADR está desabilitada, você poderá verificar se as informações de versão foram removidas consultando sys.dm_tran_persistent_version_store_stats e observando o valor depersistent_version_store_size_kb
. Por exemplo:SELECT DB_NAME(database_id), persistent_version_store_size_kb FROM sys.dm_tran_persistent_version_store_stats WHERE database_id = [MyDatabaseID];
Quando o valor de
persistent_version_store_size_kb
é0
, você pode habilitar novamente a ADR e colocar a PVS no novo grupo de arquivos.Habilite a ADR e especifique o novo local do PVS com o seguinte comando T-SQL:
ALTER DATABASE [<db_name>] SET ACCELERATED_DATABASE_RECOVERY = ON (PERSISTENT_VERSION_STORE_FILEGROUP = [VersionStoreFG]);
Observação
Não há suporte para tempdb
mover PVS para um grupo de arquivos diferente porque você não pode adicionar grupos de arquivos no tempdb
.
Monitorar o tamanho do PVS
Depois de habilitar a ADR em um banco de dados, monitore o tamanho do PVS (repositório de versão persistente) e do desempenho de limpeza de PVS. Para obter mais informações, confira Monitorar e solucionar problemas da Recuperação Acelerada de Banco de Dados.