SQL Server 跨伺服器遷移資料庫指南 (SQL Server Database Migration)
2021-03-18
筆記 SQL Server 跨伺服器遷移資料時的參考指南、實用指令以及注意事項 😊
說明
How To Migration
方式一:Backup & Restore
遷移資料庫最方便的方式,缺點是無法只複製結構,資料內容如果要過濾必須自行 DELETE
、TRUNCATE
方式二:Create Scripts
可以產生只有結構不含資料的資料庫,但缺點是在 Stored Procedures、Function、View 等部分再產生時可能發生錯誤,需要逐一除錯較為麻煩。
方式三:複製資料庫
使用 SQL Server Management 選擇資料庫後,從「工作」可以找到「複製資料庫」。
複製資料庫有兩種方式,分別是「卸離與附加」以及「傳送資料庫」,使用傳送資料庫的好處在於不影響來源資料庫,但速度較慢,
而原理上都是將這些複製資料庫的步驟包裝成 SSIS 封裝來進行。
確認事項
列出資料庫伺服器中的資料庫資訊
SELECT
d.name, -- 資料庫名稱
f.physical_name, --實體檔案路徑
d.state_desc, --資料庫狀態 線上、離線、復原模式
(cast(f.size AS FLOAT)*8)/1000 AS fileSize, --實體檔案大小 MB
d.recovery_model_desc, --復原模式 完整、批次、簡單
d.compatibility_level, --相容性等級
d.create_date , f.differential_base_time --建立日期與檔案異動日期
FROM sys.master_files as f
JOIN sys.databases AS d ON f.database_id = d.database_id
問題處理
在 Migration 資料庫,一個重要的問題是伺服器層級的資料庫物件如何移動?
包含 Login (登入),當 Login 和 User 不一致的時候,稱為孤兒使用者或者是孤立使用者 (Orphaned User) 這個問題經常發生在資料庫 Migration 上,可以參考 孤兒 / 孤立使用者 進行處理。