The status of our database got set to 'Suspect' from a full hard
drive.
Here are the steps I took:
-Made room on the hard drive
-Reset the status so the database was no longer suspect
-Restart SQL Server
The problem, is that when SQL Server restarts and tries to recover, I
get the following error:
2003-04-23 16:09:31.40 spid6 Using 'sqlimage.dll' version '4.0.5'
Dump thread - spid = 6, PSS = 0x41286084, EC = 0x41286234
Stack Dump being sent to g:\MSSQL7\log\SQL00002.dmp
*******************************************************************************
*
* BEGIN STACK DUMP:
* 04/23/03 16:09:32 spid 6
*
*
*******************************************************************************
-------------------------------------------------------------------------------
Short Stack Dump
0x77f67a6b Module(ntdll+7a6b) (ZwGetContextThread+b)
0x0078c44a Module(sqlservr+38c44a) (utassert_fail+1a0)
0x005aecd2 Module(sqlservr+1aecd2)
(RecoveryMgr::RedoPageOperation+1be)
0x004c2dfe Module(sqlservr+c2dfe) (RecoveryMgr::RedoPass+38d)
0x004c17d3 Module(sqlservr+c17d3) (RecoveryMgr::RecoverDb+2ed)
0x004ca910 Module(sqlservr+ca910) (DBTABLE::Startup+630)
0x004c9eed Module(sqlservr+c9eed) (DBMgr::StartupDB+2c4)
0x004d07dc Module(sqlservr+d07dc) (StartDBsInParallel+147)
0x41092cff Module(ums+2cff) (ProcessWorkRequests+102)
0x41093523 Module(ums+3523) (ThreadStartRoutine+139)
0x7800b995 Module(MSVCRT+b995) (beginthread+ce)
0x77f04ef0 Module(KERNEL32+4ef0) (lstrcmpiW+be)
2003-04-23 16:09:32.73 kernel SQL Server Assertion: File:
<pageref.cpp>, line=3899
Failed Assertion = 'pPage->GetLsn () == lp->GetPrevPageLsn ()'.
2003-04-23 16:09:32.73 spid6 Location: pageref.cpp:3899
Expression: pPage->GetLsn () == lp->GetPrevPageLsn ()
SPID: 6
Process ID: 295
2003-04-23 16:09:32.75 spid6 Error: 3313, Severity: 21, State: 2
2003-04-23 16:09:32.75 spid6 Error while redoing logged operation
in database '2002data'. Error at log record ID (1546:1050:18)..
2003-04-23 16:22:35.29 spid6 Database '2002data' (database ID 14)
could not recover. Contact Technical Support..
2003-04-23 16:22:35.29 spid1 Recovery complete.
2003-04-23 16:22:35.29 spid1 SQL Server's Unicode collation is:
2003-04-23 16:22:35.29 spid1 'English' (ID = 1033).
2003-04-23 16:22:35.29 spid1 comparison style = 196609.
2003-04-23 16:22:35.29 spid1 SQL Server's non-Unicode sort order
is:
2003-04-23 16:22:35.29 spid1 'nocase_iso' (ID = 52).
2003-04-23 16:22:35.29 spid1 SQL Server's non-Unicode character set
is:
2003-04-23 16:22:35.29 spid1 'iso_1' (ID = 1).
And then the database goes back into suspect mode and is inaccessable.
I tried putting the database in emergency mode and then seeing if I
could select out or export the data but a lot of the data was
inaccessable, so this solution doesn't seem like it will work. This
also brought the database back to a state of being a couple weeks old.
The .mdf file I have is dated back to a couple weeks old, so restoring
to that does not seem viable, unless I can use the transaction log to
update the database.
The last backup I have is dated back to a month old, so that also does
not seem viable, unless I can use the transaction log to update the
database. (I know I am a fool, but I have learned my lesson).
Is there some way I can repair the transaction log so that either I
can either recover or use a backup and then restore from the
transaction log?
Thank you very much, this is very important to me. Also, the timing
on this one is important, I need an answer as quickly as possible. |