Академия Специальных Курсов по Компьютерным Технологиям
    Главная страница Послать письмо
 
AskIt.ru  
   
   
   
   
   
   
 
 
  Главная / Заказные курсы / Microsoft SQL Server 2005 для администраторов
 
 

Получить учебные материалы по этому курсу


<-- Назад Читать дальше -->

6.3.2. Параметры резервного копирования

Резервное копирование баз данных SQL Server 2005: параметры, команда BACKUP DATABASE, ограничения при резервном копировании

При проведении резервного копирования можно указать множество параметров. Эти параметры перечислены далее. Для каждого их них приведено название на графическом интерфейсе Management Studio и соответствующий синтаксис команды BACKUP. Окно резервного копирования в Management Studio можно открыть из контекстного меню Tasks | Backup для соответствующей базы данных. Другой вариант — воспользоваться контекстным меню для контейнера Server Objects | Backup Devices.

Параметры резервного копирования следующие:

q      Database — это, конечно, имя базы данных, резервное копирование которой вы будете производить. В команде BACKUP указывается как BACKUP DATABASE имя_базы данных;

q      Recovery model (Режим восстановления) — это просто справочная информация о текущем режиме восстановления базы данных. Режим восстановления меняется из свойств базы данных;

q      Backup type (Тип резервного копирования) — тип резервного копирования. Для полного или разностного резервного копирования используется команда BACKUP DATABASE (для разностного еще указывается параметр WITH DIFFERENTIAL), для резервного копирования журнала транзакций — команда BACKUP LOG. Обратите внимание, что в скрипте вы можете также указать параметр WITH COPY_ONLY, который определяет копирующий режим (см. разд. 6.2.3). На графическом экране вы его выбрать не сможете;

q      Backup component (Компонент для резервного копирования) — позволяет выбрать резервное копирование всей базы данных или отдельных файловых групп (отдельных файлов). В команде BACKUP для указания файлов или файловых групп используются ключевые слова FILE и FILEGROUP, например:

BACKUP DATABASE db1 FILEGROUP = 'PRIMARY' TO DISK = 'D:\SQLBackups\BackupFile1.bak';

q      Backup set name (Имя резервной копии) — имя резервной копии (backup set — это набор носителей, которые относятся к одной резервной копии). В команде BACKUP указывается параметр NAME. Получить информацию об имени резервной копии можно при помощи кнопки Contents (Содержимое) на том же экране или при помощи команды RESTORE HEADERONLY;

q      Description (Описание) — описание резервной копии. Указывается при помощи параметра DESCRIPTION. Просмотреть можно так же, как и имя резервной копии;

q      Backup set will expire (Резервная копия устареет) — позволяет указать срок (дату), после которой резервная копия будет считаться устаревшей и будет автоматически перезаписываться SQL Server. Значение 0 этого параметра означает, что копия никогда не будет считаться устаревшей. В команде BACKUP для указания срока/даты устаревания используются параметры RETAINDAYS (сколько времени сохранять) и EXPIREDATE (дата устаревания).

Конечно, при помощи этого параметра вы определяете только возможное поведение SQL Server. Вы вполне можете принудительно перезаписать копию, которая не успела устареть, или не перезаписывать никакие копии (так ведет себя SQL Server по умолчанию);

q      Destination (Назначение) — место назначения резервной копии в виде файла на диске, стриммера или логического устройства резервного копирования (см. разд. 6.2.2). Можно указать несколько назначений одновременно (но только одного типа). В этом случае запись резервной копии будет производиться параллельно в несколько файлов или на несколько стриммеров для повышения производительности. Конечно, при восстановлении данных вам понадобятся все части резервной копии, созданной таким образом. В команде BACKUP для указания файла на диске используется ключевое слово TO DISK, а для указания стриммера — TO TAPE.

Если вы используете команду BACKUP, а не графический интерфейс, то в вашем распоряжении еще одна возможность: при помощи ключевого слова MIRROR TO можно указать файл, стриммер или логическое устройство, на котором будет создаваться второй экземпляр вашей резервной копии (полностью идентичный первому). Такое зеркалирование при создании резервных копий используется, конечно, для повышения надежности резервного копирования. Это новая возможность SQL Server 2005;

q      Overwrite media (Перезаписать носитель) — параметры (на графическом экране они расположены на вкладке Options), позволяющие определить режим перезаписи носителя (файла на диске или магнитной ленты). В вашем распоряжении следующие варианты:

