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