摘要

在 Microsoft SQL Server 2012年或較早版本的 SQL Server 中,則可能遇到錯誤訊息,當您執行 DBCC CHECKDB 命令有其位於參照格式化的磁碟區上的檔案的資料庫。錯誤訊息如下所示︰

訊息 5030,層次 16,狀態 12,行 1
資料庫無法以獨佔模式鎖定執行作業。

訊息 7926,層次 16,狀態 1,行 1
檢查陳述式已中止。無法檢查資料庫,因為無法建立資料庫快照集,而且無法鎖定資料庫或資料表。如需詳細資訊時這預期的行為,以及有何解決方案,請參閱線上叢書 》。請參閱先前的錯誤,如需詳細資訊。


如果沒有使用者連接到資料庫,DBCC CHECKDB 命令就會取得對資料庫的獨占鎖定,然後再執行對資料庫,而不是使用內部的快照集,它通常會檢查。

之所以發生這個問題,是因為 SQL Server 無法建立內部的快照集資料庫,藉由使用命名的資料庫檔案位於參考磁碟區上的資料流。

在 Microsoft SQL Server 2014年解決此問題。從這一版的 SQL Server,並不會使用命令的 DBCC CHECKDB 命名的資料流,建立內部的快照集的資料庫。

注意事項

  • 這份文件中的資訊會套用 (在於、 識別碼,以及定義) 的 DBCC CHECKDB 系列中的所有一致性檢查命令。

  • 參照也就可靠的檔案系統,以及它在 Windows Server 2012 開始引進。

更多的資訊

在 Microsoft SQL Server 2005年從 SQL Server 2012年至的 SQL Server 的版本中的 DBCC CHECKDB 命令的行為

  • DBCC CHECKDB 會建立一個內部的快照集的資料庫。

  • 使用命名的實體資料庫檔案內的資料流建立內部的快照集資料庫。

    • 請考慮具有E:\Data\my_DB.mdf、 E:\Data\my_DB.ndf和E:\Data\my_DB.ldf的三個檔案的資料庫。

    • 請考慮建立內部的快照集資料庫時,是以資料庫識別碼10。

    • 使用E:\Data\my_DB.mdf的檔案才會顯示資料庫內部的快照集: MSSQL_DBCC10和E:\Data\my_DB.ndf: MSSQL_DBCC10。

    • 請注意已命名的資料流建立使用格式<filename.extension>: MSSQL_DBCC <database_id_of_snapshot>。

    • 如果您嘗試參考磁碟區上建立具名的資料流,以檔案的形式存放,就會發生錯誤。不過,如果檔案位於 NTFS 磁碟區,不會不發生此錯誤。

  • 具名的資料流標記為疏鬆的檔案系統層級。

    • 「 大小在磁碟 」 使用具名的資料流將會增加根據多少資料,會在 DBCC CHECKDB 命令期間更新來源資料庫中。

    • 相同的檔案,為.mdf 或.ndf 檔案,將會 「 大小 」 的已命名的資料流。

  • 具名的資料流刪除是在處理的 DBCC CHECKDB 結尾處。

  • 具名的資料流不會顯示使用一般檔案的公用程式,例如 Windows 檔案總管] 中。

DBCC CHECKDB 的行為命令開頭是 SQL Server 2014

  • DBCC CHECKDB 會建立一個內部的快照集的資料庫。

  • 藉由使用實體資料庫檔案建立內部的快照集資料庫。

    • 請考慮具有E:\Data\my_DB.mdf、 E:\Data\my_DB.ndf和E:\Data\my_DB.ldf的三個檔案的資料庫。

    • 請考慮建立內部的快照集資料庫時,是以資料庫識別碼10。

    • 使用檔案E:\Data\my_DB.mdf_MSSQL_DBCC10和E:\Data\my_DB.ndf_MSSQL_DBCC10,將會建立內部的快照集資料庫。

    • 請注意 [建立新檔案時,會在相同的資料夾與命名慣例<filename.extension> _MSSQL_DBCC <database_id_of_snapshot>。

  • 新的檔案標記為疏鬆的檔案系統層級。

    • [大小在磁碟] 使用新的檔案會增加根據多少資料,會在 DBCC CHECKDB 命令期間更新來源資料庫中。

    • 「 大小 」 的新檔案將會是相同的檔案,為.mdf 或.ndf 檔案。

  • 新的檔案是在處理的 DBCC CHECKDB 結尾處刪除。

    • 這些額外的檔案所建立的 DBCC CHECKDB 會具有 [刪除在 [關閉] 設定的屬性。

    • 如果 DBCC CHECKDB 命令仍在進行時,作業系統會遇到非預期的關機,然後這些檔案將不會清除。它們會累加空間,並且可能會防止未來的 DBCC CHECKDB 執行,無法正確完成。在此情況下,您可以在您確認沒有目前正在執行 DBCC CHECKDB 命令之後,刪除這些新的檔案。

  • 使用一般檔案的公用程式,例如 Windows 檔案總管] 會顯示 [新的檔案。

參考

DBCC CHECKDB (交易 SQL)

有彈性的檔案系統概觀

當您在 SQL Server 中,執行任何檢查 DBCC 命令時,出現錯誤訊息: 「 資料庫無法以獨佔模式鎖定執行作業"

OS 錯誤 1450年與 665 的報告資料庫資料檔案

您可能會收到 「 FCB::RemoveAlternateStreams︰ 作業系統錯誤

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?

Thank you for your feedback!

×