===== WSUS-сервер =====
=== Увеличение количества памяти ===
По умолчанию в пуле IIS стоит довольно маленькое максимальное значение используемой памяти (~1.2 GB). Лучше поменять значение, которое используется по умолчанию.
Это делается в дополнительных свойствах пула IIS, как показано на скриншоте.
;#;
{{::wsus_memory.png?200|}}
;#;
----
=== Скрипт, показывающий фрагментацию индексов в процентах ===
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
{{tag>Microsoft WSUS WindowsServer SQL IIS}}