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


Включение или отключение вычисления контрольных сумм резервных копий во время резервного копирования или восстановления (SQL Server)

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

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

Перед началом

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

Разрешения

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

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

RESTORE
Если восстанавливаемая база данных не существуют, для выполнения инструкции RESTORE у пользователя должны быть разрешения CREATE DATABASE. Если база данных существует, разрешения на выполнение инструкции RESTORE по умолчанию предоставлены членам предопределенных ролей сервера sysadmin и dbcreator , а также владельцу базы данных (dbo) (для параметра FROM DATABASE_SNAPSHOT база данных всегда существует).

Разрешения на выполнение инструкции RESTORE даются ролям, в которых данные о членстве всегда доступны серверу. Так как членство в предопределенной роли базы данных может быть проверено только тогда, когда база данных доступна и не повреждена, что не всегда имеет место при выполнении инструкции RESTORE, члены предопределенной роли базы данных db_owner не имеют разрешений RESTORE.

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

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

  1. Выполните следующие шаги, чтобы создать резервную копию базы данных.

  2. На странице Параметры в разделе Надежность выберите параметр Вычислять контрольную сумму перед записью на носитель.

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

Включение или отключение вычисления контрольных сумм для операции создания резервной копии

  1. Установите соединение с компонентом Компонент Database Engine.

  2. На панели «Стандартная» нажмите Создать запрос.

  3. Чтобы включить контрольные суммы резервных копий в инструкции BACKUP , укажите параметр WITH CHECKSUM. Чтобы отключить контрольные суммы резервных копий, укажите параметр WITH NO_CHECKSUM. Это поведение по умолчанию для всех, за исключением сжатых резервных копий. В следующем примере указывается, что контрольные суммы будут вычисляться.

BACKUP DATABASE AdventureWorks2012   
 TO DISK = 'Z:\SQLServerBackups\AdvWorksData.bak'  
   WITH CHECKSUM;  
GO  

Включение или отключение вычисления контрольных сумм для операции восстановления из резервной копии

  1. Установите соединение с компонентом Компонент Database Engine.

  2. На панели «Стандартная» нажмите Создать запрос.

  3. Чтобы включить контрольные суммы резервных копий в инструкции RESTORE , укажите параметр WITH CHECKSUM. Это поведение по умолчанию для сжатых резервных копий. Чтобы отключить контрольные суммы резервных копий, укажите параметр WITH NO_CHECKSUM. Это поведение по умолчанию для всех, за исключением сжатых резервных копий. В следующем примере указывается, что контрольные суммы резервных копий будут вычисляться.

RESTORE DATABASE AdventureWorks2012   
 FROM DISK = 'Z:\SQLServerBackups\AdvWorksData.bak'  
   WITH CHECKSUM;  
GO  

Предупреждение

Если явно запрашивается CHECKSUM для операции восстановления и если резервная копия содержит контрольные суммы, то проверяются контрольные суммы и резервной копии, и страниц, как в случае по умолчанию. Однако если в резервном наборе данных нет контрольных сумм, такая операция восстановления завершается аварийно с сообщением об отсутствии контрольных сумм.

См. также:

RESTORE FILELISTONLY (Transact-SQL)
RESTORE HEADERONLY (Transact-SQL)
RESTORE LABELONLY (Transact-SQL)
RESTORE VERIFYONLY (Transact-SQL).
BACKUP (Transact-SQL)
backupset (Transact-SQL)
Аргументы инструкции RESTORE (Transact-SQL)
Возможные ошибки носителей во время резервного копирования и восстановления (SQL Server)
Определение, продолжает ли операция резервного копирования или восстановления работу после возникновения ошибки (SQL Server)