SQL Server資料庫檔案與Windows系統透明檔案壓縮

cow977發表於2014-05-29
 

日前,客戶附加一SQL Server資料庫,提示錯誤,錯誤資訊如下:

SQL Server資料庫檔案與Windows系統透明檔案壓縮
    查伺服器內部資料庫引擎日誌:

Could not open File Control Bank (FCB) for invalid file ID 2 in database 'InfoManager'. Verify the file location. Execute DBCC CHECKDB.

從檔名來看,並不是常用壓縮軟體產生的壓縮檔案的字尾名(.rar .zip .7z)等,檔案肯定不是壓縮軟體產生的壓縮檔案。

上網查了一圈,也沒找到錯誤的原因。

還好,腦子還算靈活,想到Windows系統有一項透明檔案壓縮功能,可以實現檔案正常使用,後臺系統壓縮儲存,達到節省磁碟空間的目的。點選出錯的資料庫檔案,檢視檔案屬性,確實鉤選了壓縮選項,如下圖。
SQL Server資料庫檔案與Windows系統透明檔案壓縮

取消檔案壓縮屬性後,資料庫附加成功。

下面,重現錯誤現象。

將正常資料庫csh1從伺服器上分離出去,鉤選檔案壓縮選項。
SQL Server資料庫檔案與Windows系統透明檔案壓縮

命令列操作:

USE [master]

GO

CREATE DATABASE [chs1] ON

( FILENAME = N'C:\...\chs1.mdf' ), ( FILENAME = N'C:\...\chs1_log.LDF' )

 FOR ATTACH

GO

訊息5118,級別16,狀態1,第1

檔案"C:\...\chs1.mdf" 已壓縮,但未駐留在只讀資料庫或檔案組中。必須將此檔案解壓縮。

訊息1813,級別16,狀態2,第1

無法開啟新資料庫'chs1'CREATE DATABASE 中止。

訊息5180,級別22,狀態1,第1

對於資料庫'chs1' 中無效的檔案ID 2,無法開啟檔案控制區(FCB)。請驗證檔案位置。執行DBCC CHECKDB

SQL Server資料庫檔案與Windows系統透明檔案壓縮
訊息5118,級別16,狀態1,第1

檔案"C:\...\chs1_log.LDF" 已壓縮,但未駐留在只讀資料庫或檔案組中。必須將此檔案解壓縮。

檔案啟用失敗。物理檔名稱'C:\...\chs1_log.LDF'可能不正確。

訊息5170,級別16,狀態1,第1

無法建立檔案'C:\...\chs1_log.LDF',因為它已存在。請更改檔案路徑或檔名,然後重試此操作。

訊息1813,級別16,狀態2,第1

    無法開啟新資料庫'chs1'CREATE DATABASE 中止。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/81227/viewspace-1172716/,如需轉載,請註明出處,否則將追究法律責任。

相關文章