Sql-server – Repair a SQL Server 2000 MDF file

sql serversql-server-2000

I had a SQL Server 2000 MDF on a SQL Server 2005 server (moved from prior version), there was a hardware failure.

After sending harddisk, it was supposed the mdf / ldf files were recovered, but I am unable to attach.

Something curious is that the MDF file has a date on disk from june 2010 and the problem happened in sept 2010. I have tried several options regarding making a new fake db, replace files, mdf, emergency etc, but with no results, can some one help to see how can this be fixed?

Attach database failed for Server 'SERVERDATA'. (Microsoft.SqlServer.Smo)

SQL Server detected a logical consistency-based I/O error: torn page (expected signature: 0xaaaaaaaa; actual signature: 0x55555556). It occurred during a read of page (1:24) in database ID 7 at offset 0x00000000030000 in file 'C:\sqldata\ipvtelas_Data.MDF'. Additional messages in the SQL Server error log or system event log may provide more detail. This is a severe error condition that threatens database integrity and must be corrected immediately. Complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information, see SQL Server Books Online.

Could not open new database 'ipvtelas'. CREATE DATABASE is aborted. (Microsoft SQL Server, Error: 824)

After making a dummy database and replacing the MDF/LDF files, the error is now:

Failed to retrieve data for this request. (Microsoft.SqlServer.SmoEnum) Database 'dummy' cannot be opened due to inaccessible files or insufficient memory or disk space. See the SQL Server errorlog for details. (Microsoft SQL Server, Error: 945)

Best Answer

The fastest, simplest solution is to restore your last good backup. If that isn't an option you can try a workaround to make MSSQL think the database already exists:

http://sqlskills.com/BLOGS/PAUL/post/Disaster-recovery-101-hack-attach-a-damaged-database.aspx

Then you can run DBCC and see if it can repair the database, but even in that case you may still have data loss. You could also call Microsoft (maybe you already have a support contract), but the bottom line is that if you have a damaged database and no backup then there's not much that anyone can do.