Рассылка закрыта
При закрытии подписчики были переданы в рассылку "Вопросы и ответы по MS SQL Server" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
← Октябрь 2003 → | ||||||
1
|
2
|
3
|
4
|
5
|
||
---|---|---|---|---|---|---|
6
|
7
|
9
|
10
|
11
|
||
13
|
14
|
15
|
16
|
17
|
18
|
|
20
|
21
|
22
|
23
|
24
|
25
|
|
27
|
28
|
29
|
30
|
31
|
Статистика
-20 за неделю
MS SQL Server - дело тонкое...
Информационный Канал Subscribe.Ru |
#166<< #167 |
СОДЕРЖАНИЕ
Журнал транзакций SQL Server 2000 Автор: Ирина Наумова Основным назначением журнала транзакций (transaction log) является протоколирование всех транзакций и сделанных ими изменений. Таким образом, поддерживается целостность данных.
1.Создание Журнал транзакций создается при создании базы данных. Указать расположение журнала транзакций можно в команде CREATE DATABASE, используя ключевое слово LOG ON, например:
У базы данных всегда имеется как минимум один файл журнала транзакций, причем он создается, даже если не задан в
инструкции CREATE DATABASE. При этом его имя генерируется автоматически, а размер задается равным 25% суммы всех
файлов данных в базе. 1. При использовании CREATE DATABASE:
2. Используя ALTER TABLE
Для чего может понадобиться несколько журналов транзакций?
Для улучшения производительности и управляемости журнал транзакций физически разбивается на более мелкие блоки
- виртуальные журналы (Virtual Log Files - VLF). Минимальный размер виртуального журнала составляет 256 Кбайт,
тогда как размер самого журнала транзакций не может быть меньше 512 Кбайт (при этом он состоит из двух виртуальных
журналов). С увеличением размера журнала транзакций, соответственно происходит увеличение количества и размера
виртуальных журналов. Администратор не может регулировать размер и количество виртуальных журналов, они регулируются
динамически самим сервером и здесь большое влияние оказывает шаг прироста самого журнала транзакций. a) В T-SQL опцией FILEGROWTH в операторе ALTER DATABASE:
b) Через Enterprise Manager в окне Database Properties на вкладке Transaction Log.
Сервер старается поддерживать размер виртуальных журналов по возможности минимальным, поэтому следует внимательно
планировать шаг прироста журнала транзакций.
У каждого экземпляра SQL Server имеется адресное пространство, состоящее из двух основных компонентов: буферного
и не буферного пула. Буферный пул выделяет оперативную память порциями (или буферами) по 8 Кбайт и используется
это пространство для хранения страниц данных и индексов, которые SQL Server считывает с жесткого диска; кэша журнала
транзакций; планов исполнения запросов и хранимых процедур; системных конструкций, таких как таблица блокировок;
а также для информации пользовательских процессов. Рассмотрим порядок записи информации об изменениях в журнал транзакций.
Информация о транзакциях записывается последовательно во все виртуальные журналы, начиная с первого. После
заполнения первого, заполняется второй и так далее. Повторное использование освобожденных виртуальных журналов
происходит после заполнения последнего. Если свободных виртуальных журналов не осталось, происходит автоматическое
увеличение файла журнала транзакций на величину шага прироста. В случае если возможность автоматического прироста
размера журнала транзакций не реализована или на диске нет достаточно места для его увеличения, то сервер выдает
сообщение об ошибке. Чтобы разрешить эту проблему можно вручную увеличить размер файла журнала транзакций или
выполнить его усечение. Увеличить размер журнала можно в Enterprise Manager в окне свойств базы данных, на вкладке
Transaction Log, или с помощью команды Alter Database. Усечение журнала рассмотрим позже, в главе 4.
Процесс контрольной точки включает в себя выполнение следующих операций:
4. Усечение журнала транзакций
Если бы записи из журнала транзакций никогда не удалялись, то он бы рос пока не заполнил все пространство на диске,
на котором физически расположен. Поэтому, чтобы избежать подобной ситуации, журнал транзакций должен периодически
усекаться, т.е. старые записи, которые уже не понадобятся для восстановления базы данных, должны быть удалены,
чтобы освободившееся пространство можно было заново использовать. ![]() Рисунок 1. На рисунке 2 показано как будет выглядеть журнал транзакций после его усечения. Виртуальные журналы 1 и 2 очищаются, поскольку все транзакции, информация о которых в них записана, уже окончены и изменения сохранены на диске, об этом говорит то, что Min LSN находится в третьем виртуальном журнале. ![]() Рисунок 2.
Усечение не уменьшает размер физического файла журнала транзакций, оно только очищает виртуальные журналы для
обеспечения возможности повторного их использования. 5. Полное и минимальное протоколирование
Большинство операций в SQL Server, связанных с изменением данных, подробно протоколируются в журнале транзакций. Simple
При выборе модели Simple журнал транзакций усекается при выполнении операции контрольной точки, поэтому
резервирование журнала транзакций невозможно и восстановить базу данных можно только на момент последней
полной или дифференциальной копии. Кроме того, разрешены не регистрируемые операции, такие, как массовое
копирование. Full
Если используется модель восстановления Full, то журналированию подлежит каждая запись, вставленная BCP или BULK
INSERT. В журнале фиксируются все индексные операции, генерируемые командой CREATE INDEX, а также, максимально
журналируется вставка (WRITETEXT) и изменение (UPDATETEXT) полей таких типов как: Image и Text. Bulk-Logged
При выборе модели Bulk-Logged протоколирование массовых операций минимально. В модели Bulk-Logged при выполнении
массовой операции SQL Server регистрирует факт возникновения такой операции и фиксирует, в каких экстентах файлов
базы данных эта операция отражена.
01.
Журнал транзакций для "Чайников"
Статьи на русском языке
Управление памятью
Новые и обновлённые технические статьи Microsoft
HOW TO: Add SQL Serer 2000 Stored Procedures to Visual SourceSafe by Using Visual Studio .NET
Documenting Stored Procedures
Самые популярные темы недели
Новые упражнения на http://sql.ipps.ru
Перекачка данных с Oracle на MSSQL с помощью ActiveX Вновь открыт раздел Книги на SQL.RU Здесь Вы можете ознакомиться с Российскими изданиями по следующим темам: C#, C++, Datawarehouse, OLAP, Delphi, IBM DB2, Informix, Interbase, Java, Microsoft .NET, Microsoft Sql Server, MS Access, MySQL, Oracle, PostgreSQL, Visual Basic, Visual Fox Pro, Основы SQL и Проектирование БД. Информацию нам предоставляют: Озон, RusHall, Colibri, Bolero.
|
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||