User Tools

Site Tools


wsus

WSUS-сервер

Увеличение количества памяти

По умолчанию в пуле IIS стоит довольно маленькое максимальное значение используемой памяти (~1.2 GB). Лучше поменять значение, которое используется по умолчанию. Это делается в дополнительных свойствах пула IIS, как показано на скриншоте.


Скрипт, показывающий фрагментацию индексов в процентах

SELECT S.name as 'Schema',
T.name as 'Table',
I.name as 'Index',
DDIPS.avg_fragmentation_in_percent,
DDIPS.page_count
FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL, NULL, NULL) AS DDIPS
INNER JOIN sys.tables T on T.object_id = DDIPS.object_id
INNER JOIN sys.schemas S on T.schema_id = S.schema_id
INNER JOIN sys.indexes I ON I.object_id = DDIPS.object_id
AND DDIPS.index_id = I.index_id
WHERE DDIPS.database_id = DB_ID()
and I.name is not null
AND DDIPS.avg_fragmentation_in_percent > 0
ORDER BY DDIPS.avg_fragmentation_in_percent desc

Скрипт для дефрагментации индексов

DECLARE fragmented CURSOR
For SELECT T.Name as 'table'

FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL, NULL, NULL) AS DDIPS
INNER JOIN sys.tables T on T.object_id = DDIPS.object_id
INNER JOIN sys.schemas S on T.schema_id = S.schema_id
INNER JOIN sys.indexes I ON I.object_id = DDIPS.object_id
AND DDIPS.index_id = I.index_id
WHERE DDIPS.database_id = DB_ID()
and I.name is not null
AND DDIPS.avg_fragmentation_in_percent > 10 and DDIPS.page_count > 100
group by T.Name 

OPEN fragmented;

declare @tableName nvarchar(1000)
FETCH NEXT FROM fragmented INTO @tableName;
declare @SQL nvarchar(max) 
WHILE @@FETCH_STATUS = 0  
    BEGIN
	    
		set @SQL='ALTER INDEX ALL ON [' + @tableName + '] REBUILD;'
		print @SQL;
		--print @SQL
		EXEC SP_EXECUTESQL @SQL
        FETCH NEXT FROM fragmented INTO @tableName;  
    END;

Мастер очистки WSUS через powershell

Иногда мастер очистки, запущенный через графическую консоль отваливается по таймауту и не выполняется до конца. Можно в таком случае запускать очистку через powershell:

Invoke-WsusServerCleanup -DeclineSupersededUpdates -DeclineExpiredUpdates -CleanupObsoleteUpdates -CleanupUnneed

Синхронизация одобренных обновлений в базе с реально существующими файлами на диске

Если файлы обновлений были удалены, повреждены или существующая база данных была использована на сервере с отсутствующими файлами обновлений, то можно запустить команду, которая выполнит проверку соответствия и загрузит заново нужные файлы. Команда выполняется сразу, но загрузка обновлений может идти долго, а консоль управления mmc какое-то время может выдавать ошибки.

cd "C:\Program Files\Update Services\Tools\"
WsusUtil.exe reset
wsus.txt · Last modified: 2024/11/01 20:13 by jp