How to recover database from MDF in SQL Server 2005?

后端 未结 9 444
野性不改
野性不改 2021-01-31 11:20

I have an MDF file and no LDF files for a database created in MS SQL Server 2005. When I try to attach the MDF file to a different SQL Server, I get the following error messa

9条回答
  •  滥情空心
    2021-01-31 12:01

    FROM a post at SQL Server Forums Attaching MDF without LDF:

    If you want to attach a MDF without LDF you can follow the steps below It is tested and working fine

    1. Create a new database with the same name and same MDF and LDF files

    2. Stop sql server and rename the existing MDF to a new one and copy the original MDF to this location and delete the LDF files.

    3. Start SQL Server

    4. Now your database will be marked suspect 5. Update the sysdatabases to update to Emergency mode. This will not use LOG files in start up

    Sp_configure "allow updates", 1
    go
    Reconfigure with override
    GO
    Update sysdatabases set status = 32768 where name = "BadDbName"
    go
    Sp_configure "allow updates", 0
    go
    Reconfigure with override
    GO
    
    1. Restart sql server. now the database will be in emergency mode

    2. Now execute the undocumented DBCC to create a log file

    DBCC REBUILD_LOG(dbname,'c:\dbname.ldf') -- Undocumented step to create a new log file.

    (replace the dbname and log file name based on ur requirement)

    1. Execute sp_resetstatus

    2. Restart SQL server and see the database is online.

    UPDATE: DBCC REBUILD_LOG does not existing SQL2005 and above. This should work:

    USE [master]
    GO
    CREATE DATABASE [Test] ON 
        (FILENAME = N'C:\MSSQL\Data\Test.mdf')
        FOR ATTACH_REBUILD_LOG
    GO
    

提交回复
热议问题