萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> 資料庫綜合

SQL Server 資料庫附加完整操作指南:MDF/LDF 檔案遷移實戰

SQL Server 資料庫附加操作全流程:從檔案複製到上線驗證

資料庫附加 是將分離或備份的 .mdf (資料檔) 與 .ldf (記錄檔) 重新掛載至 SQL Server 實例的操作。適用於伺服器遷移、版本升級、測試環境部署等場景。本文詳述標準操作步驟、常見錯誤與解決方案。

前置準備:檔案就緒

  1. 確保擁有 .mdf (主資料檔) 與 .ldf (交易記錄檔) 兩個檔案
  2. 預設路徑:C:\Program Files\Microsoft SQL Server\MSSQL\Data\
  3. 將檔案複製至目標伺服器同路徑或自定目錄 (需 SQL Server 服務帳號讀寫權限)

圖形化介面操作步驟 (SSMS / 企業管理員)

  1. 開啟 SSMS,連線至目標 SQL Server 實例
  2. 物件總管中右鍵 資料庫 → 選擇 附加...
  3. 彈出「附加資料庫」對話框,點擊 加入
  4. 瀏覽選取 .mdf 主檔案,系統自動關聯同目錄下的 .ldf
  5. 關鍵檢查:
  • 附加為:指定資料庫名稱 (不可與現有資料庫重名)
  • 擁有者:指定資料庫擁有者 (建議 sa 或專用應用帳號)
  • 若 .ldf 路徑不同,在下方格手動修正路徑
  1. 點擊 確定,等待附加完成
  2. 物件總管重新整理,確認資料庫出現在列表中

T-SQL 指令碼附加 (自動化部署首選)

CREATE DATABASE [MyDatabase] ON 
( FILENAME = N'D:\SQLData\MyDatabase.mdf' ),
( FILENAME = N'D:\SQLLog\MyDatabase_log.ldf' )
FOR ATTACH;

僅有 .mdf 檔案時 (記錄檔遺失/損毀):

CREATE DATABASE [MyDatabase] ON 
( FILENAME = N'D:\SQLData\MyDatabase.mdf' )
FOR ATTACH_REBUILD_LOG;

會自動建立新的空記錄檔,但會丟失未提交的交易,僅限非生產環境或已接受資料損失風險時使用。

常見錯誤與解決方案

錯誤訊息原因解決方案
Access denied / 拒絕存取SQL Server 服務帳號無檔案讀寫權限授予服務帳號資料夾完整控制權限,或移至預設 Data 目錄
Database 'xxx' already exists資料庫名稱衝突指定不同的「附加為」名稱,或先刪除/重命名現有資料庫
Log file 'xxx' does not match.mdf 與 .ldf 版本不符 (可能來自不同備份時間點)確保成對檔案來自同一次分離/備份操作
Version mismatch / 版本不相容嘗試將高版本 (如 2019) 檔案附加到低版本 (如 2016)不支援降級附加,需相同或更高版本實例
File activation failure.ldf 路徑錯誤或檔案遺失在附加對話框手動修正 .ldf 路徑,或使用 ATTACH_REBUILD_LOG

附加後驗證清單

  1. DBCC CHECKDB:DBCC CHECKDB('MyDatabase') WITH NO_INFOMSGS - 檢查邏輯/物理完整性
  2. 檢查相容性等級:SELECT compatibility_level FROM sys.databases WHERE name='MyDatabase',必要時調整
  3. 更新統計資料:EXEC sp_updatestats - 遷移後統計資料可能過時
  4. 檢查孤立使用者:EXEC sp_change_users_login 'Report',修復登入映射
  5. 設定資料庫屬性:復原模式、自動收縮、自動更新統計等

分離與附加 vs 備份與還原

特性分離/附加備份/還原
適用場景檔案層級移動、同版本實例間遷移跨版本、跨機器、災難恢復、定期備份
資料一致性需確保資料庫離線/分離時一致備份過程保證交易一致性
檔案大小原始大小可壓縮、可差異備份
權限需求檔案系統權限僅需 SQL Server 權限

最佳實踐建議

  • 生產環境遷移**優先使用備份/還原**,更安全可控
  • 附加前務必驗證檔案完整性 (檔案大小、修改時間、成對關係)
  • 記錄檔路徑若變更,**在附加對話框/腳本中显式指定**
  • 附加後**立即執行 DBCC CHECKDB** 與統計資料更新
  • 自動化部署使用 T-SQL 腳本,納入 CI/CD 流程

掌握附加操作細節與風險點,讓資料庫遷移與部署更加從容可控。

copyright © 萬盛學電腦網 all rights reserved