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, ç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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager