SYBASE 日志空間滿了的幾種情況


1、在數據庫執行SQL語句時,執行不成功,報錯:日志空間已滿(***log full**)的錯誤

解決方法:執行 dump transaction DB_TASK with truncate_only   即可

2、在java項目運行時控制台報錯:Space available in the log segment has fallen critically low in database 'DB_TASK_R11'.  All future modifications to this database will be aborted until the log is successfully dumped and space becomes available.

這個時候再用1的方法就不可以了,可以用一下方法:

sp_helpdb 'DB_TASK_R11'   -----在【device_fragments】字段查到對應日志文件的名稱,例如:DEV_TASK_LOG01_R11

sp_helpdevice 'DEV_TASK_LOG01_R11'  ------查看原來日志文件存儲的物理位置,查看查詢結果的【physical_name】字段 結果為:C:\sybase\data\DEV_TASK_LOG01_R11.dat

 

disk init name = 'DEV_TASK_LOG02_R11',
physname = 'C:\sybase\data\DEV_TASK_LOG02_R11.dat',
size = '150M', dsync = false
go              --------在同樣的物理位置上,參照日志文件1的名字創建日志文件2,大小視數據庫的情況而定,一般不要超過DATA的大小

 

ALTER DATABASE DB_TASK_R11
log ON DEV_TASK_LOG02_R11 = 150
go                      ----------將新建的日志掛到對應數據庫上

 

百度查詢的是需要重啟數據庫才會生效,但是我沒有重啟數據庫,重新運行java的web項目也沒有在報這個錯誤,如果還報錯可以重啟一下數據庫應該就好了。

 

PS:SELECT COUNT(*) FROM DB_TASK_R11..syslogs      ---這個語句可以查看數據庫的日志里面的記錄數

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM