sybase事務日志已滿解決方法
今天碰到一個奇怪的問題,當我打開應用程序的時候,開始的時候鼠標圖標還顯示程序正在啟動,可是一會後,就沒有任何反應了。重復了N多次都是這樣,後來發現,每次打開應用程序的時候,任務管理器中都會相應的多一個進程,但程序界面死活不出現。
我檢查了我能想到的可能出問題的每一個環節,包括Sybase數據庫、配置的IP、網絡等等,但終究都無濟於事。最後,無奈之下只能打客服了。果然,解鈴還須系鈴人,當我把我的問題描述了一下,技術人員立馬給我指出了問題之所在。原來不是程序的問題,而是Sybase數據庫日志空間滿了,無法繼續再執行操作了。(好吧,這都可以)
下面就詳細介紹一下截斷和清空日志的方法。在做截斷操作之前,建議大家先為數據庫做個備份。詳情請參考:Sybase數據庫的備份和還原 http://www.BkJia.com/database/201212/178583.html
第一步:設定Sybase數據庫自動截斷日志:
方法一:
[sql]
isql -Usa -Ppassword -Ssybaseserver
>sp_dboption database_name,"trunc log on chkpt",true
>go
>checkpoint
>go
方法二:在sybase central 數據庫屬性對話框的選項頁中選擇“在檢查點上截斷日志”項。如下圖:
第二步:清空日志:
方法一:
[sql]
>dump transaction database_name with truncate_only
>go
通常刪除事務日志中不活躍的部分可使用“dumptransaction with trancate_only”命令,這條命令寫進事務日志時,還要做必要的並發性檢查。
方法二:
[sql]
>dump transaction databasename with no_log
>go
SYBASE提供“dumptransaction with no_log”來處理某些非常緊迫的情況,使用這條命令有很大的危險性,SQL Server會彈出一條警告信息。
到此為止,問題就解決了,你可以查看一下數據庫日志文件的空間利用情況。