WSUS и переполнение базы данных MSDE
В нашей организации успешно эксплуатируется сервер Microsoft Windows Server Update Services. Для его работы необходим MS SQL Server, в нашем случае используеться MSDE вариант.
Вот буквально сегодня вылезли грабли, связанные с тем, что у MSDE существует ограничение на максимальный размер БД — 2Gb. База разрослась и работа WSUS-a на этом остановилась.
Для уменьшения размера размера базы необходимо через wsusutil.exe удалить ненужные записи. В нормальной ситуации выглядит это так:
C:\Program Files\Update Services\Tools>wsusutil.exe deleteunneededrevisions Database cleanup is in progress, please be patient Database cleanup has completed successfully C:\Program Files\Update Services\Tools>
Однако, в моем случае, wsusutil отказался работать, ругнувшись на отсутствие места в базе. Получился какой-то гиблый замкнутый круг.
И решил я сделать shrink нашей БД.
Поскольку консоли в MSDE нету, то пришлось пойти обходным путем. Для начала, нужно переключить режим аутентификации SQL-сервера. Для этого останавливаем службу MSSQL и связанные с ним службы. В моем случае это MSSQL$WSUS и SQLAgent$WSUS.
Дальше идем в реестре по адресу HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\<Instance Name>\MSSQLServer\ и ищем ключ LoginMode. По умолчанию включена аутентификация Windows (1). Необходимо включить MixedMode, установив ключ равным 2. После этой коррекции запускаем службы.
Без переключения режима аутентификации утилита osql отказалась у меня работать, выдав сообщение:
Login failed for user 'sa'. Reason: Not associated with a trusted SQL Server connection.
После этого выполнил процедуру сжатия:
C:\>osql -S wsus\WSUS -U sa
Password:
1> dbcc shrinkdatabase('susdb',0)
2> go
DbId FileId CurrentSize MinimumSize UsedPages EstimatedPages
------ ------ ----------- ----------- ----------- --------------
5 1 239224 96 239216 239216
5 2 63 63 56 56
(2 rows affected)
DBCC execution completed. If DBCC printed error messages, contact your system
administrator.
1>
Размер базы уменьшился очень незначительно, однако этого хватило для того, чтобы wsusutil отработала нормально. По прошествию некоторого времени команда завершила свою работу.
После этого опять сжимаем базу:
1> dbcc shrinkdatabase('susdb',0)
2> go
DbId FileId CurrentSize MinimumSize UsedPages EstimatedPages
------ ------ ----------- ----------- ----------- --------------
5 1 211376 96 189600 189600
5 2 63 63 56 56
(2 rows affected)
1>
Размер базы уменьшился до 1,6Gb. WSUS заработал, но появилась мысль, что, возможно, в скором времени MSDE придется заменить на полноценный MS SQL Server.
Популярность: 7%
Похожие заметки
Нет похожих заметок.
Roman Shramko