·                Append to the existing media set (Добавить к существующему набору носителя). Соответствует параметрам NOFORMAT (не перезаписывать заголовок носителя) и NOINIT (не перезаписывать старую резервную копию);

·                Overwrite all existing backup sets (Перезаписать все существующие наборы носителя). Соответствует параметрам NOFORMAT и INIT (заголовок носителя сохранится, но все старые резервные копии будут перезаписаны);

·                Check media set name and backup set expiration (Проверить имя набора носителей и устаревание резервной копии). Соответствует параметрам NOFORMAT, INIT, NOSKIP (перезапись будет произведена только в том случае, если имя резервной копии совпадает с существующей на носителе, но существующая резервная копия устарела);

·                Backup to a new media set, and erase all existing backup sets (Произвести резервное копирование на новый набор носителей, и удалить все существующие резервные копии). Соответствует параметрам FORMAT, INIT, SKIP (независимо от заголовков и времени устаревания существующей резервной копии носитель (лента или файл) будут полностью перезаписаны, включая заголовок).

При использовании команды BACKUP у вас есть еще одна возможность контролировать перезапись — определение пароля для резервной копии при помощи параметра MEDIAPASSWORD. В отличие от большинства других паролей этот пароль не используется для защиты данных. Данные не шифруются, а при восстановлении резервной копии на другой сервер этот пароль вообще спрашиваться не будет. Единственное назначение такого пароля — защита от перезаписи важных резервных копий и ошибочных восстановлений. Перезаписать резервную копию, защищенную паролем или использовать ее для восстановления на том же сервере будет невозможно, пока вы не введете правильный пароль. На графическом интерфейсе задать пароль для резервной копии нельзя;

q      Verify backup then finished (Проверить резервную копию после завершения) — проверка целостности резервной копии после завершения резервного копирования. Проверяются размер, структура заголовка и соответствие контрольной сумме (если она была записана). Если запись производилась на стриммер, на проверку может потребоваться время, сопоставимое с самим резервным копированием.

Никакой параметр команды BACKUP этому параметру не соответствует. Вместо этого после окончания резервного копирования нужно будет выполнить команду RESTORE VERIFYONLY;

q      Perform checksum before writing to media (Выполнять проверку контрольной суммы перед записью на носитель) — при установке этого параметра SQL Server будет, во-первых, проверять, контрольную сумму (или контрольный бит) для каждой страницы базы данных, а, во-вторых, записывать свои контрольные суммы для резервной копии. Этому параметру соответствует ключевое слово CHECKSUM в команде BACKUP. В предыдущих версиях SQL Server такого параметра не было;

q      Continue on error (Продолжать при возникновении ошибки) — параметр, определяющий продолжать или нет резервное копирование, если при проверке контрольных сумм в базе данных были обнаружены ошибки. Соответствует параметру CONTINUE_AFTER_ERROR. По умолчанию используется параметр STOP_AFTER_ERROR — при обнаружении подобных ошибок резервное копирование останавливается;

q      Truncate the transaction log (Очищать журнал транзакций) — переключатель устанавливается в это значение по умолчанию, если вы производите резервное копирование журнала транзакций. Он означает "очистить журнал транзакций после резервного копирования". Поскольку этот режим используется то умолчанию, то в команде BACKUP LOG ему ничего не соответствует;

q      Back up the tail of the log, and leave the database in the restoring state (Провести резервное копирование остатка журнала и оставить базу данных в режиме восстановления) — этому значению переключателя соответствуют параметры NOTRUNCATE (не очищать журнал) и NORECOVERY (без восстановления) в команде BACKUP LOG. Они означают "произвести резервное копирование журнала без его очистки и перевести базу данных в состояние RESTORING" (при этом она станет недоступной для пользователей). Такой режим используется только в ситуации, когда для ваших серверов настроена автоматическая передача журналов транзакций (log shipping), и вы хотите поменять ролями главный и резервный серверы;

q      Unload the tape after backup (Выгружать ленту после резервного копирования) — соответствует параметру UNLOAD команды BACKUP. При использовании этого параметра по окончании резервного копирования картридж автоматически извлекается из стриммера (очень удобно в качестве сигнала об окончании). Этот параметр устанавливается по умолчанию при использовании стриммера. Запретить автоматическое извлечение можно при помощи параметра NOUNLOAD;

