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


Создание полной резервной копии базы данных (SQL Server)

В этом разделе описывается создание полной резервной копии базы данных в SQL Server 2012 с помощью Среда SQL Server Management Studio, Transact-SQL или PowerShell.

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

Начиная с версии SQL Server 2012 с пакетом обновления 1 (SP1) и накопительным обновлением CU2, поддерживается резервное копирование данных SQL Server в службу хранилищ больших двоичных объектов Windows Azure. Дополнительные сведения см. в разделах Backup and Restore Enhancements и Резервное копирование и восстановление SQL Server с помощью службы хранилищ больших двоичных объектов Windows Azure.

В этом разделе

  • Перед началом работы

    Ограничения

    Рекомендации

    Безопасность

  • Создание полной резервной копии базы данных с помощью:

    SQL Server Management Studio

    Transact-SQL

    PowerShell

  • Связанные задачи

Перед началом работы:

Ограничения

  • Инструкция BACKUP не разрешена в явных и неявных транзакциях.

  • Резервные копии, созданные более поздними версиями SQL Server, не могут быть восстановлены в более ранних версиях SQL Server.

  • Дополнительные сведения см. в разделе Общие сведения о резервном копировании (SQL Server).

Рекомендации

  • Однако по мере увеличения размера базы данных полное резервное копирование занимает больше времени и требует больше пространства для хранения. Поэтому для больших баз данных может потребоваться, кроме полных резервных копий, создавать также и разностные резервные копии баз данных. Дополнительные сведения см. в разделе Разностные резервные копии (SQL Server).

  • Размер полной резервной копии базы данных вы можете вычислить с помощью системной хранимой процедуры sp_spaceused.

  • По умолчанию каждая успешная операция резервного копирования добавляет запись в журнал ошибок SQL Server и в журнал системных событий. Если создание резервной копии журналов производится очень часто, это приводит к быстрому накоплению сообщений об успешном завершении. Это приводит к увеличению журналов ошибок, затрудняя поиск других сообщений. Если работа существующих скриптов не зависит от этих записей, их вы можете отключить с помощью флага трассировки 3226. Дополнительные сведения см. в разделе Флаги трассировки (Transact-SQL).

Безопасность

Для резервной копии базы данных свойству TRUSTWORTHY присваивается значение OFF. Дополнительные сведения о том, как установить параметр TRUSTWORTHY в значение ON, см. в разделе Параметры ALTER DATABASE SET (Transact-SQL).

Начиная с SQL Server 2012, параметры PASSWORD и MEDIAPASSWORD не поддерживаются при создании резервных копий. Все еще вы можете восстанавливать резервные копии, созданные с паролями.

Разрешения

Разрешения BACKUP DATABASE и BACKUP LOG предоставлены по умолчанию членам предопределенной роли сервера sysadmin, а также членам предопределенных ролей базы данных db_owner и db_backupoperator.

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

Значок стрелки, используемый со ссылкой «В начало»[В начало]

Использование среды SQL Server Management Studio

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

При создании задания резервного копирования с помощью среды Среда SQL Server Management Studio вы можете сформировать соответствующий скрипт Transact-SQL BACKUP, нажав кнопку Скрипт и выбрав назначение скрипта.

