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

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

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

ограничения

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

Общие сведения о концепциях и задачах резервного копирования см. в разделе "Обзор резервного копирования" (SQL Server) перед продолжением.

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

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

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

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

Начиная с версии SQL Server 2012 (11.x), параметры 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, нажав кнопку "Скрипт" и выбрав назначение скрипта.

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

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

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

В диалоговом окне Резервное копирование базы данных выбранная база данных приводится в раскрывающемся списке (ее можно изменить на любую другую базу данных на сервере).

В раскрывающемся списке Тип резервной копии выберите нужный вариант (по умолчанию выбран тип Полная).

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

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

В разделе Назначение проверьте расположение по умолчанию для файла резервной копии (в папке ../mssql/data).

Чтобы выбрать другое устройство, можно использовать раскрывающийся список Создать резервную копию на. Щелкните Добавить, чтобы добавить объекты резервного копирования и (или) целевые объекты. Резервный набор данных можно перераспределить между несколькими файлами, чтобы повысить скорость резервного копирования.

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

(Необязательно) Просмотрите другие доступные параметры на страницах Параметры носителя и Параметры резервного копирования.

Чтобы начать резервное копирование, нажмите кнопку OK.

После успешного завершения резервного копирования щелкните ОК, чтобы закрыть диалоговое окно SQL Server Management Studio.

Дополнительные сведения

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

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

При резервном копировании на URL-адрес параметр Перезаписать носитель на странице Параметры носителя недоступен.

Примеры

Для следующих примеров создайте тестовую базу данных со следующим кодом Transact-SQL:

A. Полное резервное копирование на диск в расположение по умолчанию

В этом примере база данных SQLTestDB будет заархивирована на диск в папку резервных копий по умолчанию.

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

Разверните элемент Базы данных, щелкните SQLTestDB правой кнопкой мыши, наведите указатель на пункт Задачи и выберите действие Создать резервную копию. .

Щелкните ОК.

После успешного завершения резервного копирования щелкните ОК, чтобы закрыть диалоговое окно SQL Server Management Studio.

Б. Полное резервное копирование на диск в нестандартное расположение

В этом примере база данных SQLTestDB будет заархивирована на диск в выбранную вами папку.

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

Разверните элемент Базы данных, щелкните SQLTestDB правой кнопкой мыши, наведите указатель на пункт Задачи и выберите действие Создать резервную копию. .

На странице Общие в разделе Назначение выберите Диск в раскрывающемся списке Создать резервную копию на: .

Щелкайте элемент Удалить, пока не будут удалены все существующие файлы резервных копий.

Нажмите кнопку Добавить, чтобы открыть диалоговое окно Выбор места расположения резервной копии.

Введите допустимый путь и имя файла в текстовом поле Имя файла и используйте расширение .bak, чтобы упростить классификацию файла.

Щелкните ОК, а затем еще раз щелкните ОК, чтобы начать резервное копирование.

После успешного завершения резервного копирования щелкните ОК, чтобы закрыть диалоговое окно SQL Server Management Studio.

В. Создание зашифрованной резервной копии

В этом примере база данных SQLTestDB будет заархивирована с шифрованием в папку резервных копий по умолчанию.

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

Разверните узел Базы данных и узел Системные базы данных, щелкните правой кнопкой мыши базу данных master и выберите действие Создать запрос, чтобы открыть окно запроса с подключением к базе данных SQLTestDB .

Выполните приведенные ниже команды, чтобы создать главный ключ базы данных и сертификат в базе данных master .

В обозревателе объектов в узле Базы данных щелкните правой кнопкой мыши базу данных SQLTestDB , наведите указатель на пункт Задачи и выберите действие Создать резервную копию. .

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

На странице Параметры резервного копирования в разделе Шифрование установите флажок Зашифровать резервную копию .

В раскрывающемся списке "Алгоритм" выберите AES 256.

В раскрывающемся списке Сертификат или асимметричный ключ выберите MyCertificate .

Щелкните ОК.

