部署 SQL Server 2008 複寫架構時,必須評估 **向後相容性** 風險:哪些功能在後續版本 (2012/2014/2016/2017/2019/2022) 中已棄用或移除?本文以交易複寫與異構訂閱為例,提供遷移路徑與最佳實踐。
@retention) 棄用風險sp_addpublication @retention = 336 (預設 336 小時 = 14 天)max distribution retention (預設 72 小時) 控制命令保留@retention 應 ≥ 散發保留期@retention 參數MSreplication_* 系統表膨脹@retention,使用預設值或透過監控作業自訂清理邏輯sp_changedistributor_property @max_distretention = 2880 (48 小時~視 RPO 而定)MSsubscriptions 狀態,超過閾值自動觸發重新初始化或告警| 介面 | 效能 | 安全性 | 功能支援 | 未來 |
|---|---|---|---|---|
| ODBC | 較低 (多層轉換) | 較弱 | 基礎型別 | 棄用/移除 |
| OLE DB | 高 (原生提供者) | 強 (整合安全性) | 完整型別、大值型別、XML、CLR UDT | 標準路徑 (SQL Server Native Client / MSOLEDBSQL) |
Provider=MSOLEDBSQL;Data Source=OraServer;User ID=rep_user;Password=xxx;sqlcmd| 階段 | 目標 | 關鍵技術 |
|---|---|---|
| 短期 (0-6月) | 清理棄用相依 | 移除 @retention 依賴、ODBC→OLE DB、ActiveX→CLR/SP |
| 中期 (6-18月) | 高可用性強化 | 發行者/散發者/訂閱者部署於 AlwaysOn 可用性群組 |
| 長期 (18月+) | 雲原生/混合複寫 | Azure SQL 受控執行個體複寫、SQL Data Sync、CDC + Event Hub + Kafka |
複寫是成熟但老舊的技術棧。**主動清理棄用相依、擁抱 OLE DB/AlwaysOn/雲原生替代方案**,才能確保架構在版本升級中平滑演進,避免技術債務爆雷。