Создание резервной копии базы данных

  1. После подключения к соответствующему экземпляру компонента Microsoft Компонент SQL Server Database Engine в обозревателе объектов разверните дерево сервера, щелкнув имя сервера.

  2. Раскройте узел Базы данных и в зависимости от типа восстанавливаемой базы данных выберите пользовательскую базу данных или раскройте узел Системные базы данных и выберите системную базу данных.

  3. Щелкните правой кнопкой мыши базу данных, выберите пункт Задачи, а затем выберите команду Создать резервную копию. Откроется диалоговое окно Резервное копирование базы данных.

  4. В списке База данных проверьте имя базы данных. При необходимости можно выбрать другую базу данных из списка.

  5. Резервное копирование базы данных можно выполнять для любой модели восстановления (FULL, BULK_LOGGED или SIMPLE).

  6. В списке Тип резервной копии выберите Полная.

    Обратите внимание на то, что при создании полной резервной копии базы данных можно создавать разностные резервные копии; дополнительные сведения см. в разделе Создание разностной резервной копии базы данных (SQL Server).

  7. Также можно выбрать вариант Резервная копия только для копирования, чтобы создать резервную копию только для копирования. Резервная копия только для копирования — это резервная копия, изолированная от обычной последовательности резервных копий SQL Server. Дополнительные сведения см. в разделе Резервные копии только для копирования (SQL Server).

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

    Если выбран параметр Разностная, то резервную копию только для копирования создать не удастся.

  8. В разделе Компонент резервного копирования выберите База данных.

  9. Оставьте имя резервного набора данных, предложенное по умолчанию в текстовом поле Имя, или введите другое имя резервного набора данных.

  10. При необходимости можно ввести описание резервного набора данных в текстовом поле Описание.

  11. Укажите, когда закончится срок действия резервного набора данных и когда этот набор может быть перезаписан без явного пропуска проверки на истечение срока.

    • Чтобы задать срок действия резервного набора данных, выберите пункт После (параметр по умолчанию) и введите срок действия набора в днях с момента его создания. Это значение может быть задано в диапазоне от 0 до 99999 дней 0 означает, что срок действия резервного набора данных не ограничен.

      Значение по умолчанию задается в параметре Срок хранения носителей резервных копий по умолчанию (дней): диалогового окна Свойства сервера (страница «Параметры базы данных»). Чтобы получить доступ к этому параметру, щелкните правой кнопкой мыши имя сервера в обозревателе объектов и выберите пункт «Свойства», а затем выберите страницу Настройки базы данных.

    • Чтобы указать дату истечения срока действия резервного набора данных, выберите пункт На и введите дату истечения срока действия резервного набора данных.

      Дополнительные сведения о дате истечения срока действия резервных копий см. в разделе BACKUP (Transact-SQL).

  12. Чтобы выбрать тип назначения резервной копии, выберите пункт Диск или Лента. Чтобы выбрать пути к 64 (или менее) дискам или накопителям на магнитной ленте, содержащим один набор носителей, нажмите кнопку Добавить. Выбранные пути отображаются в списке Создать резервную копию в.

    Чтобы удалить носитель резервной копии, выберите его и нажмите кнопку Удалить. Чтобы просмотреть содержимое носителя резервной копии, выберите его и щелкните Содержимое.

  13. Чтобы просмотреть или выбрать дополнительные параметры, нажмите кнопку Параметры на панели Выбор страницы.

  14. Выберите параметр Переписать носитель, указав один из следующих вариантов:

    • Создать резервную копию в существующем наборе носителей

      Для этого параметра выберите вариант Добавить в существующий резервный набор данных или Перезаписать все существующие резервные наборы данных. Дополнительные сведения см. в разделе Наборы носителей, семейства носителей и резервные наборы данных (SQL Server).

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

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

    • Создать резервную копию в новом наборе носителей и удалить все существующие резервные наборы данных

      Для этого параметра введите имя в текстовое поле Имя нового набора носителей и при необходимости введите описание набора носителей в поле Описание нового набора носителей.

  15. В разделе Надежность можно также установить флажки:

  16. При резервном копировании на накопитель на магнитной ленте (как указано в разделе Назначение страницы Общие) активен параметр Выгрузить ленту после резервного копирования. Щелкните этот параметр, чтобы активировать параметр Перемотать ленту перед выгрузкой.

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

    Параметры в разделе Журнал транзакций доступны, только если создается резервная копия журнала транзакций (это можно указать в разделе Тип резервной копии вкладки Общие).

  17. SQL Server 2008 Enterprise и более поздние версии поддерживают сжатие резервных копий. По умолчанию сжатие резервных копий зависит от значения параметра конфигурации сервера backup-compression default. Однако, независимо от текущего значения по умолчанию на уровне сервера, можно сжать резервные копии, установив параметр Сжимать резервные копии, и отказаться от сжатия резервных копий, установив параметр Не сжимать резервные копии.

    Просмотр и изменение текущих значений параметров по умолчанию для сжатия резервных копий

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

Также для создания резервных копий баз данных можно использовать мастер планов обслуживания базы данных.

Значок стрелки, используемый со ссылкой «В начало»[В начало]

Использование Transact-SQL

