Could not start I/O for request %S_BLKIOPTR
SQL Server encountered an error while attempting to initiate a read or write request. This error can occur for any of the following reasons:
The parameter in the error message refers to an internal structure and does not help determine which database device or file is involved. However, other error messages appearing in the error log just before error 822 usually indicate the device involved.
Examine the availability and condition of the device involved using your standard operating-system procedures, and be sure the device is accessible.
Because error 822 marks the database as "suspect," SQL Server cannot recover the database upon restarting. If you know that the database was marked suspect because the device was unavailable, you can reset the status of the database to allow recovery to continue.
Caution Do not use these procedures if there are other errors in the error log, near the error 822 message, that suggest that the database might have been marked suspect for some other reason.
Reset the suspect status using one of the following procedures:
Or
sp_configure 'allow updates', 1 go reconfigure with override go use master go begin tran go update sysdatabases set status=0 where name='database_name' go
When you reset the suspect status using this procedure, all options on the database are reset to their default values. (Using sp_resetstatus leaves these options intact.)
commit tran go sp_configure 'allow updates', 0 go reconfigure with override go checkpoint go shutdown go
Here are two examples of error 822 and the associated messages from the log. Examining the error messages that occurred just before error 822 usually helps determine the type of problem.
In this example, the device C:\SQL60\DATA\DEVICE.DAT (corresponding to virtual device 6) did not exist when SQL Server started, causing access to the device to fail:
kernel: initializing virtual device 6, "c:\sql60\data\device.dat" kernel: dopen: open "c:\sql60\data\device.dat", No such file or directory kernel: dinit: failed to open primary device c:\sql60\data\device.dat for vdn 6 kernel: udstartio: vdn 6 has not been set up server: Error: 822, Severity: 20, State: 3 server: Could not start I/O for request BLKIO ....
To correct an error like this, be sure that the virtual device appearing in the error message exists, and correct whatever error prevented SQL Server from finding it. For example, it might have been renamed or moved while SQL Server was not running.
If the virtual device no longer exists, you must restore from known clean backups. Merely creating an empty device with the correct name will not solve this problem.
Permission problems can occur if the device is on an NTFS partition.
In this example, the permissions on C:\SQL60\DATA\DEVICE.DAT (virtual device 6) were incorrect, so SQL Server could not access it:
kernel: initializing virtual device 6, "c:\sql60\data\device.dat" kernel: dopen: open "c:\sql60\data\device.dat", Permission denied kernel: dinit: failed to open primary device c:\sql60\data\device.dat for vdn 6 kernel: udstartio: vdn 6 has not been set up server: Error: 822, Severity: 20, State: 3 server: Could not start I/O for request BLKIO ....
To correct an error like this, change the object ownership for the device to Administrator, and be sure that the account that SQL Server was started under has read and write permissions on the object.