Назад | Перейти на главную страницу

vCenter SQL Express Обслуживание базы данных

После выполнения простой установки vCenter 5.1 со всеми выбранными по умолчанию, включая базу данных sql express, что нам делать, чтобы обеспечить непрерывную работу без ручного вмешательства?

В настоящее время мы сталкиваемся с проблемой, когда база данных раздувается до огромных размеров для нашего развертывания.

В каждом из наших удаленных филиалов у нас есть 3 физических сервера

Общее количество активных виртуальных машин составляет 8, а затем 6 из них реплицируются на другой сервер ESXi 3 раза в день, с программным обеспечением Dell Quest vRanger также на сервере Branch-Backup. Также каждую ночь создается полная резервная копия 6 виртуальных машин, опять же с помощью программного обеспечения vRanger.

В большинстве случаев все это работает нормально, но в журналах задач и событий vCenter довольно много разговоров. Я видел 9 ГБ для размера таблиц vpx_event + vpx_event_arg, установленных менее 3 месяцев назад, что безумно для двух хостов. Так как http://kb.vmware.com/kb/1025914Предполагает, что я вошел в клиент vSphere:

и изменил значения на что-то разумное для нашей установки. Но, похоже, это на самом деле ничего не дает. Я подозреваю, что это связано с тем, что мы используем экспресс-выпуск, и он не может запускать агент sql для планирования заданий.

Большая часть информации, которую я нашел, похоже, относится к vCenter 5.0 или ниже, и многие инструкции говорят, что 5.1 отличается, и я нашел это так, поскольку 2 сценария очистки .sql, на которые ссылаются многие страницы, просто не присутствует на 5.1.

Что нам нужно настроить для vCenter 5.1, чтобы база данных sql express не заполнялась старыми данными?


Edit: the default install sets up the database with the recovery model set to "simple" and so the transaction logs are deleted as soon as it is finished using it. That being said I had a problem with the transaction log file size being limited in size on the "simple" DB and a large transaction failing, ie. multiple GiB database shrink with a vCenter default 500MiB transaction log limit caused a problem.

Я не вижу причин отказываться от простой модели восстановления, поскольку все, что может означать повреждение базы данных, - это переустановить vCenter для управления двумя хостами. Мы, системные администраторы, в любом случае единственные, кто может войти на эту машину, так что это не проблема. Проблема в том, что всякий раз, когда БД становится слишком большой, наши резервные копии и репликации виртуальных машин не работают. Однако я установил максимальное значение журнала транзакций для этих крупных транзакций.

Я предполагал, что решение будет включать запуск сценариев sql через планировщик задач Windows. Но какие, откуда их взять, как часто я их запускаю и в какой последовательности?


PS. I just noticed that the vpx_event table that has 1 row per event has about 71500 rows per day in our new deployment.

Полное раскрытие информации: я не использую vCenter. Однако я использовал другие программные пакеты с SQL Express.

Вы можете запускать задания обслуживания SQL Express как запланированные задачи с помощью пакетной обработки и sqlcmd, например:

sqlcmd -E -SServer\instance -Q "EXECUTE [VIM_VCDB].[dbo].[cleanup_events_tasks_proc]"

Еще одна статья, которую я нашел (http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1020904) предложил использовать скрипт, который можно было бы вызывать, например:

sqlcmd -E -SServer\instance -i "C:\Program Files\VMware\Infrastructure\VirtualCenter Server\cleanup_events_mssql.sql"

Отредактировано в ответ на ваше изменение: ограничение размера вашего t-журнала может нарушить действительно большие транзакции, включая сжатие и большие удаления. Если удаление выполняет сам VCenter, а не задание агента, это может быть вашей проблемой. И учитывая, что по умолчанию используется Express, имеет смысл, что они не будут зависеть от (не поддерживаемых в Express) заданий агента.