Программирование >>  Реализация баз данных 

1 ... 115 116 117 [ 118 ] 119 120 121 ... 162


ошибки. Зарезервированное место освобождается по завершении транзакции. Объем резервируемого места зависит от выполняемых во время транзакции, но в общем случае он равен пространству, занимаемому протоколом всех транзакции.

Контрольные точки и активная часть журнала

Контрольная точка позволяет минимизировать часть журнала, которую необходимо обра-бота!;, при полном восстановление ЬД- Необходимо, чтобы во время полного восстановления, были выполнены два типа

в журнале могут быть записи о модификациях, не сброшенных на диск до остановки системы. Их необходимо повторить;

все модификации, связанные с незавершеннымвдями. (для которых в журна-

ле отсутствует запись ROLLBACK), следует отменить.

В контрольных точках выполняется сброс измененных страниц данных и журнала из кэш-буфера текущей БД, что минимизирует число модификаций, которые придется повторить во время Контрольная точка регистрируется в файле журнала отметкой начала контрольной точки и сохраняет свои данные в цепочке записей контрольной точки. Стартовый LSN этой цепочки записывается в загрузочную страницу БД.

Контрольные точки генерируются при:

исполнении оператора CHECKPOINT;

изменении параметров БДоператаром ALTER DATABASE;

остановке экземпляра SQL Server в результате исполнения оператора SHUTDOWN или остановке экземпляра механизма как сервис, с SQL Server Service Control Manager;

исполнении автоматических контрольных точек, периодически генерируемых экземпляром SQL Server в каждой БД уменьшения времени ее восстановления.

SQL Server 2000 постоянна tpyei автоматические контрольные точки. Интервал между ними определяется числом записей журнала, а не длиной промежутка времени. Временной интервал между автоматическими контрольными точками непостоянен. Он может быть достаточно длинным, если число модификаций невелико. Если модификации подвергается значительное количество данных, автоматические контрольные точки генерируются чаще.

Усечение журнала транзакций

Если бы в журнале транзакций не разрешалось удалять, то в какой-то момент его

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

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

сервера, поскольку они требуются для восстановления БД при перезапуске сервера. Начальная запись активной части журнала идентифицируется наименьшим порядковым номером

Усечение журнала выполняется при завершении каждого оператора BACKUP LOG, a также во время обработки каждой контрольной точки, если используется простая модель восстановления БД.



Физическая архитектура журнала транзакций

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

SQL Server 2000 рассматривает каждый физический файл журнала как несколько виртуальных. Виртуальные файлы журнала не имеют фиксированного размера. Число виртуальных файлов, на которые может быть разбит физический файл, также не определено.

SQL Server выбирает размер виртуального файла журнала динамически при создании или наращивании файлов журнала и пытается поддерживать минимальное число виртуальных файлов. Размер виртуального файла после расширения файла журнала определяется на размера существующего журнала и инкремента нового файла. Администраторы лишены возможности конфигурировать или задавать размер или количество виртуальных файлов журнала. Эти параметры динамически определяет SQL Server.

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

Сокращение размера журнала транзакций

Физический размер файл niii уменьшается при исполнении оператора DBCC SHRINK.-DATABASE, оператора DBCC ссылающегося на файл журнала, или во вре-

мя операции автоматического сокращения размера (autoshrink).

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

Размер файла можно уменьшать за один раз только на объем одного виртуального журнала. Например, если файл журнала объемом 600 Мб поделен на 6 виртуальных журналов по Мб каждый, то размер файла журнала может уменьшаться только на 100 Мб за один

раз. Размер файла может быть уменьшен до 500 или 400 Мб. но не до 433 или 525 Мб, Нельзя освободить виртуальный журнал, содержащий часть логического журнала. Если

во всех виртуальных журналах, файл журнала, содержатся части логичес-

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

При сокращении любого файла высвобождаемое место располагается в его конце. Во

время операции сокращения в конце файла журнала транзакций освобождается столько виртуальных сколько необходимо, чтобы уменьшить размер журнала до задан-

ного значения. Заданное пользователем значение целевого размера виртуального журнала (targetsize) округляетсядо ближайшего максимального аначения. Например, если пользователь определяет значение targetsize в 325 Мб, то из журнала общим объемом 600 Мб со виртуальными журналами будут удалены два последних виртуальных

файла. Новый размер журнала равен 400 Мб.



Параллельная работа

Когда множество пользователей одновременно пытаются ировать данные в БД, необходимо создать систему которая бы модификации, выполнен-

ные одним пользователем, от воздействия модификаций, сделанных други-

ми. Этот процесс называется Л1ныем параллельным выполнением.

два типа управления параллельным выполнением.

Пессимистическое управленильным выполнением. Система блокировок не разрешает пользователям выполнить модификации, влияющие на других пользователей. Если пользователь выполнив м-либо действие, в результате которого установлена блокировка, то другим пользователям не удастся выполнять действия, конфликтую-

с установленной пока владелец не освободит ее. Этот процесс на-

зывается пессимистические чением. Он используется главным образом в средах, где высока конкуренция за данные.

Оптимистическое управление параллельным выполнением. При этом способе управления пользователи не блокируют данные при чтении. Во время обновления система следит, не изменил ли другой пользователь данные после их прочтения. Если другой пользователь модифицировал генерируется ошибка. Как правило, получивший ошибку транзакцию и повторяет операцию снова. Этот способ управления в основном ис в средах с низкой конкуренцией за данные. SQL Server поддерживает механизмы оптимистического и

кого управления параллельным выполнением. Пользователю предоставляется право определить тип управления параллельным установив уровень изоляции тран-для соединения и параметры параллельного выполнения для курсоров. Эти атрибуты задают посредством операторов или через свойства и атрибуты API например ADO, OLE DB и ODBC.

Во врем аций DBC DATABASE или DBCC SHRINKFILE SQL Server 2000 пытается немедленното со крат iTb размер физическото файла журнала до требуемого значения (с учетов ншО. если выполняются следующие условия:

в виртуальных журналах за отметкой targetsize нет частей логического журнала. Соот-

виртуальные высвобождаются, и оператор DBCC завершается

успешно, не выводя сообщений;

в виртуальных журналах кой targetsize располагаются части логического журнала, SQL Server 2000 максимально возможное место и выводит информационное сообщение. В нем п(;речислены действия, которые необходимо предпринять, чтобы убрать логический журнал из виртуальных файлов, расположенных в конце физического файла. Выполнив предложенное действие, можно повторно запустить оператор DBCC, чтобы освободить оставшееся место.

В показанном далее операторе команда DBCC SHRINKFILE используется для умень-щения файла TestDBLog в БД TestDB до размера в 1 Мб:

USE TestDB

GO -

ОВСС SHRINKFILE (TestDB Log, 1) .

GO .



1 ... 115 116 117 [ 118 ] 119 120 121 ... 162

© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика