One of my clients contacted me to see if I can provide any help in doing data recovery. Since my expert area is performance tuning, I offered them quick 15-minute time to see what the errors are and whether I have some techniques to recover the data for invalid OS error 87.
Here was the situation:
- They were not able to restore from the backup.
Msg 3203, Level 16, State 1, Line 2
Read on “K:\SQLBackups\AuditDB_backup_2017_03_04_000038_1441415.bak” failed: 13(The data is invalid.)
Msg 3013, Level 16, State 1, Line 2
RESTORE DATABASE is terminating abnormally.
The error: “The data is invalid” is more of an operating system way of telling that file is not in a good shape
- When I looked into the ERRORLOG I found failures as below.
Error: 18210, Severity: 16, State: 1.
BackupIoRequest::ReportIoError: read failure on backup device ‘ K:\SQLBackups\AuditDB_backup_2017_03_04_000038_1441415.bak’. Operating system error 87(The parameter is incorrect.).
The error: “The parameter is incorrect” is again of an operating system way of telling that file is not in a good condition.
- Another error in ERRORLOG
Error: 3266, Severity: 16, State: 1.
The backup data at the end of ” K:\SQLBackups\AuditDB_backup_2017_03_04_000038_1441415.bak” is incorrectly formatted. Backup sets on the media might be damaged and unusable. To determine the backup sets on the media, use RESTORE HEADERONLY. To determine the backup sets on the media, use RESTORE HEADERONLY. To determine the usability of the backup sets, run RESTORE VERIFYONLY. If all of the backup sets are incomplete, reformat the media using BACKUP WITH FORMAT, which destroys all the backup sets.
All error explained above are very dangerous and a SQL expert may not be able to help much. There are data recovery companies who might help. So, your best bet at this point would be either to contact hardware related company or data recovery company to help. If you have some other good backup, go with that.
Do let me know if you have any other suggestions in the comment area for the ODS error.
Reference: Pinal Dave (http://blog.SQLAuthority.com)