Создание полной резервной копии базы данных

  1. Выполните инструкцию BACKUP DATABASE для создания полной резервной копии базы данных, указав следующее:

    • имя базы данных для создания резервной копии;

    • устройство резервного копирования, на которое записывается полная резервная копия базы данных.

    Базовая структура синтаксиса Transact-SQL для полного резервного копирования базы данных:

    BACKUP DATABASE database

    TO backup_device [ ,...n ]

    [ WITH with_options [ ,...o ] ] ;

    Параметр

    Описание

    database

    База данных для резервного копирования.

    backup_device [ ,...n ]

    Указывает список от 1 до 64 устройств резервного копирования, используемых для создания резервной копии. Можно указать как физическое устройство резервного копирования, так и соответствующее логическое устройство, если оно уже определено. Для указания физического устройства резервного копирования используйте параметр DISK или TAPE.

    { DISK | TAPE } = physical_backup_device_name

    Дополнительные сведения см. в разделе Устройства резервного копирования (SQL Server).

    WITH with_options [ ,...o ]

    При необходимости указывает один или несколько дополнительных параметров, o. Сведения о некоторых основных параметрах см. в пункте 2.

  2. При необходимости укажите один или несколько параметров WITH. Здесь описываются некоторые основные параметры WITH. Сведения о всех параметрах WITH см. в разделе BACKUP (Transact-SQL).

    • Основные параметры WITH резервного набора данных:

      • { COMPRESSION | NO_COMPRESSION }
        Только в версии SQL Server 2008 Enterprise и более поздних указывает, выполняется ли для данной резервной копии команда backup compression, заменяя параметры уровня сервера по умолчанию.

      • DESCRIPTION = { 'text' | **@**text_variable }
        Задает произвольное текстовое описание резервного набора данных. В этой строке может содержаться до 255 символов.

      • NAME = { backup_set_name | **@**backup_set_name_var }
        Указывает имя резервного набора данных. Длина имени не может превышать 128 символов. Если параметр NAME не указан, то имя является пустым.

    • Основные параметры WITH резервного набора данных:

      По умолчанию команда BACKUP добавляет резервную копию в существующий набор носителей, сохраняя существующие резервные наборы данных. Чтобы явно указать это, используйте параметр NOINIT. Дополнительные сведения о присоединении к существующим резервным наборам данных см. в разделе Наборы носителей, семейства носителей и резервные наборы данных (SQL Server).

      Чтобы отформатировать носитель резервной копии используется параметр FORMAT:

      • FORMAT [ , MEDIANAME**=** { media_name | **@**media_name_variable } ] [ , MEDIADESCRIPTION = { text | **@**text_variable } ]
        Используйте предложение FORMAT при первом использовании носителя или при необходимости перезаписать существующие данные. При необходимости назначьте новому носителю имя и описание.

        Важное примечаниеВажно!

        Будьте предельно осторожны, используя предложение FORMAT инструкции BACKUP, так как оно удаляет все резервные копии, сохраненные ранее на носителе резервных копий.

Примеры (Transact-SQL)

А.Резервное копирование на дисковое устройство

В следующем примере производится резервное копирование всей базы данных AdventureWorks2012 на диск и создание нового набора носителей с помощью параметра FORMAT.

USE AdventureWorks2012;
GO
BACKUP DATABASE AdventureWorks2012
TO DISK = 'Z:\SQLServerBackups\AdventureWorks2012.Bak'
   WITH FORMAT,
      MEDIANAME = 'Z_SQLServerBackups',
      NAME = 'Full Backup of AdventureWorks2012';
GO

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

В следующем примере создается полная резервная копия базы данных AdventureWorks2012 на ленте в дополнение к предыдущим резервными копиям.

USE AdventureWorks2012;
GO
BACKUP DATABASE AdventureWorks2012
   TO TAPE = '\\.\Tape0'
   WITH NOINIT,
      NAME = 'Full Backup of AdventureWorks2012';
GO

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

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

-- Create a logical backup device, 
-- AdventureWorks2012_Bak_Tape, for tape device \\.\tape0.
USE master;
GO
EXEC sp_addumpdevice 'tape', 'AdventureWorks2012_Bak_Tape', '\\.\tape0'; 
USE AdventureWorks2012;
GO
BACKUP DATABASE AdventureWorks2012
   TO AdventureWorks2012_Bak_Tape
   WITH FORMAT,
      MEDIANAME = 'AdventureWorks2012_Bak_Tape',
      MEDIADESCRIPTION = '\\.\tape0', 
      NAME = 'Full Backup of AdventureWorks2012';
GO

Значок стрелки, используемый со ссылкой «В начало»[В начало]

Использование PowerShell

  1. Используйте командлет Backup-SqlDatabase. Чтобы явно указать, что это полная резервная копия базы данных, задайте параметр -BackupAction со значением по умолчанию Database. Данный параметр является необязательным для полных резервных копий баз данных.

    В следующем примере создается полная резервная копия базы данных MyDB в заданном по умолчанию расположении резервных копирований на экземпляре сервера Computer\Instance. Дополнительно в этом примере указывается -BackupAction Database.

    --Enter this command at the PowerShell command prompt, C:\PS>
    Backup-SqlDatabase -ServerInstance Computer\Instance -Database MyDB -BackupAction Database
    

Настройка и использование поставщика SQL Server PowerShell

Значок стрелки, используемый со ссылкой «В начало»[В начало]

Связанные задачи

Значок стрелки, используемый со ссылкой «В начало»[В начало]

См. также

Справочник

sp_addumpdevice (Transact-SQL)

BACKUP (Transact-SQL)

Резервное копирование базы данных (страница «Общие»)

Резервное копирование базы данных (страница «Параметры»)

Основные понятия

Общие сведения о резервном копировании (SQL Server)

Резервные копии журналов транзакций (SQL Server)

Наборы носителей, семейства носителей и резервные наборы данных (SQL Server)

Разностные резервные копии (SQL Server)

Полные резервные копии баз данных (SQL Server)