Инструкции RESTORE — VERIFYONLY (Transact-SQL)

Область применения: SQL Server Управляемый экземпляр SQL Azure Не поддерживается Azure Synapse Analytics Не поддерживается Analytics Platform System (PDW)

Проверяет, но не восстанавливает резервную копию, а также проверяет полноту резервного набора данных и возможность его считывания. Однако инструкция RESTORE VERIFYONLY не проверяет структуру данных, содержащихся в томах резервной копии. В Microsoft SQL Server инструкция RESTORE VERIFYONLY была дополнена новой проверкой данных для увеличения вероятности обнаружения ошибок. Цель — приблизиться к настоящей операции восстановления, насколько это возможно. Дополнительные сведения см. в разделе «Примечания».

Если резервная копия допустима, ядро СУБД SQL Server возвращает сообщение об успешном выполнении.

Примечание

Описания аргументов см. в статье Аргументы инструкций RESTORE (Transact-SQL).

Topic link iconСинтаксические обозначения в Transact-SQL

Синтаксис

RESTORE VERIFYONLY  
FROM <backup_device> [ ,...n ]  
[ WITH    
 {  
   LOADHISTORY   
  
--Restore Operation Option  
 | MOVE 'logical_file_name_in_backup' TO 'operating_system_file_name'   
          [ ,...n ]   
  
--Backup Set Options  
 | FILE = { backup_set_file_number | @backup_set_file_number }   
 | PASSWORD = { password | @password_variable }   
  
--Media Set Options  
 | MEDIANAME = { media_name | @media_name_variable }   
 | MEDIAPASSWORD = { mediapassword | @mediapassword_variable }  
  
--Error Management Options  
 | { CHECKSUM | NO_CHECKSUM }   
 | { STOP_ON_ERROR | CONTINUE_AFTER_ERROR }  
  
--Monitoring Options  
 | STATS [ = percentage ]   
  
--Tape Options  
 | { REWIND | NOREWIND }   
 | { UNLOAD | NOUNLOAD }    
 } [ ,...n ]  
]  
[;]  
  
<backup_device> ::=  
{   
   { logical_backup_device_name |  
      @logical_backup_device_name_var }  
   | { DISK | TAPE | URL } = { 'physical_backup_device_name' |  
       @physical_backup_device_name_var }   
}  
  

Примечание

URL-адрес — это формат, который используется для указания расположения и имени файла для хранилища BLOB-объектов Microsoft Azure и поддерживается начиная с SQL Server 2012 (11.x) SP1 CU2. Хотя хранилище Microsoft Azure является службой, реализация аналогична дисковому и ленточному хранилищу, чтобы обеспечить единообразное и эффективное восстановление для всех трех устройств.

Аргументы

Описания аргументов инструкции RESTORE VERIFYONLY см. в статье Аргументы инструкций RESTORE (Transact-SQL).

Общие замечания

Набор носителей или резервный набор данных должен содержать минимально верные данные, чтобы интерпретироваться как формат Microsoft Tape Format. В противном случае инструкция RESTORE VERIFYONLY прекращает выполнение и показывает, что формат резервной копии недопустим.

Проверки, выполняемые инструкцией RESTORE VERIFYONLY, включают:

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

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

  • Контрольную сумму (если она имеется на носителе).

  • Проверку свободного места на целевых устройствах.

Примечание

Инструкция RESTORE VERIFYONLY не применяется в отношении моментальных снимков базы данных. Проверка моментального снимка базы данных перед операцией восстановления до предыдущего состояния выполняется с помощью инструкции DBCC CHECKDB.

Примечание

С помощью резервного копирования путем моментальных снимков RESTORE VERIFYONLY подтверждает наличие моментальных снимков в расположениях, указанных в файле резервной копии. Резервное копирование путем моментальных снимков — это новая функция в SQL Server 2016 (13.x). Дополнительные сведения о резервном копировании путем создания моментального снимка см. в статье Резервные копии моментальных снимков файлов для файлов базы данных в Azure.

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

В операции создания резервной копии могут дополнительно указываться пароли для набора носителей, резервного набора данных или и того и другого. Если для набора носителей или резервного набора данных установлен пароль, то в инструкции RESTORE необходимо указывать правильные пароли. Пароли предотвращают несанкционированные операции восстановления и присоединения резервных наборов данных к носителю при помощи инструментов SQL Server. Однако пароль не запрещает перезапись носителей с помощью параметра FORMAT инструкции BACKUP.

Важно!

Данный пароль не обеспечивает надежную защиту. Он предназначен для предотвращения неверного восстановления при использовании средств SQL Server авторизованными или неавторизованными пользователями. При этом остается возможным чтение данных резервных копий с помощью других средств или замена пароля. В будущей версии Microsoft SQL Server этот компонент будет удален. Старайтесь не использовать эту возможность в новых разработках и постарайтесь изменить все приложения, которые в настоящее время ее используют. Для защиты резервных копий рекомендуется хранить ленты резервных копий в безопасном расположении или создавать резервные копии на дисках, защищенных соответствующими списками управления доступом (ACL). Списки ACL должны располагаться в корневом каталоге, в котором создаются резервные копии.

Разрешения

В SQL Server 2008 и более поздних версиях, чтобы получить сведения о резервном наборе данных или устройстве резервного копирования, необходимо разрешение CREATE DATABASE. Дополнительные сведения см. в статье GRANT, предоставление разрешений на базу данных (Transact-SQL).

Примеры

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

RESTORE VERIFYONLY FROM DISK = 'D:\AdventureWorks.bak';
GO

См. также:

BACKUP (Transact-SQL)
Наборы носителей, семейства носителей и резервные наборы данных (SQL Server)
RESTORE REWINDONLY (Transact-SQL)
RESTORE (Transact-SQL)
Журнал и сведения о заголовке резервной копии (SQL Server)