Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como obter o modelo de recuperação de um banco de dados no SQL Server usando T-SQL


No SQL Server, um modelo de recuperação é uma propriedade de banco de dados que controla como as transações são registradas, se o log de transações requer (e permite) backup e quais tipos de operações de restauração estão disponíveis. Os bancos de dados podem usar um dos três modelos de recuperação a seguir:simples, completo e com log em massa.

Você pode consultar o sys.databases exibição de catálogo para obter uma lista de bancos de dados e seus modelos de recuperação.

Exemplo


Segue um exemplo para demonstrar:
SELECT 
    name, 
    recovery_model_desc  
FROM sys.databases;

Resultado:
+-----------------------+-----------------------+
| name                  | recovery_model_desc   |
|-----------------------+-----------------------|
| master                | SIMPLE                |
| tempdb                | SIMPLE                |
| model                 | FULL                  |
| msdb                  | SIMPLE                |
| Music                 | FULL                  |
| KrankyKranes          | FULL                  |
| WideWorldImporters    | SIMPLE                |
| World                 | FULL                  |
| PetHotel              | FULL                  |
| StereoSystems         | FULL                  |
| NarrowNationExporters | FULL                  |
| TestDB                | FULL                  |
+-----------------------+-----------------------+

Neste exemplo, a maioria dos meus bancos de dados usa o modelo de recuperação completo, mas alguns usam o modelo de recuperação simples.

O master , tempdb e msdb os bancos de dados usam o modelo de recuperação simples por padrão. O model banco de dados usa o modelo de recuperação completa, o que significa que qualquer novo banco de dados criado usará o modelo de recuperação completa por padrão. Essa configuração pode ser diferente em seu sistema, dependendo de qual edição você está usando e se foi alterada ou não.

Consulte o site da Microsoft para obter mais informações sobre modelos de recuperação.

Se você não quiser listar todos os bancos de dados, você sempre pode usar um WHERE cláusula para reduzi-lo a apenas um banco de dados:
SELECT 
    name, 
    recovery_model_desc  
FROM sys.databases
WHERE name = 'NarrowNationExporters';

Resultado:
+-----------------------+-----------------------+
| name                  | recovery_model_desc   |
|-----------------------+-----------------------|
| NarrowNationExporters | FULL                  |
+-----------------------+-----------------------+

Veja como alterar o modelo de recuperação.