careers
Hlavní stránka > počítače > MSSQL – Change recovery model script

MSSQL – Change recovery model script

24.04.2014 (1,689 zobrazení) Komentuj Přejdi na komentáře

Musel jsem řešit problém s přepnutím všech databází v rámci instance ze simple model do full recovery model (z důvodu zálohy transakčního logu 1x za hodinu). Vzhledem k tomu, že databází bylo asi 150 jsem to opravdu nechtěl klikat ručně.

Nejdříve jsem si ověřil, zda jsou opravdu všechny v SIMPLE


SELECT name, recovery_model_desc
FROM sys.databases
order by recovery_model_desc
GO

A pak jsem nalezl již připravený script (zdroj) a jen změnil SIMPLE na FULL


-- Variables to be used in the script
DECLARE @name VARCHAR(50) -- the name of the database
DECLARE @strSQL nvarchar(150) -- the SQL that will be executed against each database

USE Master

-- Declare a cursor that will return all user databases
DECLARE db_cursor CURSOR FOR
SELECT name
FROM master.dbo.sysdatabases
WHERE name NOT IN ( 'master','model','msdb','tempdb')

OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @name -- Bring the first database name into the @name variable

WHILE @@FETCH_STATUS = 0 -- loop through each of the databases, until no records left
BEGIN
-- Create a SQL statement that will be executed
SET @strSQL = 'ALTER DATABASE [' + @name + '] SET RECOVERY FULL' -- Concatenate the SQL statement with the database name variable
EXEC SP_EXECUTESQL @strSQL -- run the statement

FETCH NEXT FROM db_cursor INTO @name -- Return the database
END

CLOSE db_cursor -- Without closing & deallocating the cursor, running the same code will generate a failure
DEALLOCATE db_cursor

A abych to nemusel vždy znovu hledat tak jsem si to uložil na blog :-)

partner
  1. No comments yet.

IMPORTANT! To be able to proceed, you need to solve the following simple math (so we know that you are a human) :-)

What is 5 + 6 ?
Please leave these two fields as-is:

help
mail
information