juin
2010
Si en toute connaissance de cause vous décidez de basculer toutes les bases de données utilisateurs d’une instance SQL Server (2005 ou 2008) en mode de récupération FULL alors ce script peut vous éviter de perdre du temps à faire une tâche répétitive…
GO
DECLARE @BaseEnCoursTraitement VARCHAR(50),@SQL VARCHAR (max), @DEL VARCHAR (max)
CREATE TABLE #LISTE_BASES (nom_base varchar (50))
INSERT INTO #LISTE_BASES
SELECT name AS [NomBase]
FROM sys.databases
WHERE name not in ('master','tempdb','model','msdb')
ORDER BY [NomBase]
-- Tant qu'il y a des lignes dans la table temporaire
WHILE EXISTS ( SELECT nom_base
FROM #LISTE_BASES
)
BEGIN
--Se positionner sur la 1ère ligne de la table temporaire
SET @BaseEnCoursTraitement = (SELECT TOP 1 nom_base FROM #LISTE_BASES)
-- Insert les infos de la table en cours de traitement dans la table de l'AUDIT
SET @SQL = N'ALTER DATABASE [' + @BaseEnCoursTraitement +'] SET RECOVERY FULL ;'
--PRINT (@SQL)
EXEC (@SQL);
-- Supprimer la base traitée de la table temporaire
SET @DEL = 'DELETE FROM #LISTE_BASES WHERE nom_base = '''+ @BaseEnCoursTraitement + ''';'
EXEC (@DEL)
END
--Supprimer la table temporaire
DROP TABLE #LISTE_BASES
-- Afficher les bases et leur mode restauration
SELECT name [Base]
,recovery_model [ID Mode]
,recovery_model_desc [Mode Restauration]
FROM sys.databases
WHERE name not in ('master','tempdb','model','msdb')
Remarque :
1. )Pour faire l’opération inverse c’est à dire MODE FULL –> MODE SIMPLE il suffit de remplacer dans la requête FULL par SIMPLE
2.) Pour basculer une base de données en mode FULL :
ALTER DATABASE [MABASE] SET RECOVERY FULL
/*************************************************************************
— BASCULER TOUTES LES BASES UTILISATEURS EN MODE DE RECUPERATION FULL
— Auteur : Etienne ZINZINDOHOUE
*************************************************************************/