Sprawdzenie modeli odtwarzania baz danych w MS SQL Server 2000-2008.

W MS SQL Server od wersji 2000 zostały wprowadzone modele odtwarzania, które pomagają w planowaniu kopii bezpieczeństwa.

Dostępne są trzy modele odtwarzania:

• Pełny (Full recovery)
• Rejestracja masowa (Bulk-logged recovery)
• Prosty (Simple recovery)

Komenda DATABASEPROPERTYEX zwraca  model odtwarzania dla podanej bazy:

Select DATABASEPROPERTYEX ('nazwa_bazy_danych', 'recovery')

W odpowiedzi system zwróci jedną nazwę z trzech modeli:

  • FULL,
  • BULK_LOGGED,
  • SIMPLE.

Poniżej przedstawiam skrypt wyświetlający modele dla wszystkich baz danych umieszczonych na serwerze.

Testowany skrypt był na wersjach SQL Server: 2000, 2005 i 2008. Na 2008 R2 nie testowałem.

------------------------------------------------------
-- Script     : Recorvery_model.sql
-- Author     : Dariusz Brejnak aka `DBSoft (c) 2010
-- Created    : 2010-08-27
-- SQL Version: 2000, 2005, 2008
-----------------------------------------------------
USE master
GO

DECLARE @DBName varchar(255)

DECLARE DB_Cursor CURSOR FOR
SELECT
DATABASE_NAME   = db_name(s.dbid)
FROM
[master].[dbo].[sysdatabases] s
GROUP BY s.dbid
ORDER BY DATABASE_NAME

CREATE TABLE #tmp
([Database] varchar(50) null,
[Recorvery_model] varchar(20) null
)

OPEN DB_Cursor
FETCH NEXT FROM DB_Cursor INTO @DBName

WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO #tmp
SELECT @DBName,
cast(DATABASEPROPERTYEX(@DBName,'recovery') as VARCHAR(20))

FETCH NEXT FROM DB_Cursor INTO @DBName
END
CLOSE DB_Cursor
DEALLOCATE DB_Cursor

SELECT [Database],[Recorvery_model] FROM #tmp
ORDER BY 1
DROP TABLE #tmp

.

.

.

DBBS