Сжатие и очистка логов всех файлов баз данных
Генерация кода для сжатия файлов баз данных. Код генерирует в сообщениях текст для выполнения запроса.
|
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 36 37 38 39 40 41 42 43 44 45 46 |
USE MASTER print '*****************************************' print '************ Czyścik LDF ****************' print '*****************************************' declare @isql varchar(2000), @dbname varchar(64), @logfile varchar(128), @recovery_model varchar(64) declare c1 cursor for SELECT d.name, mf.name as logfile, d.recovery_model_desc --, physical_name AS current_file_location, size FROM sys.master_files mf inner join sys.databases d on mf.database_id = d.database_id --where recovery_model_desc <> 'SIMPLE' and d.name not in ('master','model','msdb','tempdb') and mf.type_desc = 'LOG' and d.state_desc = 'online' open c1 fetch next from c1 into @dbname, @logfile, @recovery_model While @@fetch_status <> -1 begin print '----- OPERATIONS FOR: ' + @dbname + ' ------' print 'CURRENT MODEL IS: ' + @recovery_model select @isql = 'ALTER DATABASE ' + @dbname + ' SET RECOVERY SIMPLE' print @isql exec(@isql) select @isql='USE ' + @dbname + ' checkpoint' print @isql exec(@isql) select @isql='USE ' + @dbname + ' DBCC SHRINKFILE (' + @logfile + ', 1)' print @isql exec(@isql) select @isql = 'ALTER DATABASE ' + @dbname + ' SET RECOVERY ' + @recovery_model print @isql exec(@isql) fetch next from c1 into @dbname, @logfile, @recovery_model end close c1 deallocate c1 |
Категории: 1С Предприятие 8.2