q      Rewind the tape before unloading (Перемотать ленту перед выгрузкой) — соответствует параметру REWIND и устанавливается по умолчанию. Перед извлечением картридж стриммера будет перемотан на начало. Запретить перемотку можно при помощи параметра NOREWIND.

В SQL Server 2005 появилась новая команда, которая позволяет просто перемотать ленту в картридже на начало, не выполняя других операций: RESTORE REWINDONLY.

Далее представлено еще несколько параметров резервного копирования, которые можно использовать в команде BACKUP, но которым нет аналогов на графическом экране:

q      BLOCKSIZE — позволяет указать оптимальный размер блока для стриммера. Параметр необязательный и влияет только на производительность (в некоторых ситуациях);

q      STATS — через сколько процентов от общего объема резервного копирования будут выдаваться информационные сообщения. По умолчанию — через каждые 10%;

q      COPY_ONLY — копирующий тип резервного копирования (см. разд. 6.2.3);

q      RESTART — в предыдущих версиях SQL Server этот параметр позволял продолжить приостановленную операцию резервного копирования (например, после вставки нового картриджа, когда на старом закончилось место). В SQL Server 2005 этот параметр игнорируется;

q      READ_WRITE_FILEGROUPS — задает резервное копирование только файловых групп, доступных для записи (открытые только на чтение будут игнорироваться).

В команде BACKUP LOG доступны еще несколько важных параметров, которых нет на графическом экране:

q      STANDBY — используется вместо NORECOVERY в той же ситуации. Отличается тем, что база данных для пользователей будет открыта только на чтение, т. е. в режиме STANDBY;

q      NO_LOG и TRUNCATE_ONLY (эти ключевые слова являются синонимами) — используются для очистки журнала транзакций без проведения резервного копирования. Обычно используются тогда, когда место в журнале транзакций внезапно закончилось, и вам нужно как можно быстрее обеспечить пользователям возможность нормальной работы.

Приведем несколько примеров команды BACKUP в самых распространенных случаях. Чтобы провести обычное полное резервное копирование базы данных db1 на диск, можно использовать команду вида:

BACKUP DATABASE db1 TO DISK = 'D:\SQLBackups\BackupFile1.bak';

Чтобы произвести разностное резервное копирование той же базы данных, можно использовать команду:

BACKUP DATABASE db1 TO DISK = 'D:\SQLBackups\BackupFile1.bak' WITH DIFFERENTIAL;

Команда на проведение резервного копирования журнала транзакций этой базы данных в самом простом варианте может выглядеть так:

BACKUP LOG db1 TO DISK = 'D:\SQLBackups\BackupFile1.bak';

Еще раз напомним, что нужный скрипт для выполнения резервного копирования можно сгенерировать автоматически при помощи кнопки Script в Management Studio. Если воспользоваться пунктом Script Action to Job (Отскриптовать действие в задание) раскрывающегося меню для этой кнопки, то можно автоматически создать задание SQL Server Agent, которое будет выполнять резервное копирование по расписанию. Достаточно на вкладке Schedules (Расписания) свойств создаваемого задания настроить для него расписание, и задача автоматизации резервного копирования будет решена.

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

q      создавать новые файлы базы данных и удалять старые;

q      нельзя уменьшать размер существующих файлов.

Нельзя также производить резервное копирование базы данных, которая находится в автономном режиме (offline). Конечно, рекомендуется производить резервное копирование баз данных только в то время, когда нагрузка на сервер со стороны пользователей минимальна.

Если SQL Server используется как настольное приложение на компьютерах пользователей (такая ситуация встречается на предприятиях), то можно научить пользователей производить резервное копирование самостоятельно. Можно показать им возможности Management Studio или команду BACKUP, но проще всего научить их переводить базу данных в автономный режим и выполнять резервное копирование файлов баз данных и журналов транзакций просто при помощи копирования файлов средствами операционной системы.

 

   
   
   
   
   
   
   
   
   
   
 
<-- Назад Читать дальше -->

Получить учебные материалы по этому курсу


 
© 2004-2008, Академия Специальных Курсов
по Информационным Технологиям
.
Все права защищены.

Разработка NevaStudio
г. Санкт-Петербург, Васильевский остров,
20-я линия, д. 7
Офис 101, 2-й этаж
Телефон: 8(812)922-47-60
E-mail: info@askit.ru