Резервное копирование баз данных SQL Server 2005: параметры, команда BACKUP DATABASE, ограничения при резервном копировании
При проведении резервного копирования можно указать множество параметров. Эти параметры перечислены далее. Для каждого их них приведено название на графическом интерфейсе Management Studio и соответствующий синтаксис команды BACKUP . Окно резервного копирования в Management Studio можно открыть из контекстного меню Tasks | Backup для соответствующей базы данных. Другой вариант — воспользоваться контекстным меню для контейнера Server Objects | Backup Devices .
Параметры резервного копирования следующие:
q Database — это, конечно, имя базы данных, резервное копирование которой вы будете производить. В команде BACKUP указывается как BACKUP DATABASE имя_базы данных ;
q Recovery mode l (Режим восстановления) — это просто справочная информация о текущем режиме восстановления базы данных. Режим восстановления меняется из свойств базы данных;
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:SQLBackupsBackupFile1.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 в самых распространенных случаях. Чтобы провести обычное полное резервное копирование базы данных d b1 на диск, можно использовать команду вида:
BACKUP DATABASE db1 TO DISK = ‘D:SQLBackupsBackupFile1.bak’;
Чтобы произвести разностное резервное копирование той же базы данных, можно использовать команду:
BACKUP DATABASE db1 TO DISK = ‘D:SQLBackupsBackupFile1.bak’ WITH DIFFERENTIAL;
Команда на проведение резервного копирования журнала транзакций этой базы данных в самом простом варианте может выглядеть так:
BACKUP LOG db1 TO DISK = ‘D:SQLBackupsBackupFile1.bak’;
Еще раз напомним, что нужный скрипт для выполнения резервного копирования можно сгенерировать автоматически при помощи кнопки Script в Management Studio . Если воспользоваться пунктом Script Action to Job (Отскриптовать действие в задание) раскрывающегося меню для этой кнопки, то можно автоматически создать задание SQL Server Agent , которое будет выполнять резервное копирование по расписанию. Достаточно на вкладке Schedules (Расписания) свойств создаваемого задания настроить для него расписание, и задача автоматизации резервного копирования будет решена.
Поговорим также про ограничения, которые налагаются на базы данных при выполнении резервного копирования. В это время нельзя:
q создавать новые файлы базы данных и удалять старые;
q нельзя уменьшать размер существующих файлов.
Нельзя также производить резервное копирование базы данных, которая находится в автономном режиме ( offline ). Конечно, рекомендуется производить резервное копирование баз данных только в то время, когда нагрузка на сервер со стороны пользователей минимальна.
Если SQL Server используется как настольное приложение на компьютерах пользователей (такая ситуация встречается на предприятиях), то можно научить пользователей производить резервное копирование самостоятельно. Можно показать им возможности Management Studio или команду BACKUP , но проще всего научить их переводить базу данных в автономный режим и выполнять резервное копирование файлов баз данных и журналов транзакций просто при помощи копирования файлов средствами операционной системы.
ОБЛАСТЬ ПРИМЕНЕНИЯ: SQL Server
База данных SQL Azure
Azure Synapse Analytics (хранилище данных SQL)
Parallel Data Warehouse APPLIES TO:
SQL Server
Azure SQL Database
Azure Synapse Analytics (SQL DW)
Parallel Data Warehouse
В этом разделе описано, как задать срок хранения для устройства резервного копирования в среде SQL Server SQL Server с помощью среды SQL Server Management Studio SQL Server Management Studio или Transact-SQL Transact-SQL . This topic describes how to set the expiration date on a backup in SQL Server SQL Server by using SQL Server Management Studio SQL Server Management Studio or Transact-SQL Transact-SQL .
В этом разделе In This Topic
Перед началом работы Before you begin:
Задание срока хранения резервной копии с помощью: To set the expiration date on a backup, using:
Содержание
Перед началом Before You Begin
безопасность Security
Permissions Permissions
Разрешения BACKUP DATABASE и BACKUP LOG назначены по умолчанию членам предопределенной роли сервера sysadmin и предопределенным ролям базы данных db_owner и db_backupoperator . BACKUP DATABASE and BACKUP LOG permissions default to members of the sysadmin fixed server role and the db_owner and db_backupoperator fixed database roles.
Проблемы, связанные с владельцем и разрешениями у физических файлов на устройстве резервного копирования, могут помешать операции резервного копирования. Ownership and permission problems on the backup device’s physical file can interfere with a backup operation. SQL Server SQL Server должен иметь возможность считывать и записывать данные на устройстве; учетная запись, от имени которой выполняется служба SQL Server SQL Server , должна иметь разрешения на запись. must be able to read and write to the device; the account under which the SQL Server SQL Server service runs must have write permissions. Однако процедура sp_addumpdevice, добавляющая запись для устройства резервного копирования в системные таблицы, не проверяет разрешения на доступ к файлу. However, sp_addumpdevice, which adds an entry for a backup device in the system tables, does not check file access permissions. Проблемы физического файла устройства резервного копирования могут не проявляться до момента доступа к физическому ресурсу во время операции резервного копирования или восстановления. Such problems on the backup device’s physical file may not appear until the physical resource is accessed when the backup or restore is attempted.
Использование среды SQL Server Management Studio Using SQL Server Management Studio
Назначение срока хранения резервной копии To set the expiration date on a backup
После соединения с соответствующим экземпляром компонента Microsoft Microsoft Компонент SQL Server Database Engine SQL Server Database Engine в обозревателе объектов разверните дерево сервера, щелкнув его имя. After connecting to the appropriate instance of the Microsoft Microsoft Компонент SQL Server Database Engine SQL Server Database Engine , in Object Explorer, click the server name to expand the server tree.
Раскройте узел Базы данныхи в зависимости от типа восстанавливаемой базы данных выберите пользовательскую базу данных или раскройте узел Системные базы данных и выберите системную базу данных. Expand Databases, and, depending on the database, either select a user database or expand System Databases and select a system database.
Щелкните правой кнопкой мыши базу данных, выберите пункт Задачи, а затем команду Создать резервную копию. Right-click the database, point to Tasks, and then click Back Up. Откроется диалоговое окно Резервное копирование базы данных . The Back Up Database dialog box appears.
На странице Общие в поле Срок действия резервного набора данных истекаетукажите дату истечения срока, чтобы определить, когда резервный набор данных можно будет перезаписать другой резервной копией: On the General page, for Backup set will expire, specify an expiration date to indicate when the backup set can be overwritten by another backup:
Чтобы задать срок действия резервного набора данных, выберите пункт После (параметр по умолчанию) и введите срок действия набора в днях с момента его создания. To have the backup set expire after a specific number of days, click After (the default option), and enter the number of days after set creation that the set will expire. Это значение может быть задано в диапазоне от 0 до 99 999 дней. Значение 0 означает, что срок действия резервного набора данных не ограничен. This value can be from 0 to 99999 days; a value of 0 days means that the backup set will never expire.
Значение по умолчанию задается в параметре Срок хранения носителей резервных копий по умолчанию (дней): диалогового окна Свойства сервера (страницаПараметры базы данных ). The default value is set in the Default backup media retention (in days) option of the Server Properties dialog box (Database Settings page). Чтобы получить доступ к этому параметру, щелкните правой кнопкой мыши имя сервера в обозревателе объектов и выберите пункт "Свойства", а затем выберите страницу Настройки базы данных . To access this, right-click the server name in Object Explorer and select properties; then select the Database Settings page.
Чтобы указать дату истечения срока действия резервного набора данных, выберите пункт Наи введите дату истечения срока действия резервного набора данных. To have the backup set expire on a specific date, click On, and enter the date on which the set will expire.
Использование Transact-SQL Using Transact-SQL
Назначение срока хранения резервной копии To set the expiration date on a backup
Установите соединение с компонентом Компонент Database Engine Database Engine . Connect to the Компонент Database Engine Database Engine .
На панели «Стандартная» нажмите Создать запрос. From the Standard bar, click New Query.
В инструкции BACKUP укажите параметр EXPIREDATE или RETAINDAYS, чтобы определить, когда компоненту Компонент SQL Server Database Engine SQL Server Database Engine можно будет перезаписать резервную копию. In the BACKUP statement, specify either the EXPIREDATE or RETAINDAYS option to determine when the Компонент SQL Server Database Engine SQL Server Database Engine can overwrite the backup. Если ни один из этих параметров не указан, то срок хранения определяется параметром конфигурации media retention . If neither option is specified, the expiration date is determined by the media retention server configuration setting. В следующем примере параметр EXPIREDATE задает срок истечения хранения 30 июня 2015 г. ( 6/30/2015 ). This example uses the EXPIREDATE option to specify an expiration date of June 30, 2015 ( 6/30/2015 ).
Delphi site: daily Delphi-news, documentation, articles, review, interview, computer humor.
При проведении резервного копирования можно указать множество параметров. Эти параметры перечислены далее. Для каждого их них приведено название на графическом интерфейсе Management Studio и соответствующий синтаксис команды backup. Окно резервного копирования в Management Studio можно открыть из контекстного меню Tasks | Backup для соответствующей базы данных. Другой вариант — воспользоваться контекстным меню для контейнера Server Objects | Backup Devices.
Параметры резервного копирования следующие:
□ Database — это, конечно, имя базы данных, резервное копирование которой вы будете производить. В команде backup указывается как backup DATABASE имя_базы данных;
□ Recovery model (Режим восстановления) — это просто справочная информация о текущем режиме восстановления базы данных. Режим восстановления меняется из свойств базы данных;
□ Backup type (Тип резервного копирования) — тип резервного копирования. Для полного или разностного резервного копирования используется команда backup database (для разностного еще указывается параметр with differential), для резервного копирования журнала транзакций — команда backup log. Обратите внимание, что в скрипте вы можете также указать параметр with copy_only, который определяет копирующий режим (см. разд. 6.2.3). На графическом экране вы его выбрать не сможете;
□ Backup component (Компонент для резервного копирования) — позволяет выбрать резервное копирование всей базы данных или отдельных файловых групп (отдельных файлов). В команде backup для указания файлов или файловых групп используются ключевые слова file и filegroup, например:
BACKUP DATABASE db1 FILEGROUP = ‘PRIMARY’ TO DISK =
□ Backup set name (Имя резервной копии) — имя резервной копии (backup set — это набор носителей, которые относятся к одной резервной копии). В команде backup указывается параметр name. Получить информацию об имени резервной копии можно при помощи кнопки Contents (Содержимое) на том же экране или при помощи команды restore headeronly;
□ Description (Описание) — описание резервной копии. Указывается при помощи параметра description. Просмотреть можно так же, как и имя резервной копии;
□ Backup set will expire (Резервная копия устареет) — позволяет указать срок (дату), после которой резервная копия будет считаться устаревшей и будет автоматически перезаписываться SQL Server. Значение 0 этого параметра означает, что копия никогда не будет считаться устаревшей. В команде backup для указания срока/даты устаревания используются параметры retaindays (сколько времени сохранять) и expiredate (дата устаревания).
Конечно, при помощи этого параметра вы определяете только возможное поведение SQL Server. Вы вполне можете принудительно перезаписать копию, которая не успела устареть, или не перезаписывать никакие копии (так ведет себя SQL Server по умолчанию);
□ Destination (Назначение) — место назначения резервной копии в виде файла на диске, стриммера или логического устройства резервного копирования (см. разд. 6.2.2). Можно указать несколько назначений одновре менно (но только одного типа). В этом случае запись резервной копии будет производиться параллельно в несколько файлов или на несколько стриммеров для повышения производительности. Конечно, при восстановлении данных вам понадобятся все части резервной копии, созданной таким образом. В команде backup для указания файла на диске используется ключевое слово to disk; а для указания стриммера — to tape.
Если вы используете команду backup, а не графический интерфейс, то в вашем распоряжении еще одна возможность: при помощи ключевого слова mirror to можно указать файл, стриммер или логическое устройство, на котором будет создаваться второй экземпляр вашей резервной копии (полностью идентичный первому). Такое зеркалирование при создании резервных копий используется, конечно, для повышения надежности резервного копирования. Это новая возможность SQL Server 2005;
□ 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. В отличие от большинства других паро лей этот пароль не используется для защиты данных. Данные не шифруются, а при восстановлении резервной копии на другой сервер этот пароль вообще спрашиваться не будет. Единственное назначение такого пароля — защита от перезаписи важных резервных копий и ошибочных восстановлений. Перезаписать резервную копию, защищенную паролем или использовать ее для восстановления на том же сервере будет невозможно, пока вы не введете правильный пароль. На графическом интерфейсе задать пароль для резервной копии нельзя;
□ Verify backup then finished (Проверить резервную копию после завершения) — проверка целостности резервной копии после завершения резервного копирования. Проверяются размер, структура заголовка и соответствие контрольной сумме (если она была записана). Если запись производилась на стриммер, на проверку может потребоваться время, сопоставимое с самим резервным копированием.
Никакой параметр команды backup этому параметру не соответствует. Вместо этого после окончания резервного копирования нужно будет выполнить команду RESTORE VERIFYONLY;
□ Perform checksum before writing to media (Выполнять проверку контрольной суммы перед записью на носитель) — при установке этого параметра SQL Server будет, во-первых, проверять контрольную сумму (или контрольный бит) для каждой страницы базы данных, а во-вторых, записывать свои контрольные суммы для резервной копии. Этому параметру соответствует ключевое слово checksum в команде backup. В предыдущих версиях SQL Server такого параметра не было;
□ Continue on error (Продолжать при возникновении ошибки) — параметр, определяющий продолжать или нет резервное копирование, если при проверке контрольных сумм в базе данных были обнаружены ошибки. Соответствует параметру continue_after_error. По умолчанию используется параметр stop_after_error — при обнаружении подобных ошибок резервное копирование останавливается;
□ Truncate the transaction log (Очищать журнал транзакций) — переключатель устанавливается в это значение по умолчанию, если вы производите резервное копирование журнала транзакций. Он означает "очистить журнал транзакций после резервного копирования". Поскольку этот режим используется по умолчанию, то в команде backup log ему ничего не соответствует;
□ Back up the tail of the log, and leave the database in the restoring state
(Провести резервное копирование остатка журнала и оставить базу данных в режиме восстановления) — этому значению переключателя соот ветствуют параметры notruncate (не очищать журнал) и norecovery (без восстановления) в команде backup log. Они означают "произвести резервное копирование журнала без его очистки и перевести базу данных в состояние restoring" (при этом она станет недоступной для пользователей). Такой режим используется только в ситуации, когда для ваших серверов настроена автоматическая передача журналов транзакций (log shipping), и вы хотите поменять ролями главный и резервный серверы;
□ Unload the tape after backup (Выгружать ленту после резервного копирования) — соответствует параметру unload команды backup. При использовании этого параметра по окончании резервного копирования картридж автоматически извлекается из стриммера (очень удобно в качестве сигнала об окончании). Этот параметр устанавливается по умолчанию при использовании стриммера. Запретить автоматическое извлечение можно при помощи параметра nounload;
□ Rewind the tape before unloading (Перемотать ленту перед выгрузкой) — соответствует параметру rewind и устанавливается по умолчанию. Перед извлечением картридж стриммера будет перемотан на начало. Запретить перемотку можно при помощи параметра norewind.
В SQL Server 2005 появилась новая команда, которая позволяет просто перемотать ленту в картридже на начало, не выполняя других операций: restore rewindonly.
Далее представлено еще несколько параметров резервного копирования, которые можно использовать в команде backup, но которым нет аналогов на графическом экране:
□ blocksize — позволяет указать оптимальный размер блока для стриммера. Параметр необязательный и влияет только на производительность (в некоторых ситуациях);
□ stats — через сколько процентов от общего объема резервного копирования будут выдаваться информационные сообщения. По умолчанию — через каждые 10%;
□ copy_only — копирующий тип резервного копирования (см. разд. 6.2.3);
□ restart — в предыдущих версиях SQL Server этот параметр позволял продолжить приостановленную операцию резервного копирования (например, после вставки нового картриджа, когда на старом закончилось место). В SQL Server 2005 этот параметр игнорируется;
□ read_write_filegroups — задает резервное копирование только файловых групп, доступных для записи (открытые только на чтение будут игнорироваться).
В команде backup log доступны еще несколько важных параметров, которых нет на графическом экране:
□ standby — используется вместо norecovery в той же ситуации. Отличается тем, что база данных для пользователей будет открыта только на чтение, т. е. в режиме standby;
□ no_log и truncate_only (эти ключевые слова являются синонимами) — используются для очистки журнала транзакций без проведения резервного копирования. Обычно используются тогда, когда место в журнале транзакций внезапно закончилось, и вам нужно как можно быстрее обеспечить пользователям возможность нормальной работы.
Приведем несколько примеров команды backup в самых распространенных случаях. Чтобы провести обычное полное резервное копирование базы данных dbl на диск, можно использовать команду вида:
BACKUP DATABASE dbl TO DISK = ‘D:SQLBackupsBackupFile1.bak’;
Чтобы произвести разностное резервное копирование той же базы данных, можно использовать команду:
BACKUP DATABASE db1 TO DISK = ‘D:SQLBackupsBackupFile1.bak’
Команда на проведение резервного копирования журнала транзакций этой базы данных в самом простом варианте может выглядеть так:
BACKUP LOG db1 TO DISK = ‘D:SQLBackupsBackupFile1.bak’;
Еще раз напомним, что нужный скрипт для выполнения резервного копирования можно сгенерировать автоматически при помощи кнопки Script в Management Studio. Если воспользоваться пунктом Script Action to Job (От-скриптовать действие в задание) раскрывающегося меню для этой кнопки, то можно автоматически создать задание SQL Server Agent, которое будет выполнять резервное копирование по расписанию. Достаточно на вкладке Schedules (Расписания) свойств создаваемого задания настроить для него расписание, и задача автоматизации резервного копирования будет решена.
Поговорим также про ограничения, которые налагаются на базы данных при выполнении резервного копирования. В это время нельзя:
□ создавать новые файлы базы данных и удалять старые;
□ нельзя уменьшать размер существующих файлов.
Нельзя также производить резервное копирование базы данных, которая находится в автономном режиме (offline). Конечно, рекомендуется производить резервное копирование баз данных только в то время, когда нагрузка на сервер со стороны пользователей минимальна.
Если SQL Server используется как настольное приложение на компьютерах пользователей (такая ситуация встречается на предприятиях), то можно научить пользователей производить резервное копирование самостоятельно. Можно показать им возможности Management Studio или команду backup, но проще всего научить их переводить базу данных в автономный режим и выполнять резервное копирование файлов баз данных и журналов транзакций просто при помощи копирования файлов средствами операционной системы.