Решение задач администрирования СУБД MS SQL Server средствами Transact-SQL. Технологии настройки файлов и файловых групп при создании БД, страница 2

В БД SQL MS Server 2005, 2008 используется два типа файлов операционной системы:

файлы данных (datafiles) – содержат данные и объекты БД (например, таблицы, индексы и т.д.); для упрощения администрирования и повышения производительности файлы данных можно объединять в файловые группы;

файлы журнала (log files) – хранят журнал транзакций для восстановления транзакций БД.

Файлы данных. В БД SQL Server 2005, 2008  можно создавать файлы данных двух типов.

Первичный файл данных (primary data file) является обязательным. В нем хранится загрузочная информация каталога БД и указатели на другие файлы БД. Первичный файл данных может также содержать объекты и пользовательские данные. Для имени первичного файла рекомендуется расширение mdf.

Вторичные файлы данных (secondary data files) не являются обязательными и определяются пользователем. В них содержатся объекты и пользовательские данные. Для повышения производительности больших БД вторичные файлы рекомендуется размещать на разных дисках. В БД может быть не более 32766 вторичных файлов данных. Для имени вторичного файла данных рекомендуется расширение ndf.

Например, в простой или редко используемой БД может быть только первичный файл данных, хранящий сведения каталога и объекты БД (таблицы, представления, хранимые процедуры и данные). В большой или часто используемой БД можно настроить первичный файл данных, а также несколько вторичных файлов данных, размещенных на разных дисках, для улучшения производительности, доступности и надежности.

Все данные и объекты больших БД рекомендуется хранить во вторичных файлах, а каталог БД – в первичном файле. Такая конфигурация помогает снизить вероятность конфликтов доступа к дискам.

Файлы журнала. В каждой БД SQL Server 2005 есть журнал транзакций, который фиксирует все изменения БД, выполненные в рамках каждой транзакции. Эта информация хранится в файлах журнала. Для каждой БД необходим как минимум один файл журнала, а для более быстрого восстановления для каждой БД можно создать несколько таких файлов. Для имени файла журнала рекомендуется расширение ldf.

Файловые группы. Файловая группа (filegroup) – это логическая структура, с помощью которой администратор БД может группировать файлы данных и управлять ими как одной логической единицей. Для повышения производительности объекты БД (например, таблицы) можно выделить в отдельные файловые группы. Распределение объектов БД по разным файловым группам позволяет реализовать преимущества разных дисковых подсистем и разрешить SQL Server выполнять параллельные дисковые операции. Кроме того, после создания нескольких файловых групп можно выполнять резервное копирование и восстановление файлов независимо друг от друга.

В SQL Server поддерживается два типа файловых групп: первичные и пользовательские.

Первичная файловая группа (primary filegroup) содержит первичный файл данных и все вторичные файлы данных, не входящие ни в какую другую файловую группу. Все системные таблицы помещаются в первичную файловую группу.

Пользовательские файловые группы (user-defined filegroup) служат для объединения вторичных файлов и размещения объектов БД в файловые группы. В БД может быть не более 32766 пользовательских файловых групп.

При управлении файловыми группами необходимо уделять особое внимание следующим свойствам файловых групп, которые устанавливаются и изменяются через SSMS или с помощью инструкции ALTER DATABASE:

·  В каждой БД есть файловая группа по умолчанию (default filegroup). Если при создании объекта БД не указать файловую группу, то этот объект будет помещен в файловую группу по умолчанию.

·  Файловой группе можно присвоить атрибут «только для чтения». Такие файловые группы можно использовать для объектов БД, которые нельзя изменять, например, хронологических таблиц. При необходимости все файловые группы, за исключением первичной, можно отметить как поддерживающие только чтение.

Если в БД есть активно используемая таблица, например, Характеристики_Заказа, можно создать несколько вторичных файлов БД, сохранить их на разных дисках и объединить в одну файловую группу. Затем можно сохранить таблицу Характеристики_Заказа в этой файловой группе. Тогда запросы к таблице будут распределены по нескольким дискам.

Рекомендуется создать как минимум одну пользовательскую файловую группу для хранения вторичных файлов данных и объектов БД. Эту группу нужно сделать группой по умолчанию, чтобы все создаваемые объекты размещались в ней.