|
Программирование >> Программирование баз данных
Создание устройства резервного копирования с использованием средств языка T-SQL Задача создания устройства резервного копирования с использованием средств языка T-SQL в современной версии SQL Server остается почти такой же несложной, как и в предыдущих версиях, в которых резервная копия все еще называлась дампом. Таким образом, помен5и1ась в основном только терминология и теперь дамп именуется резервной копией. Для создания устройства резервного копирования используется существующая хранимая процедура sp adddumpdevice. Для вызова хранимой процедуры sp add operator применяется следующий синтаксис: sp addumpdevice [@devtype =] <type>, [©logicalname =] <logical name>, [©physicalname =] <physical name> Параметр type этой хранимой процедуры принимает одно из следующрсс значений. Disk. Жесткий диск локального компьютера. Таре. Накопитель на магнитной ленте. В качестве параметра <logical name> используется имя, которое должно быть указано в операторах BACKUP и RESTORE, рассматриваемых ниже. Параметр <physical name> обозначает либо имя накопителя на магнитной ленте (который должен представлять собой один из накопителей на локальном сервере), либо физический путь к дисковому тому, на котором должна быть записана резервная копия. В качестве примера рассмотрим, как создать устройство резервного копирования TSQLBackupDevice: EXEC sp addumpdevice DISK, TSQLBackupDevice, C:\Program Files\Microsoft SQL Server\MSSQL.l\MSSQL\BACKUP\TSQLBackupDevice.bak Ha этом выполнение рассматриваемой задачи заканчивается. Резервное копирование с использованием средств языка T-SQL Для получения резервной копии базы данных или журнала с помощью средств языка T-SQL предназначена команда BACKUP. Синтаксическая структура вызова команды BACKUP остается почти одинаковой, но немного изменяется в зависимости от того, выполняется ли резервное копирование базы данных или журнала. Эта команда имеет следующий синтаксис: BACKUP database!LOG <database name> {WITH NO LOGITRUNCATE ONLY} I TO <backup device> [,...n] [WITH [BLOCKSIZE = <block size>] ,] CHECKSUM I NO CHECKSUM ] ,] STOP ON ERROR CONTINUE AFTER ERROR ] ,] DESCRIPTION = <description>] ,] DIFFERENTIAL] ,] EXPIREDATE = <expiration date> RETAINDAYS = <days>] ,] PASSWORD = <password>] ,] FORMAT INOFORMAT] ,] INITN0INIT] ,] MEDIADESCRIPTION = <description>] ,] MEDIANAME = <media name>] ] MEDIAPASSWORD = <media password>] 3 [NAME = <backup set name>] ] REWIND NOREWIND ] ] NOSKIP SKIP] ] NOUNLOADI UNLOAD] ] RESTART] ] STATS [= <percentage>]] ] COPY ONLY] Рассмотрим некоторые параметры данной команды. <baclcup device>. Назначение этого параметра соответствует его имени; кроме того, он позволяет создать резервную копию больше чем на одном устройстве. При этом создается так называемый набор резервного копирования. Распределение набора резервного копирования по нескольким жестким дискам позволяет ускорить создание резервной копии, поскольку при этом операции ввода-вывода выполняются параллельно, а это означает, что не существует ограничений, обусловленных характеристиками ввода-вывода отдельных устройств. Однако следует учитывать, что если резервная копия создана таким образом, то при восстановлении необходимо иметь в своем распоряжении весь набор резервного копирования. BLOCKSIZE. Этот параметр определяет размер блока и устанавливается автоматически при резервном копировании на жесткий диск, а что касается магнитной ленты, то в качестве этого параметра должно быть задано правильное значение размера блока; для получения этой информации следует обратиться к поставщику накопителя на магнитной ленте. DIFFERENTIAL. Этот параметр применяется при выполнении дифференциального резервного копирования. При дифференциальном резервном копировании происходит резервирование только тех данных, которые изменились со времени получения последней полной резервной копии. Содержимое любых журналов или других дифференциальных резервных копий игнорируется, поэтому в новую резервную копию включаются данные обо всех строках/столбцах, измененных, добавленных или удаленных после получения последней полной резервной копии. Преимуществом дифференциального резервного копирования является то, что при его использовании создание копий происходит намного быстрее по сравнению с полным резервным копированием, а для восстановления требуется намного меньше времени, чем при восстановлении с применением каждого отдельного журнала. EXPIREDATE/RETAINDAYS. Этот параметр позволяет указать, что срок действия резервной копии истекает через определенное время. На основании этой информации СУБД SQL Server может определить, с какого момента могут быть перезаписаны ранее созданные резервные копии. FORMAT/NO FORMAT. Этот параметр определяет, следует ли перезаписывать заголовок носителя (который требуется для магнитных лент) или нет. Следует учитывать, что результат форматирования, задаваемого этим параметром, распространяется на весь носитель; иными словами, форматирование одной резервной копии на носителе приводит к )Т€ичтожению всех прочих резервных копий на этом носителе. INIT/NOINIT. Этот параметр позволяет перезаписывать данные на носителе, но оставлять заголовок нетронутым. MEDIADESCRIPTION и MEDIANAME. Эти параметры позволяют описать носитель и присвоить ему имя. Допускается применять не больше 255 символов для описания и 128 символов для имени. SKIP/NOSKIP. Этот параметр позволяет указать, должна ли учитываться информация об истечении срока действия, содержащаяся в резервных копиях, записанных ранее на данной магнитной ленте. Если разрешено применение параметра SKIP, то информация об истечении срока действия игнорируется, что позволяет перезаписывать магнитную ленту без учета срока действия. UNLOAD/NOUNLOAD. Этот параметр используется только для магнитных лент. Он определяет, следует ли вьшолнить перемотку и вытолкнуть магнитную ленту из накопителя (UNLOAD) или оставить ленту в текущем положении (NOUNLOAD) после завершения резервного копирования. RESTART. Этот параметр позволяет возобновить резервное копирование с того места, где оно было перед этим прервано. STATS. Этот параметр указывает, что должен отображаться индикатор выполнения, позволяющий узнать, как протекает процесс резервного копирования. COPY ONLY. Этот параметр дает возможность создать резервную копию, не затрагивая какие-либо другие последовательности резервного копирования, осуществляемые одновременно с этим. Например, можно задать, что должно продолжаться дифференциальное резервное копирование журналов, невзи-ргш на то, что в данный момент создается друггш резервнгш копия. Рассмотрим пример применения описанных средств для получения резервной копии: BACKUP DATABASE AdventureWorks TO TSQLBackupDevice WITH DESCRIPTION = My what a nice backup!, STATS После выполнения этого оператора создается резервная копия базы данных AdventureWorks. В СУБД SQL Server предусмотрено даже формирование сообщений о ходе выполнения, которые выводятся на экран в процессе создания резервной копии: 10 percent processed. 20 percent processed. 3 0 percent processed. 40 percent processed. 50 percent processed. 6 0 percent processed. 70 percent processed. 8 0 percent processed. 90 percent processed. Processed 21816 pages for database AdventureWorks, file AdventureWorksJData on file 1. 100 percent processed. Processed 25 pages for database AdventureWorks, file AdventureWorks Log on file 1. BACKUP DATABASE successfully processed 21841 pages in 9.401 seconds (19.032 MB/sec). Очевидно, что рассматриваемая задача оказалась несложной, поэтому перейдем к столь же простой задаче создания резервной копии журнала: BACKUP LOG AdventureWorks TO TSQLBackupDevice WITH DESCRIPTION = My what a nice backup of a logl, STATS
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |