Cтраница 3
![]() |
MSsubscriber status ( продолжение. [31] |
Как было показано выше, SQL-сервер использует журнал транзакций сервера-издателя в качестве источника всей информации тиражирования. Когда этот процесс находит транзакцию, оказывающую воздействие на таблицу, которая была отмечена для тиражирования, он дублирует внесенное изменение в базе данных распределения. Этот процесс автоматически стартует вместе с запуском SQL-сервера и не требует управления. [32]
Этот показатель отображает текущее состояние свободного пространства журнала транзакций. С помощью такой статистики видно, насколько журнал транзакций близок к заполнению. [33]
Учтите, что при отображении только устройства журнала транзакций в случае сбоя устройства данных вся информация, содержащаяся в таблицах, будет потеряна. [34]
Следит с помощью базы данных за общим размером журнала транзакций и за тем, сколько пространства диска доступно в этом журнале в данный момент. [35]
Во время процесса контрольной точки SQL-сервер синхронизирует содержимое журнала транзакций с базовыми данными. После выполнения процесса контрольной точки информация таблиц отображает все транзакции, завершенные до начала этой контрольной точки. Контрольные точки обсуждаются в этой главе; ознакомьтесь с тем, как протоколирование транзакций взаимосвязано с контрольными точками. [36]
Рассмотрим ряд примеров и решим, когда следует размещать журнал транзакций в отдельном устройстве, а когда - нет. [37]
Как было сказано выше, не следует допускать переполнения журнала транзакций. [38]
До тех пор пока не будет выполнено резервное копирование журнала транзакций, система останавливается. Администратор сбит с толку - пока не был добавлен столбец image content, такого сообщения не выдавалось. Все дело во влиянии, которое оказывают на журнал транзакций столбцы типов TEXT и IMAGE. В таких столбцах может содержаться до двух Гбайтов информации. Если ее регистрировать, то журнал транзакций быстро переполнится, а SQL-сервер не сможет продолжить работу при заполненном журнале транзакций. Этот журнал эпизодически заполняется из-за большого числа активных пользователей, а также в результате выполнения этими пользователями определенных задач. Вполне возможно, что, если бы рабочая нагрузка была чуть меньше, такого сообщения об ошибке ни один из пользователей не получил бы. Тем не менее нужно исправить сложившуюся ситуацию. [39]
Механизм корректного отката и фиксации транзакций основан на использовании журнала транзакций. Для того чтобы иметь возможность сделать откат, СУБД должна сохранять все изменения, которые транзакция внесла в БД. [40]
Поэтому иногда требуется как можно быстрее повторно использовать пространство журнала транзакций. Это можно сделать при помощи опции Truncate log on checkpoint, указав SQL-серверу на необходимость всегда усекать журнал транзакций после выполнения процесса контрольной точки ( checkpoint) / Когда SQL-сервер усекает журнал, освобождается все пространство вплоть до страницы, где содержится информация о последней открытой ( но не завершенной или не отмененной) транзакции. Учтите, что это произойдет только в том случае, если контрольная точка выполняется автоматически; если же это запрашивается при помощи оператора CHECKPOINT, журнал не усекается, независимо от установленного параметра конфигурации. [41]
При получении этого сообщения необходимо либо выгрузить, либо усечь журнал транзакций. [42]
Это значительно повышает быстродействие, а также экономит дисковое пространство журнала транзакций. [43]
Кроме того, здесь запрограммировано, что оповещение будет выполнять программу выгрузки журнала транзакций, если SQL-сервер обнаружит превышение указанного порога. [44]
Рекомендуется выполнять резервное копирование базы данных master до и после увеличения размера журнала транзакций; это защитит систему в случае возникновения каких-то трудностей после изменения размера журнала. [45]