Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LektsiiNovye.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.92 Mб
Скачать

Файлы и группы файлов

Файлы базы данных и журнала транзакций могут размещаться в томах с файловой системой FAT и NTFS, но не могут располагаться в сжатых томах.

В MS SQL Server каждая база данных имеет, минимум, два файла: один для хранения данных и один для журнала транзакций. Более сложные базы данных имеют несколько файлов для данных и журнала транзакций. Эти файлы могут объединяться в группы для упрощения администрирования базы данных. Каждый файл может располагаться на отдельном диске. Такой подход очень эффективен при использовании множества физических дисков. Например, журнал транзакций можно расположить на отдельном физическом диске, так что если один из ж`стких дисков выйдет из строя, то будет потеряна только часть данных. Помимо обеспечения отказоустойчивости, правильное использование файлов и групп файлов может повысить производительность выполнения обращений к базе данных. Например, можно расположить на отдельных физических дисках обычные данные, данные типов text, ntext или image и «тяжёлые» индексы. Так как дисковые операции ввода-вывода при использовании отдельных контроллеров выполняются на всех дисках параллельно, то производительность в некоторых случаях может повыситься в несколько раз.

База данных имеет в своем составе файлы следующих типов:

  • primary – основной файл, который содержит системную информацию о самой базе данных и её объектах; в этом файле размещаются системные таблицы и описание объектов базы данных; в основном файле могут также храниться и данные; каждая база данных имеет в своем составе файл типа primary, причём только один файл в базе данных может относиться к этому типу; по умолчанию файлам типа primary присваивается расширение .mdf;

  • secondary – вторичный файл, который не содержит системную информацию и используется только для хранения данных; все данные, которые не были размещены в основном файле, располагаются во вторичных файлах; база данных может вообще не иметь файла типа secondary или, наоборот, иметь их несколько; часто в базе данных создаётся множество файлов secondary, чтобы распределить данные среди нескольких физических дисков; по умолчанию файлам типа secondary присваивается расширение .ndf;

  • transaction log – файл журнала транзакций; файлы этого типа используются для хранения информации о транзакциях, выполненных в базе данных; каждая база данных имеет, как минимум, один файл журнала транзакций; можно использовать несколько файлов для ускорения операция дискового ввода-вывода, так как данные о транзакциях записываются параллельно во все файлы; это напоминает чередующийся набор дисков для файловой системы NTFS; по умолчанию файлам типа transaction log присваивается расширение .ldf.

Расширения .mdf, .ndf и .ldf, назначаемые файлам базы данных, не являются обязательными. Допустимы произвольные расширения для каждого файла. Всё же рекомендуется использовать стандартные расширения, чтобы избежать путаницы. Каждый файл, используемый в базе данных, имеет два имени:

  • Logical File Name – логическое имя файла, оно используется в командах Transact-SQL при ссылке на конкретный файл;

  • File Name – имя файла в операционной системе, под этим именем файл хранится на жёстком диске.

В MS SQL Server предусмотрена возможность автоматического роста базы данных. Все файлы самой базы данных (как файлы данных, так и файлы журнала транзакций) могут автоматически увеличиваться. Эта возможность определяется при создании файла. Шаг прироста можно устанавливать в процентах от первоначального размера или в мегабайтах. Дополнительно можно указать максимальный размер, до которого файлу разрешено увеличиваться. Если максимальный размер не указывается, файл будет увеличиваться до тех пор, пока не займет все свободное пространство на диске.

Возможность автоматического увеличения файлов снимает необходимость постоянного контроля размера файлов базы данных. Пользователи, не имеющие административных полномочий, могут беспрепятственно работать с базой данных, не испытывая неудобств при её критическом заполнении.

Рекомендуется размещать файлы базы данных на всех доступных физических дисках. «Тяжёлые» данные и индексы лучше всего размещать на разных физических дисках. Как было сказано выше, файлы могут объединяться в группы для упрощения администрирования и управления физическим размещением объектов базы данных. В некоторых системах правильное использование групп файлов может дать значительное увеличение производительности. Группы файлов бывают следующих типов:

  • Primary File Group – основная группа файлов; эта группа файлов содержит файл типа primary и все файлы, не включённые в другие группы; все страницы системных таблиц базы данных располагаются в основной группе файлов; база данных может иметь только одну основную группу файлов;

  • User-defined File Group – пользовательская группа файлов; в пользовательские группы файлов включаются все файлы, указанные в параметре FREGROUP при создании (CREATE DATABASE) или изменении (ALTER DATABASE) базы данных; в базе данных можно создать несколько пользовательских групп файлов с произвольным набором файлов;

  • Default File Group – группа файлов по умолчанию; одна из групп файлов, созданных в базе данных, назначается в качестве группы файлов по умолчанию; если явно не указано иное, то группой файлов по умолчанию при создании базы данных становится основная группа файлов; если при создании объекта базы данных (таблицы или столбца) не указано явно, к какой группе файлов он будет принадлежать, то этот объект создаётся в группе файлов по умолчанию; владелец базы данных может назначить любую группу файлов в качестве группы файлов по умолчанию; только одна группа файлов может быть группой файлов по умолчанию.

Каждый файл может быть включён только в одну группу файлов. Кроме того, нельзя определять группы файлов для файлов журнала транзакций.

Когда данные записываются в какую-то группу файлов, они распределяются между всеми файлами в этой группе. То есть вместо того, чтобы записывать данные сначала в первый файл, пока он не заполнится, потом во второй файл и т. д., производится параллельная запись данных во все файлы группы. Причём количество данных, записываемых в каждый файл, пропорционально размеру файла. Например, если в группе определено три файла размером соответственно 1 Мбайт, 2 Мбайт и 3 Мбайт, то при записи 24 строк данных они будут распределены следующим образом: в первый файл будет записано 4 строки, во второй – 8 строк, а в третий – 12 строк. Если в группе определено множество файлов, то файлы не будут увеличиваться до тех пор, пока все они полностью не заполнятся. Если один из файлов будет заполнен, то и другие файлы также будут заполнены. Увеличение размера файлов в группе выполняется циклическим способом. Например, пусть группа состоит из 3 файлов, для которых разрешён автоматический рост. Когда все файлы в группе заполнены, SQL Server увеличивает размер первого файла на установленный для него шаг приращения (в процентах или мегабайтах). Все новые данные будут записываться в первый файл, пока он снова не заполнится. После этого сервер увеличивает размер второго файла и записывает данные в него. После того как третий файл будет также увеличен и заполнен, сервер снова увеличит первый файл.

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

Любая группа файлов, включая основную, может быть установлена в режим «только для чтения». Если группа файлов маркирована только для чтения, никакие изменения, добавления и удаления данных не разрешаются. Пользователи могут только считывать информацию. Например, данные отчётов за прошедший год могут быть установлены в режим «только для чтения», чтобы предотвратить возможность их изменения.

Если основная группа файлов маркирована «только для чтения», то в базу данных не могут быть добавлены никакие новые объекты, также нельзя удалять или изменять ранее созданные объекты. Резервная копия группы файлов, помеченной «только для чтения», может быть восстановлена на другом сервере без необходимости восстановления журнала транзакций.

Использование возможности отсоединения базы данных совместно с установкой режима «только для чтения» позволяет безболезненно переносить базу данных на множество серверов. Например, администратор в центральном офисе может создать базу данных, скопировав в неё данные обо всех торговых операциях за прошедший год. Для рассылки этих сведений всем филиалам он может установить базу данных в режим «только для чтения» и выполнить отсоединение. После этого файлы базы данных можно записать на компакт-диски и разослать копии во все филиалы. Администраторы филиалов выполнят присоединение базы данных с компакт-диска, после чего они будут иметь возможность чтения данных.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]