Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Артемов Д.В. -> "Microsoft SQL Server 2000" -> 43

Microsoft SQL Server 2000 - Артемов Д.В.

Артемов Д.В. Microsoft SQL Server 2000 — М.: Издательско-торговый дом «Русская Редакция», 2001. — 576 c.
ISBN 5-7502-0154-6
Скачать (прямая ссылка): artemov.pdf
Предыдущая << 1 .. 37 38 39 40 41 42 < 43 > 44 45 46 47 48 49 .. 187 >> Следующая


При создании полной копии базы данных сохраняются:

• любые действия над БД, имевшие место в процессе копирования;

• все незафиксированные транзакции, отмеченные в журнале;

• участки журнала транзакций, сохраненные в копии, — они гарантируют целостность восстановленных данных.

www.books-shop.com

ГЛАВА .!Управление сервером

Дифференциальная копия

Дифференциальная копия (Differential Backup) создается быстрее, чем полная; быстрее идет и восстановление. Дифференциальная копия подходит для копирования часто модифицируемой БД, создавайте ее, только если есть полная копия. Для создания дифференциальной копии команда BACKUP включает специальное предложение DIFFERENTIAL:

BACKUP DATABASE {database_rame | @database„name_var>

TO <backup_f ile> [, . . . n]

[WITH

[[, ] DIFFERENTIAL]

]

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

Копия журнала транзакций

Копия журнала транзакций сохраняет все изменения в БД.

BACKUP LOG {database_name | @>daLabase_name_var}

ТО <backup_file> [, ...n]

[WITH

[[,] {INiT I NOINIT}]

[[,] [NAME = {backup_set_name | @backiip_set_name_var}]

]

Копия журнала транзакций может быть использована только в сочетании с полной копией БД. Журнал транзакций восстанавливается поверх восстановленной полной базы.

Как SOL Server копирует журнал транзакций

При создании копии SQL Server копирует журнал с последнего удачно выполненного выражения BACKUP LOG до конца текущего журнала. Затем сервер урезает журнал до активной его части, начинающейся от самой старой незавершенной транзакции и продолжающейся до конца журнала.

www.books-shop.com

11

Microsoft SQL Server 2000, Новейшие технологии

У команды BACKUP LOG двойное назначение: она применяется как для управления журналом, так и для создания копий. Чтобы поддерживать объем журнала в разумных пределах, периодически создавайте копию. Если даже после создания копии он занимает слишком много места, у сервера скорее всего очень старая открытая транзакция. При заполненном журнале транзакций пользователи не смогут нормально работать с БД, а Вы — успешно восстановить БД после сбоя. Журнал надо очистить, создав полную копию базы или урезав его.

BACKUP LOG {database_name | @database_name_var} ТО <backup_file> [, ...n]

[WITH {TRUNCATEONLY | NCLLOG N0_TRUNCATE>]

TRUNCATE.ONLY

Очистить журнал транзакций, не создавая страховочной копии, можно, задав аргумент TRUNCATEONLY — SQL Server удалит неактивную часть журнала, освободив в нем место. Если очистить журнал перед созданием полной копии БД, страховочная копия займет меньше места. Очищенный журнал не годится для восстановления БД — рекомендуется сразу создать полную копию БД. При катастрофическом наполнении журнала задайте аргумент NOLOG.

NO_LOG

Используйте этот аргумент, только если журнал транзакций настолько полон, что не позволяет выполнить команду BACKUP LOG с аргументом TRUNCATEONLY. При этом неактивная часть журнала урезается, а сама операция в нем не регистрируется (места-то нет). Так как журнал не может более использоваться для восстановления БД после сбоев, немедленно создайте полную копию БД.

NOJRUNCATE

Используется, если файлы БД повреждены или утеряны. SQL Server сохраняет весь журнал транзакций (все, что произошло с момента последней команды BACKUP LOG), даже если доступ к самой базе невозможен. При этом SQL Server не очищает журнал транзакций (в отли-чиє от аргументов WITH TRUNCATE ONLY или WITH NO LOG). Копия позволяет восстановить данные вплоть до момента сбоя.

Страховочная копия файла или группы файлов базы данных В главе 3 я расскажу об архитектуре хранения данных SQL Server 2000. Пока же отмечу, что БД состоит из одного или более файлов, которые можно объединить в группы. Соответственно изменениям архи-

2

www.books-shop.com

ГЛАВА 2: Управление сервером

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

BACKUP DATABASE {database_name | @database_name_var}

[<file_or_filegroup> [,...m]] TO <backup_f~ile> [, ...n]]

Где <file_or_filegroup>:

{FILE = logical_fil(;_name | FILEGROUP = logical_filegroup_name

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

Помимо индивидуальных файлов, регулярно копируйте журнал транзакций, чтобы при восстановлении файла из копии Вы могли восстановить целостность базы. Копируя индивидуальные файлы или группы, в команде создания копии можно указать неограниченное число имен (версия 7.0 позволяла указывать не более 16).
Предыдущая << 1 .. 37 38 39 40 41 42 < 43 > 44 45 46 47 48 49 .. 187 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100