Как определить причину ошибки при создании бекапа?

Какие могут быть причины, по которым верификация бекапа не проходит, если из текстового лога видно, что возвращается "Failed"? Вот сама строчка и кусок лога:

```sql
if @backupSetId is null begin raiserror(N''Verify failed. Backup information for database ''''DB_BASE'''' not found.'', 16, 1)

DECLARE @preferredReplica int

SET @preferredReplica = (SELECT [master].sys.fn_hadr_backup_is_preferred_replica(''DB_BASE''))

IF (@preferredReplica = 1)
BEGIN
    BACKUP DATABASE [DB_BASE] TO  DISK = N''H:\Backup\DB_BASE\DB_BASE_backup_2023_10_11_235731_1142855.bak'' WITH NOFORMAT, NOINIT,  NAME = N''DB_BASE_backup_2023_10_11_235731_1142855'', SKIP, REWIND, NOUNLOAD, COMPRESSION,  STATS = 10
END
GO
DECLARE @preferredReplica int

SET @preferredReplica = (SELECT [master].sys.fn_hadr_backup_is_preferred_replica(''DB_BASE''))

IF (@preferredReplica = 1)
BEGIN    
    declare @backupSetId as int
    select @backupSetId = position from msdb..backupset where database_name=N''DB_BASE'' and backup_set_id=(select max(backup_set_id) from msdb..backupset where database_name=N''DB_BASE'' )
    if @backupSetId is null begin raiserror(N''Verify failed. Backup information for database ''''DB_BASE'''' not found.'', 16, 1) end
    RESTORE VERIFYONLY FROM  DISK = N''H:\Backup\DB_BASE\DB_BASE_backup_2023_10_11_235731_1142855.bak'' WITH  FILE = @backupSetId,  NOUNLOAD,  NOREWIND
END
```

  • 11 октября 2023 г. 22:38
Ответы на вопрос 2
В данном случае, сообщение об ошибке "Verify failed. Backup information for database 'DB_BASE' not found" указывает на то, что информация о бекапе не была найдена в базе данных msdb. То есть, сам бекап файла присутствует, но информация о нем отсутствует в системе.

Возможные причины ошибки могут быть следующими:

1. Ошибка в имени или пути к файлу бекапа: проверьте, что путь к файлу указан правильно и файл действительно существует.

2. Проблемы с доступом к базе данных msdb: убедитесь, что у пользователя, от которого выполняется операция бекапа и верификации, есть необходимые права доступа к msdb.

3. Проблемы с записью информации о бекапе в базу данных msdb: возможно, что-то пошло не так при записи информации о бекапе в msdb. Проверьте журналы базы данных msdb на наличие ошибок.

4. Бекап был создан на другом экземпляре SQL Server: если бекап был создан на другом SQL Server экземпляре, то информация о бекапе может не быть доступна на текущем экземпляре. Убедитесь, что бекап был создан на текущем сервере или импортируйте его информацию на текущий сервер.

5. База данных была переименована или удалена: если база данных была переименована или удалена после создания бекапа, то информация о бекапе может быть утрачена. Убедитесь, что база данных существует на текущем сервере и что ее имя соответствует имени, указанному в операции бекапа и верификации.

Для определения конкретной причины ошибки, рекомендуется проверить доступность файла бекапа, проверить права доступа к msdb, а также изучить журналы ошибок SQL Server для получения более подробной информации о возможных причинах ошибки.
1. Вместо того, чтобы сразу переходить к следующему блоку после перепривязки стрелочек от блока к блоку, лучше сначала развернуть ответ в комментариях, а потом продолжить работу. 
2. Если после перепривязки стрелочек от блока к блоку вы переходите сразу к следующему блоку, вместо этого лучше сначала разверните ответ в комментариях, а потом продолжайте работу.
Похожие вопросы