Logsegment fills when doing "startserver"

Logsegment fills when doing "startserver"

Post by Enrique Garci » Fri, 24 Nov 2000 04:00:00



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.

 
 
 

Logsegment fills when doing "startserver"

Post by AnaMaria Stirbe » Sat, 25 Nov 2000 04:00:00


Hola Enrique,

The steps to drop this database are:
1. start the server with -T3608 traceflag
2. sp_configure "allow updates",1
3. set the status of the database to -32768 | 256
update sysdatabases set status = -32768 | 256 where dbid = <dbid>
( Don't forget the where clause!)
4. shutdown
5. restart normal
6. dbcc dbrepair (<dbname>, dropdb)
7. sp_configure "allow updates",0

HTH,

AnaMaria Stirbet

Enrique Garcia a crit :

Quote:> 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.


 
 
 

Logsegment fills when doing "startserver"

Post by AnaMaria Stirbe » Sat, 25 Nov 2000 04:00:00


You may not need to drop the database:

http://manuals.sybase.com/onlinebooks/group-as/asg1200e/svrtsg

Recovery 1105 Errors on a User Database

AnaMaria Stirbet

AnaMaria Stirbet a crit :

Quote:> Hola Enrique,

> The steps to drop this database are:
> 1. start the server with -T3608 traceflag
> 2. sp_configure "allow updates",1
> 3. set the status of the database to -32768 | 256
> update sysdatabases set status = -32768 | 256 where dbid = <dbid>
> ( Don't forget the where clause!)
> 4. shutdown
> 5. restart normal
> 6. dbcc dbrepair (<dbname>, dropdb)
> 7. sp_configure "allow updates",0

> HTH,

> AnaMaria Stirbet

> Enrique Garcia a crit :

> > 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.