По материалам статьи Microsoft: "PRB:
How to Recover SQL Server After a Tempdb Database is Marked
Suspect"
Информация в этой статье относится к Microsoft
SQL Server версиям 7.0 и 2000 (все редакции)
Статья предлагает метод восстановления работоспособности
Microsoft SQL Server при повреждении базы данных
Tempdb.
Если сервис SQL Server не запускается, потому что
база данных Tempdb находится в состоянии Suspect, Вы увидите
следующий текст в файле регистрации ошибок SQL Server:
2001-02-08 14:04:07.64 spid1 Clearing tempdb
database.
2001-02-08 14:04:07.66 spid1 Creating file
e:\MSSQL7\DATA\TEMPDB.MDF.
2001-02-08 14:04:07.87 spid1
Closing file e:\MSSQL7\DATA\TEMPDB.MDF.
2001-02-08
14:04:07.90 spid1 Creating file e:\MSSQL7\DATA\TEMPLOG.LDF.
2001-02-08 14:04:07.97 spid1 Closing file
e:\MSSQL7\DATA\TEMPLOG.LDF.
2001-02-08 14:04:08.02 spid1
Opening file e:\MSSQL7\DATA\TEMPDB.MDF.
2001-02-08
14:04:08.03 spid1 Opening file e:\MSSQL7\DATA\TEMPLOG.LDF.
2001-02-08 14:04:08.32 spid1 Closing file
e:\MSSQL7\DATA\TEMPDB.MDF.
2001-02-08 14:04:08.34 spid1
Closing file e:\MSSQL7\DATA\TEMPLOG.LDF.
2001-02-08
14:04:08.36 spid1 Starting up database 'tempdb'.
2001-02-08 14:04:08.36 spid1 Opening file
e:\MSSQL7\DATA\TEMPDB.MDF.
2001-02-08 14:04:08.39 spid1
Opening file e:\MSSQL7\DATA\TEMPLOG.LDF.
2001-02-08
14:04:08.43 spid1 Bypassing recovery for database 'tempdb'
because it is marked SUSPECT.
2001-02-08 14:04:08.47 spid1
Database 'tempdb' cannot be opened. It has been marked SUSPECT
by recovery. See the SQL Server errorlog for more information.
2001-02-08 14:04:08.50 spid1 WARNING: problem activating
all tempdb files.
2001-02-08 14:04:08.50 spid1 Trying just
primary files.
2001-02-08 14:04:08.50 spid1 Database
'tempdb' cannot be opened. It has been marked SUSPECT by
recovery. See the SQL Server errorlog for more
information.
2001-02-08 14:04:08.50 spid1 Database 'tempdb'
cannot be opened. It has been marked SUSPECT by recovery. See
the SQL Server errorlog for more information.
ОБРАТИТЕ ВНИМАНИЕ: Есть множество причины перевода сервером
базы Tempdb в состояние Suspect, но рассмотрение этих
возможных причин выходит за рамки настоящей статьи.
Следуя указанным ниже шагам, Вы сможете создавать новую
базу данных Tempdb, после чего, станет возможен успешный
запуск сервиса SQL Server.
Если файлы Tempdb.mdf и
Templog.ldf существуют, переименуйте их. Если файлы не
существуют, это является одной из возможных причин состояния
Suspect.
Запустите SQL Server из командной строки со
следующими параметрами:
sqlservr -c -f -T3608 -T4022
При использовании SQL Server 2000, Вы должны добавить
дополнительный параметр -s.
ОБРАТИТЕ ВНИМАНИЕ: Убедитесь, что окно, в котором были
набраны команды, остаётся открытым после запуска SQL Server.
Закрытие этого окна приведёт к окончанию работы сервиса SQL
Server.
Подсоединитесь к серверу, используя Query Analyzer, и затем
исполните следующую хранимую процедуру, которая сбросит
состояние базы данных Tempdb.
exec master..sp_resetstatus Tempdb
Завершите работу сервера баз данных, нажав в его окне
сочетание клавиш CTRL+C.
Перезапустите SQL Server. Это
создает новый набор файлов базы данных Tempdb, и восстановит
её работоспособность.
Для дополнительной информации обратитесь к следующим
статьям Microsoft Knowledge Base и Books Online:
Q277272
BUG: Trace Flags 3607, 3608, 3609 Omitted from Documentation
in SQL Server 7.0 and 2000
SQL Server 2000 Books
Online; topic: "How to start a named instance of SQL Server
(Command Prompt)"
SQL Server 2000 Books Online; topic: "SQL
Server Startup Options"