Recovery Model Simple em ambiente de desenvolvimento
O assunto de hoje é sobre alteração de recovery model Full para Simple no ambiente do SQL Server de desenvolvimento! Neste guia, vamos explorar um importante aspecto da administração de banco de dados: o modelo de recuperação (recovery model). Saiba mais sobre no site da Microsoft – Recovery Model.
O modelo de recuperação define como o SQL Server irá registrar e manter as alterações realizadas nos dados do banco, permitindo que você possa restaurar o banco de dados em caso de falhas ou desastres.
O modelo de recuperação Full (Completo) é uma opção robusta e completa que possibilita a realização de backups full e de log de transações. Essa opção é recomendada para ambientes de produção, onde a disponibilidade dos dados é primordial e a recuperação precisa ser precisa até o ponto de falha (point-time).
Por outro lado, o modelo de recuperação Simple (Simples) é mais adequado para ambientes de desenvolvimento, homologação e testes, onde a ênfase está na simplicidade e agilidade das operações. Para a gestão do ambiente de desenvolvimento é interessante visto que não será necessário a configuração de uma rotina de backup de log de transações com isso economizando espaço seja no disco ou no storage. Também vale pontuar que no monitoramento dos discos do servidor de banco de dados de ambiente de desenvolvimento, claro que pode ocorre o estouro do disco de log ou a necessidade de expansão do disco em caso de algum restore do banco de dados de produção no ambiente de desenvolvimento no qual o log do banco de dados.
A consulta abaixo irá obter o resultado de todos os databases de “usuário”, ou seja, exceto os database de sistema (master, model , msdb) que estão configurados com o recovery model igual a “Full”
SELECT name AS [Nome_Banco],
recovery_model_desc AS [Recovery Model]
FROM sys.databases
WHERE recovery_model_desc = 'FULL'
AND database_id > 4;

A query abaixo irá alterar todos os databases que estiverem configurados como recovery model “Full” em seu ambiente. Exceto os database de sistema (master, model , msdb).
DECLARE @Database VARCHAR(255);
DECLARE @SQL NVARCHAR(255);
DECLARE RECOVERYMODEL CURSOR FOR
SELECT name
FROM sys.databases
WHERE database_id > 4
AND recovery_model_desc = 'FULL';
OPEN RECOVERYMODEL;
FETCH NEXT FROM RECOVERYMODEL
INTO @Database;
WHILE @@FETCH_STATUS = 0
BEGIN
SET @SQL = N'ALTER DATABASE [' + @Database + N'] SET RECOVERY SIMPLE';
EXECUTE sp_executesql @SQL;
FETCH NEXT FROM RECOVERYMODEL
INTO @Database;
END;
CLOSE RECOVERYMODEL;
DEALLOCATE RECOVERYMODEL;

A consulta abaixo irá listar todos os databases que estão configurados o recovery model igual a “Simple”
SELECT name AS [Nome_Banco],
recovery_model_desc AS [Recovery Model]
FROM sys.databases
WHERE recovery_model_desc = 'SIMPLE'
AND database_id > 4;

É possível a criação de um Job no SQL Server de ambiente de desenvolvimento/homologação para alteração do recovery model para “Simple” de tempo em tempo, de acordo com a sua necessidade.
Enfatizando as considerações importantes que você deve levar em conta antes de tomar essa decisão. É fundamental entender os impactos dessa mudança no gerenciamento de backups e na capacidade de recuperação dos dados.