From: sauvain@fandango.wrc.xerox.com (Richard Sauvain)
Newsgroups: comp.databases.sybase
Subject: Recovering from a log segment full condition
Date: 16 Dec 92 20:56:11 GMT
Reply-To: sauvain@wrc.xerox.com
Organization: Xerox Corp.

I have run into the following catch-22:

My transaction log fills up (even though I allowed more than 2X data size for
the transaction log), and when I try to dump the transaction log, I get an
error message saying that the log segment is full and I should dump the
transaction log.  Using ALTER DATABASE to increase the size of the segment
allows the dump to proceed for a while, but we eventually get to the same
state.

Does anyone understand what is going on here?  Could it be that deleting the
transaction log is itself a logged operation?

---
Name:  Richard Sauvain               | Xerox Webster Research Center
Email: Sauvain@wrc.xerox.com         | Mail Stop 128-27E
Phone: (716) 422-3379                | 800 Phillips Road
Fax:   (716) 422-2126                | Webster, NY 14580  USA

--------
The gory details:

1> delete document where accession = "x9000031"
2> go
Cascading delete from doc level.
Cascading delete from page level.
Msg 1105, Level 17, State 3:
Procedure 'delpage', Line 7:
Can't allocate space for object 'syslogs' in database 'ticdsf' because
the 'logsegment' segment is full. If you ran out of space in Syslogs,
dump the transaction log. Otherwise, use ALTER DATABASE or
sp_extendsegment to increase the size of the segment.
1> dump transaction ticdsf with truncate_only
2> go
Msg 1105, Level 17, State 3:
Line 1:
Can't allocate space for object 'syslogs' in database 'ticdsf' because
the 'logsegment' segment is full. If you ran out of space in Syslogs,
dump the transaction log. Otherwise, use ALTER DATABASE or
sp_extendsegment to increase the size of the segment.
1> alter database ticdsf on logs = 1
2> go
Extending database by 512 pages on disk logs
1> dump transaction ticdsf with truncate_only
2> go
Msg 1105, Level 17, State 3:
Line 1:
Can't allocate space for object 'syslogs' in database 'ticdsf' because
the 'logsegment' segment is full. If you ran out of space in Syslogs,
dump the transaction log. Otherwise, use ALTER DATABASE or
sp_extendsegment to increase the size of the segment.
1> sp_helpdb ticdsf
2> go
 name                     db_size  owner                    dbid   created    
         status                                                                                                 
 ------------------------ -------- ------------------------ ------ ----------- 
        ------------------------------------------------------------------------------------------------------ 
 ticdsf                   100 MB   sauvain                       8 Nov 30 1992
         select into/bulkcopy                                                                                   

 device_fragments               size          usage                
 ------------------------------ ------------- -------------------- 
 logs                           70 MB         log only             
 userdbs                        4 MB          data only            
 userdbs                        10 MB         data only            
 userdbs                        16 MB         data only            

 device                         segment                        
 ------------------------------ ------------------------------ 
 logs                           logsegment                     
 userdbs                        default                        
 userdbs                        system                         

(return status = 0)
Newsgroups: comp.databases.sybase