Unknown database corruption: Data error in cyclic redundancy check I have a server that is throwing an error message when I try to backup a database. The error is:

10 percent processed.
20 percent processed.
Msg 3271, Level 16, State 1, Line 1
A nonrecoverable I/O error occurred on file "R:\data\MyDB.mdf:" 
         23(Data error (cyclic redundancy check).).
Msg 3013, Level 16, State 1, Line 1
BACKUP DATABASE is terminating abnormally.


I thought it was a database corruption, so I executed:

DBCC CHECKDB([MyDB]) WITH NO_INFOMSGS;


and no errors were found. 

What could be happening?
What are your suggestions regarding this datafile?
If you are experiencing corruption, the first thing I would do is make sure you have a valid backup from a previous run on standby.  Restore that somewhere (if possible) so you have access to the data.

You will need to run a DBCC CHECKDB to see what exactly is going on.  If DBCC CHECKDB comes back with no problems, delete your backup file and try re-creating it again from scratch (it may be a corrupted backup file).

If DBCC CHECKDB shows errors, you can try running a repair_fast or a repair_rebuild on the database, but more than likely you will need to run a repair with the repair_allow_data_loss option.  As the option says, you may lose data.  If the problem lies with an index, just drop / recreate the index.  If the problem lies with a data page, then you will need to correct it with the repair_allow_data_loss option and deal with the loss.

After you correct the error, ensure the database page_verify option is set to CHECKSUM.

ALTER DATABASE [MyDB] SET PAGE_VERIFY CHECKSUM


To find the lost data, you could try to take a new full backup and try using a data comparison tool against the old backup and the new backup to identify records that may have been lost.  This will be difficult and time consuming.  There may be a better way using the pages displayed in DBCC CHECKDB when the repair is run but someone else would have to fill in that part as I'm not too familiar with this.