Поделиться через


sp_addumpdevice (Transact-SQL)

Добавляет в экземпляр компонента MicrosoftSQL Server 2005 Database Engine устройство резервного копирования.

Значок ссылки на разделСинтаксические обозначения в Transact-SQL

Синтаксис

sp_addumpdevice [ @devtype = ] 'device_type' 
        , [ @logicalname = ] 'logical_name' 
        , [ @physicalname = ] 'physical_name'
      [ , { [ @cntrltype = ] controller_type |
          [ @devstatus = ] 'device_status' }
      ]

Аргументы

  • [ @devtype= ] 'device_type'
    Тип устройства резервного копирования. Аргумент device_type имеет тип varchar(20), не имеет значения по умолчанию и может иметь одно из следующих значений.

    Значение

    Описание

    disk

    Файл на жестком диске в качестве устройства резервного копирования.

    tape

    Любое ленточное устройство, поддерживаемое Microsoft Windows.

    ПримечаниеПримечание
    Поддержка ленточных устройств резервного копирования будет удалена в будущей версии SQL Server. Избегайте использования этой функции в новых разработках и запланируйте изменение существующих приложений, в которых она применяется.
  • [ @logicalname = ] 'logical_name'
    Логическое имя устройства резервного копирования для указания в инструкциях BACKUP и RESTORE. Аргумент logical_name имеет тип sysname, не имеет значения по умолчанию и не может быть равен NULL.

  • [ @physicalname = ] 'physical_name'
    Физическое имя устройства резервного копирования. Физические имена должны соответствовать соглашениям об именах файлов операционной системы или формату UNC для сетевых устройств и должны включать полный путь. Аргумент physical_name имеет тип nvarchar(260), но не имеет значения по умолчанию и не может быть равен NULL.

    При создании устройства резервного копирования в удаленном сетевом каталоге убедитесь, что имя входа, под которым запущен компонент Database Engine, имеет на удаленном компьютере необходимые права на запись.

    При добавлении ленточного устройства этот параметр должен быть физическим именем, назначенным логическому ленточному устройству в Windows, например \\.\TAPE0 для первого ленточного устройства на компьютере. Ленточное устройство должно быть подключено к серверному компьютеру и его нельзя использовать удаленно. Имена команд, содержащие символы, отличные от алфавитно-цифровых, следует заключать в кавычки.

    ПримечаниеПримечание

    Эта процедура вносит указанное физическое имя в каталог. Она не пытается создать это устройство или произвести доступ к нему.

  • [ @cntrltype = ] 'controller_type'
    Устаревший аргумент. Если указан — не обрабатывается. Поддерживается исключительно в целях обратной совместимости. При вызове процедуры sp_addumpdevice в новых программах этот аргумент указывать не следует.

  • [ @devstatus = ] 'device_status'
    Устаревший аргумент. Если указан — не обрабатывается. Поддерживается исключительно в целях обратной совместимости. При вызове процедуры sp_addumpdevice в новых программах этот аргумент указывать не следует.

Значения кодов возврата

0 (успешное завершение) или 1 (неуспешное завершение)

Результирующие наборы

Нет

Замечания

Процедура sp_addumpdevice добавляет устройство резервного копирования в представление каталога sys.backup_devices. После этого устройство можно указывать в инструкциях BACKUP и RESTORE по логическому имени. Хранимая процедура sp_addumpdevice не производит доступ к физическому устройству. Обращение к нему производится только при выполнении инструкций BACKUP и RESTORE. Создание логического устройства резервного копирования упрощает инструкции BACKUP и RESTORE, позволяя вместо пути устройства в предложениях TAPE = и DISK = указывать имена устройств.

При использовании дисковых и файловых устройств резервного копирования проблемы владения и разрешений могут накладываться. Проверьте, даны ли необходимые разрешения на соответствующие файлы учетной записи Windows, от имени которой запущен компонент Database Engine.

Компонент Database Engine поддерживает резервное копирование на ленточные устройства, которые поддерживаются Windows. Дополнительные сведения о ленточных устройствах, поддерживаемых Windows, см. в списке оборудования, совместимого с Windows. Для просмотра списка ленточных устройств, доступных на компьютере, воспользуйтесь средой SQL Server Management Studio.

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

Хранимая процедура sp_addumpdevice не может выполняться в транзакции.

Чтобы удалить устройство, используется процедура sp_dropdevice или среда SQL Server Management Studio.

Разрешения

Требует членства в предопределенной роли сервера diskadmin.

Необходимо разрешение на запись на жесткий диск.

Примеры

А. Добавление дискового устройства хранения

В следующем примере добавляется дисковое устройство резервного копирования с именем mydiskdump, которое имеет физическое имя c:\dump\dump1.bak.

USE master;
GO
EXEC sp_addumpdevice 'disk', 'mydiskdump', 'c:\dump\dump1.bak';

Б. Добавление сетевого дискового устройства резервного копирования

Следующий пример иллюстрирует добавление удаленного дискового устройства резервного копирования с именем networkdevice. Имя, от которого запущен компонент Database Engine, должно иметь разрешения на удаленный файл (\\<servername>\<sharename>\<path>\<filename>.bak).

USE master;
GO
EXEC sp_addumpdevice 'disk', 'networkdevice',
    '\\<servername>\<sharename>\<path>\<filename>.bak';

В. Добавление ленточного устройства резервного копирования

В следующем примере добавляется устройство tapedump1 с физическим именем \\.\tape0.

USE master;
GO
EXEC sp_addumpdevice 'tape', 'tapedump1', '\\.\tape0';

Г. Резервное копирование на логическое устройство резервного копирования

В следующем примере создается логическое устройство резервного копирования AdvWorksData для файла резервной копии на диске. Затем показано, как производится резервное копирование базы данных AdventureWorks на это логическое устройство резервного копирования.

USE master
GO
EXEC sp_addumpdevice 'disk', 'AdvWorksData', 
'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\BACKUP\AdvWorksData.bak';
GO
BACKUP DATABASE AdventureWorks 
 TO AdvWorksData
   WITH FORMAT;
GO