Help! My Database is Marked Suspect.

, 2005-10-28 (first published: )

A database can be marked for many reasons. Generally it falls into the following conditions :

  • A database or log file is missing.
  • In SQL 6.5, a device may not be present or in 7.0/2000 a file may not exist.
  • SQL Server may not have been able to restore the database in ample time.
  • The database could be corrupt.
  • The database is being help by the operating system. This could be a 3rd party

    backup software or defrag software. I've had even a virus scanning software cause this once.

  • SQL Server does not have enough space to recover the database on startup.

To fix this problem, perform the following functions:

  1. Review the SQL Server and NT error logs to see if you can find where the problem occured.

  2. Start SQL Server in single user mode.

    • Go to your control panel and services.
    • Stop SQL Server
    • Add the -m switch in the parameters pane below.
    • Start SQL Server
  3. Run sp_resetstatus with the @dbname parameter.

    (ie : sp_resetstatus @dbname = "pubs")

  4. Perform detailed DBCC checks (CHECKDB, CHECKALLOC, etc)

  5. Run a few random queries to see if you experience any problems.

  6. If no problems occur, stop and start SQL Server and open the database to production.

    As an absolute last resort, you can place your database in emergency mode. By placing it in this mode, you will be allowed to copy data out of the database, even if the data is corrupt.

    To place your database in emergency mode, use the

    following command:

    SP_CONFIGURE 'allow updates', 1

    RECONFIGURE WITH OVERRIDE

    GO

    UPDATE master..sysdatabases set status = -32768 WHERE name = 'pubs'

    GO

    SP_CONFIGURE 'allow updates', 0

    RECONFIGURE WITH OVERRIDE

    You can then BCP data out and place it into a different database.

Rate

4.83 (6)

Share

Share

Rate

4.83 (6)

Related content

Sweeping Up The Slackers

Have you ever worked with an application that forgot to close its connections? Ever run out of connections on your SQL Server and had to manually go remove the ones that are not in use? This article will present a technique for keeping the database clean.

5 (1)

2001-05-07

5,054 reads