Hi all,
After experiencing problems with a database (a bcp had filled up the trans
log and it's process didn't die whatever I did) I decided to shutdown the
server and start it up again hoping that this way the process would die and
I could do something to empty the log or delete the database.
But startserver failed in the recovery of the mentioned database after doing
a 100% "Redo Pass of recovery" of the records (I guess it means those
records in trans log) and a 85% of "Undo pass". At this point it gives the
below error (see bottom of this message) due to lack of space in the
"logsegment" and causing the recovery process to halt. The error message
suggests to increase the log space but since that database is still not
recovered, it is impossible to do so ("alter database PRODUCTION_DB log on
logdevice=10" won't work). Any struggle to do anything at all (even dropping
the db) is fruitless since it's not been recovered yet.
My questions are:
- Is there any way I can drop this database (without affecting the other
databases in the server) even though it has not been recovered?
- Is there anyway I can increase the logsegment for this database given the
circunstances explained above?
- Is there anyway I can tell the process startserver not to recover the
affected database but to recover all other in the server?
- From what you can read in the error message at the bottom, is the
logsegment that is becoming full that for the affected database or any other
one (maybe the master's)?
I believe that an answer to any of these questions would very helpfull.
Thank you very much,
Enrique
PD: This is an extract from the startserver logfile including at the bottom
the error messages I get (maximize the window to view ):
[...]
00:00000:00001:2000/11/23 10:07:51.91 server Recovering database
'GOOD_DATABASE'.
00:00000:00001:2000/11/23 10:07:55.01 server The transaction log in the
database 'GOOD_DATABASE' will use I/O size of 2 Kb.
00:00000:00001:2000/11/23 10:07:55.04 server Database 'GOOD_DATABASE' is
now online.
00:00000:00001:2000/11/23 10:07:55.08 server Recovering database
'PRODUCTION_DB'.
00:00000:00001:2000/11/23 10:08:42.12 server Redo pass: 3 records done
(0%); 3894760 records left.
00:00000:00001:2000/11/23 10:08:48.04 server Redo pass: 194741 records done
(5%); 3700022 records left.
00:00000:00001:2000/11/23 10:08:54.44 server Redo pass: 389479 records done
(10%); 3505284 records left.
00:00000:00001:2000/11/23 10:09:00.49 server Redo pass: 584217 records done
(15%); 3310546 records left.
[...]
00:00000:00001:2000/11/23 10:28:10.82 server Redo pass: 3700025 records
done (95%); 194738 records left.
00:00000:00001:2000/11/23 10:30:27.68 server Redo pass of recovery has
processed 352 committed and 12 aborted transactions.
00:00000:00001:2000/11/23 10:30:31.22 server Undo pass: 3 records done
(0%); 3894760 records left.
00:00000:00001:2000/11/23 10:30:31.73 server Undo pass: 194741 records done
(5%); 3700022 records left.
00:00000:00001:2000/11/23 10:30:51.37 server Undo pass: 389479 records done
(10%); 3505284 records left.
[...]
00:00000:00001:2000/11/23 10:47:01.58 server Undo pass: 3115811 records
done (80%); 778952 records left.
00:00000:00001:2000/11/23 10:48:29.76 server Undo pass: 3310549 records
done (85%); 584214 records left.
00:00000:00001:2000/11/23 10:50:01.66 server Error: 1105, Severity: 17,
State: 3
00:00000:00001:2000/11/23 10:50:01.66 server Can't allocate space for
object 'syslogs' in database 'PRODUCTION_DB' because 'logsegment' segment is
full/has no free extents. If you ran out of space in syslogs, dump the
transaction log. Otherwise, use ALTER DATABASE or sp_extendsegment to
increase size of the segment.
00:00000:00001:2000/11/23 10:50:01.66 server Error: 3475, Severity: 21,
State: 7
00:00000:00001:2000/11/23 10:50:01.66 server There is no space available in
SYSLOGS for process 1 to log a record for which space has been reserved.
This process will retry at intervals of one minute. The internal error
number is -4.