Options

mdf file in SQL 2012

coreybyrnecoreybyrne Member Posts: 1
Hello everybody!
I’m working with sql database for couple months. Today I have opened it and see pop-up window: “The header for file 'xxxx.mdf' is not a valid database file header. The FILE SIZE property is incorrect.”

I don’t know what to do next, some ideas?

Thanks in advance!

Answers

  • Options
    krikikriki Member, Moderator Posts: 9,096
    The best I found is this: https://datanumen.com/sql-recovery/ but I never tried it.

    The only other option is called "restore the latest backup". You do have one recent backup I hope?
    Regards,Alain Krikilion
    No PM,please use the forum. || May the <SOLVED>-attribute be in your title!


  • Options
    EvREvR Member Posts: 178
    That's basically a corrupt data file.
    No proper SQL backup sets available?
  • Options
    jetos091jetos091 Member Posts: 1
    Guide below will help you with usual corruption of sql server data, but if it can't assist, then you may look at following resources for getting more methods

    https://www.repairtoolbox.com/sqlserverrepair.html SQL Server Repair Toolbox
    http://support.oreilly.com/oreilly/topics/it_seems_our_sql_database_is_corrupted?rfm=1
    http://www.sqlservercentral.com/Forums/Topic1602448-266-1.aspx

    Sometimes when you connect to your database server, you may find it in suspect mode. Your database server won’t allow you to perform any operation on that database until the database is repaired.
    A database can go in suspect mode for many reasons like improper shutdown of the database server, corruption of the database files etc.
    To get the exact reason of a database going into suspect mode can be found using the following query,
    DBCC CHECKDB (‘YourDBname’) WITH NO_INFOMSGS, ALL_ERRORMSGS
    Output of the above query will give the errors in the database.
    To repair the database, run the following queries in Query Analyzer,
    EXEC sp_resetstatus ‘yourDBname’;
    ALTER DATABASE yourDBname SET EMERGENCY
    DBCC checkdb(‘yourDBname’)
    ALTER DATABASE yourDBname SET SINGLE_USER WITH ROLLBACK IMMEDIATE
    DBCC CheckDB (‘yourDBname’, REPAIR_ALLOW_DATA_LOSS)
    ALTER DATABASE yourDBname SET MULTI_USER
    And you are done.
Sign In or Register to comment.