CHECKDB sur + de 15000 bases
Bonjour,
j'ai une plateforme Cluster SQL 2008 R2 sur laquelle j'ai une instance ayant + de 15000 bases.
Je souhaite effectuer un checkDB de toutes les bases si possible en moins d'une journée :D , ça va être dur mais si vous avez des idées je suis preneur.
J'ai mis en place un script (sans cursor), mais il tourne pendant plus d'une journée.
Version du SQL : 10.50.4266.0 SP2 Edition Enterprise 64-bit
Pouvez-vous m'aider svp ? :)
ci-dessous le script que j'utilise :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
SET NOCOUNT ON
GO
DECLARE @db TABLE
(
database_name sysname
)
DECLARE @database_name sysname
, @sql nvarchar(128)
INSERT INTO @db (database_name)
SELECT name
FROM sys.DATABASES
WHERE name NOT IN ('master','msdb','model','tempdb', 'ReportServer', 'ReportServerTempDB', 'distribution')
AND source_database_id IS NULL -- la BD n'est pas un snapshot
AND state_desc = 'ONLINE'
WHILE EXISTS
(
SELECT *
FROM @db
)
BEGIN
SELECT TOP (1) @database_name = database_name
FROM @db
SET @sql = N'DBCC CHECKDB (' + @database_name + ')'
PRINT '------------------------' + @database_name + '------------------------'
EXEC (@sql)
DELETE FROM @db
WHERE database_name = @database_name
END |