伺服器SQL2000資料庫(例名為DBX)中,交易紀錄檔過大但縮減失敗:

BACKUP LOG DBX WITH TRUNCATE_ONLY
DBCC SHRINKFILE(DBX_NEW_LOG, 2)

錯誤訊息
LogFile 'DBX_NEW_Log' 的 壓縮 失敗。  (Microsoft.SqlServer.Smo)
無法將檔案 'DBX_NEW_Log' 放到 sysfiles。
DBCC 的執行已經完成。如果 DBCC 印出錯誤訊息,請聯絡您的系統管理員。 (.Net SqlClient Data Provider)


檢測後發現原因:
此資料庫檔原始名稱為DBX_DATA;交易檔名稱為DBX_LOG,架設初期某次還原重建時改用了名稱為DBX_NEW_DATA;DBX_NEW_LOG。
此狀況在壓縮交易檔時發生錯誤,因為名稱不一。

查詢舊名稱
dbcc fileheader(DBX)
查詢新名稱
select * from DBX.dbo.sysfiles

修改名稱,將其改至一致
alter database DBX
modify file(name=DBX_LOG,newname=DBX_2012_LOG)

修改名稱,再改回為前述新名稱(應該沒有一定要)
alter database DBX
modify file(name=DBX_2012_LOG,newname=DBX_NEW_LOG)

DATA檔案作法同上

名稱修正後已可縮減LOG FILE的大小。

arrow
arrow
    全站熱搜

    You don't know 發表在 痞客邦 留言(0) 人氣()