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


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

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

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

Разрешения

РЕЗЕРВНАЯ КОПИЯ

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

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

ВОССТАНОВИТЬ

Если восстанавливаемая база данных не существует, пользователь должен иметь 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 операцию восстановления и если резервная копия содержит контрольные суммы, как в случае по умолчанию, проверяются как контрольные суммы резервных копий, так и контрольные суммы страниц. Однако если резервному набору не хватает контрольных сумм резервного копирования, операция восстановления завершается ошибкой с сообщением о том, что контрольные суммы отсутствуют.