Sql-Server
兩個 SQL Server 數據庫共享相同的 MDF 和 LDF 文件,但具有不同的數據
我有一個奇怪的情況,我有一個生產數據庫和一個還原副本作為同一個 SQL Server 實例上的另一個數據庫,並且它們都使用相同的 MDF 和 LDF 文件(即它們在 SQL Server 中具有相同的“邏輯”文件管理工作室)。根據我在研究時發現的情況,這是可能的,但所有跡像都表明它們都指向相同的數據,這是一個合理的假設。
但是,就我而言,兩個數據庫實際上都包含不同的數據。如果我在兩個同名的表上執行一個 select 語句,每個數據庫中一個,它們返回不同的數據。我已經雙重、三重和四重驗證了這一點。這怎麼可能?MS 文件或我發現的任何內容都沒有談到兩個數據庫共享相同的 MDF 文件但具有不同的數據。
不涉及 NDF 文件,每個 DB 中有一個文件組,每個文件組中只有一個文件。
不可能有兩個數據庫指向相同的數據庫文件,除非在您連結到的奇怪的自動關閉情況下,無論如何都不應該使用該設置。
執行以下查詢以查看數據庫指向的物理文件:
SELECT database_id, name, physical_name FROM master.sys.master_files
有了這些資訊,您應該能夠看到數據庫實際上並沒有指向相同的數據庫文件。
您還可以在 SSMS GUI 中查看此資訊。右鍵點擊數據庫,轉到屬性,然後轉到文件。現在向右滾動,因為物理文件尚不可見。路徑和文件名的組合將是唯一的。