Дополнительная настройка баз данных SQL Server используемых для Forefront Client Security

Дополнительная настройка баз данных SQL Server используемых для Forefront Client Security

В процессе установки серверных компонент Forefront Client Security предлагаемые по умолчанию значения для размеров баз данных Collection Database (OnePoint) и Reporting Database (SystemCenterReporting) достаточно далеки от истины. Дело в том, что OnePoint это фактически оперативная база данных, которая хранит значения сбора статистики за последние 72 часа (хотя данные могут в ней накапливаться за период до 10 дней), в то время как SystemCenterReporting это база для хранения исторических данных периодом до 395 дней (значение «по умолчанию»). Именно это объясняет то, что размер базы данных SystemCenterReporting должен быть на порядок больше чем у  OnePoint. Дополнительную информацию можно найти в документе Forefront Client Security - Database sizing.

Максимальный размер базы OnePoint30 Gb, в то время как для базы SystemCenterReporting таких ограничений не установлено. Для обеих этих баз функция Autogrow не поддерживается и поэтому важно правильно рассчитать и выставить размер этих БД ещё в начале эксплуатации Forefront Client Security.

Осмелюсь предположить, что в продуктивном окружении наверняка нет необходимости сохранять исторические данные антивирусной статистики в базе SystemCenterReporting на протяжение 395 дней. Предположим, что нас вполне устроит период в 30 дней (в основном исходя из возможных ограничений в дисковой подсистеме). Сократив период, мы можем уменьшить размер базы данных SystemCenterReporting и соответственно сократить накладные расходы сервера на её обслуживание.
Воспользуемся
информацией из статьи базы знаний Microsoft KB887016 - How to modify the number of days to retain data in the SystemCenterReporting database in Microsoft Operations Manager 2005 для того, чтобы сократить это значение.
Изменить установленные в процессе развертывания серверных компонент FCS значения можно с помощью SQL Server Management Studio.
Для начала выполним запрос к базе данных SystemCenterReporting , чтобы получить текущие значения 'Groom Days' для 6 главных таблиц:

SELECT cs.cs_tablename 'Table Name', wcs.wcs_groomdays 'Groom Days' from warehouseclassschema wcs

Join classschemas cs

On cs.cs_classID = wcs.wcs_classID

Where cs.cs_tablename = 'SC_AlertFact_Table'

And wcs.wcs_mustbegroomed = 1

 

SELECT cs.cs_tablename 'Table Name', wcs.wcs_groomdays 'Groom Days' from warehouseclassschema wcs

Join classschemas cs

On cs.cs_classID = wcs.wcs_classID

Where cs.cs_tablename = 'SC_AlertHistoryFact_Table'

And wcs.wcs_mustbegroomed = 1

 

SELECT cs.cs_tablename 'Table Name', wcs.wcs_groomdays 'Groom Days' from warehouseclassschema wcs

Join classschemas cs

On cs.cs_classID = wcs.wcs_classID

Where cs.cs_tablename = 'SC_AlertToEventFact_Table'

And wcs.wcs_mustbegroomed = 1

 

SELECT cs.cs_tablename 'Table Name', wcs.wcs_groomdays 'Groom Days' from warehouseclassschema wcs

Join classschemas cs

On cs.cs_classID = wcs.wcs_classID

Where cs.cs_tablename = 'SC_EventFact_Table'

And wcs.wcs_mustbegroomed = 1

 

SELECT cs.cs_tablename 'Table Name', wcs.wcs_groomdays 'Groom Days' from warehouseclassschema wcs

Join classschemas cs

On cs.cs_classID = wcs.wcs_classID

Where cs.cs_tablename = 'SC_EventParameterFact_Table'

And wcs.wcs_mustbegroomed = 1

 

SELECT cs.cs_tablename 'Table Name', wcs.wcs_groomdays 'Groom Days' from warehouseclassschema wcs

Join classschemas cs

On cs.cs_classID = wcs.wcs_classID

Where cs.cs_tablename = 'SC_SampledNumericDataFact_Table'

And wcs.wcs_mustbegroomed = 1


image

Убедившись в том, что срок хранения данных действительно установлен в значении «по молчанию», т.е. в 395 дней, следующим запросом изменим эти значения:

Exec p_updategroomdays SC_AlertFact_Table, 30

Exec p_updategroomdays SC_AlertHistoryFact_Table, 30

Exec p_updategroomdays SC_AlertToEventFact_Table, 30

Exec p_updategroomdays SC_EventFact_Table, 30

Exec p_updategroomdays SC_EventParameterFact_Table, 30

Exec p_updategroomdays SC_SampledNumericDataFact_Table, 30

image

После этого можно выполнить повторный запрос к базе данных SystemCenterReporting , чтобы получить текущие значения 'Groom Days' для 6 главных таблиц и убедиться в том, что установлено новое значение в 30 дней.

Расчет размера файлов баз данных.

Нам необходимо определиться с размерами баз данных OnePoint и SystemCenterReporting. Для этого можно воспользоваться таблицей ориентировочного расчета из руководства
Forefront Client Security - Impact on server system resources

То есть, если придерживаться данного расчета, то для обслуживания около 3000 клиентов на редакции SQL Server Standard, - размер базы OnePoint должен быть не менее  5 Gb а размер базы SystemCenterReporting около 22 Gb при условии хранения данных в базе SystemCenterReporting не более 30 дней.

Расчет размера файлов логов транзакций.

Размер лога транзакций базы OnePoint должен быть не менее 1/3 размера самой базы.
К примеру, если мы установили размер файла базы OnePoint в 5120 Mb, то размер лога транзакций должен быть ориентировочно 1707 Mb. Изменить установленные в процессе развертывания серверных компонент FCS значения можно с помощью SQL Server Management Studio, открыв свойства базы данных OnePoint на закладке Files

image

Что нужно знать для расчета размера файла лога транзакция для базы SystemCenterReporting:
1.
Задача планировщика задач Windows с именем SystemCenterDTSPackageTask копирует данные из базы OnePoint в базу SystemCenterReporting с возрастом  72 часа и более. Поэтому важно обратить внимание на то, успешно ли это задание отрабатывает.
2. Лог транзакций базы SystemCenterReporting должен быть не менее чем  в пять раз больше размера файла данных базы OnePoint.  То есть если размер базы OnePoint  5120
Mb то размер лога транзакций базы SystemCenterReporting должен быть не менее 25600 Mb. Такой большой размер рекомендуется советами бывалых «заводчиков» FCS как исторически устоявшаяся истина. Примем её на веру  J.
В итоге исходя из ранее взятых нами за пример значений размеров базы и логов OnePoint в размере 5120
Mb / 1707 Mb соответственно и приведенных выше рекомендаций, - для БД SystemCenterReporting эти значения получатся соответственно  22528 Mb / 25600 Mb.

Значение размера файла данных БД SystemCenterReporting 22528 Mb получено путём расчета из вышеприведенной таблицы в расчете на 3000 клиентов и 30 дней хранения данных, т.е. (128Gb * 30 дней)/180 дней = 22 Gb или 22528 Mb.
Значение размера файла лога тразакций БД SystemCenterReporting получено путём вышеописанного расчета, т.е. (5120 Mb * 5) = 25600 Mb

image

Данный пост размещен как вольный перевод статьи  FCS with MOM 2005 Database Guidance .
В оригинальной статье можно найти дополнительную информацию о том, как делать
shrink large Databases, в случае если мы всё-таки по какой-то причине вышли за рассчитанные пределы размеров баз данных FCS.

Добавить комментарий