Г. Резервное копирование в службу хранилища BLOB-объектов Azure

В приведенном ниже примере создается полная резервная копия базы данных SQLTestDB в службе "Хранилище BLOB-объектов Azure". В этом примере предполагается, что у вас уже есть учетная запись хранения с контейнером BLOB-объектов. В примере создается подписанный URL-адрес, и если у контейнера уже есть подписанный URL-адрес, операция завершится сбоем.

Если у вас нет контейнера BLOB-объектов Azure в учетной записи хранения, создайте его перед продолжением работы. Дополнительные сведения см. в статье Создание учетной записи хранения и разделе Создание контейнера.

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

Разверните элемент Базы данных, щелкните SQLTestDB правой кнопкой мыши, наведите указатель на пункт Задачи и выберите действие Создать резервную копию. .

На странице Общие в разделе Назначение выберите URL-адрес в раскрывающемся списке Создать резервную копию на: .

Нажмите кнопку Добавить, чтобы открыть диалоговое окно Выбор места расположения резервной копии.

Если ранее вы зарегистрировали контейнер службы хранилища Azure, который хотите использовать с SQL Server Management Studio, то выберите его. В противном случае щелкните Создать контейнер, чтобы зарегистрировать новый контейнер.

В диалоговом окне Соединение с подпиской Майкрософт войдите в свою учетную запись.

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

В текстовом поле с раскрывающимся списком Выбрать контейнер BLOB-объектов выберите контейнер больших двоичных объектов.

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

Щелкните Создать учетные данные, чтобы создать подписанный URL-адрес и учетные данные в SQL Server Management Studio.

Щелкните ОК, чтобы закрыть диалоговое окно Соединение с подпиской Майкрософт.

В текстовом поле Файл резервной копии при необходимости измените имя файла резервной копии.

Щелкните ОК, чтобы закрыть диалоговое окно Выбор места назначения резервной копии.

Чтобы начать резервное копирование, нажмите кнопку OK.

После успешного завершения резервного копирования щелкните ОК, чтобы закрыть диалоговое окно SQL Server Management Studio.

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

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

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

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

BACKUP DATABASE database TO backup_device [ , . n ] [ WITH with_options [ , . o ] ] ;

< DISK | TAPE >=имя_физического_устройства_резервного_копирования

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

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

  • : Только в версии SQL Server 2008 Enterprise и выше указано, выполняется ли команда backup compression для этой резервной копии, переопределяя значение по умолчанию на уровне сервера.
  • ENCRYPTION (ALGORITHM, SERVER CERTIFICATE | ASYMMETRIC KEY) : Только для SQL Server 2014 и выше укажите используемый алгоритм шифрования, а также сертификат или асимметричный ключ для шифрования.
  • ОПИСАНИЕ=< 'text' | @text_variable >: задает текст свободной формы, описывающий резервный набор данных. В этой строке может содержаться до 255 символов.
  • NAME = < backup_set_name | @backup_set_name_var >: указывает имя резервного набора данных. Длина имени не может превышать 128 символов. Если имя не указано, оно остается пустым.

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

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

FORMAT [ , MEDIANAME = < media_name | @media_name_variable > ] [ , MEDIADESCRIPTION = < text | @text_variable > ]

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

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

Примеры

Для следующих примеров создайте тестовую базу данных со следующим кодом Transact-SQL:

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

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

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

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

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

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

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

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

Для этих примеров требуется модуль SqlServer. Чтобы определить, установлен ли он, выполните команду Get-Module -Name SqlServer . Чтобы установить его, выполните команду Install-Module -Name SqlServer в сеансе PowerShell с правами администратора.

Дополнительные сведения см. в статье SQL Server PowerShell Provider.

При открытии окна PowerShell из SQL Server Management Studio для подключения к установке SQL Server учетные данные можно опустить, так как для установки подключения между PowerShell и экземпляром SQL Server автоматически используются ваши учетные данные в SSMS.

Примеры A. Полная резервная копия (локальная)

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

📎📎📎📎📎📎📎📎📎📎