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

Область применения: SQL Server

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

Разрешения

BACKUP

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

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

RESTORE

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

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

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

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

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

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

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

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

  1. Соединитесь с ядром СУБД .

  2. На стандартной панели выберите пункт Создать запрос.

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

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

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

  1. Соединитесь с ядром СУБД .

  2. На стандартной панели выберите пункт Создать запрос.

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

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

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

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