跨版本異構環境下,將 SQL Server 2000 (發佈端) 資料推送至 SQL Server 2008 R2 (訂閱端),採用**發佈/訂閱複寫**機制。本文完整記錄:設定散發者、建立發佈 (快照式因無主鍵)、建立推式訂閱、解決訂閱端驗證模式錯誤、Hosts 檔案設定跨網段名稱解析等實戰細節。
架構角色
- 發佈者:SQL Server 2000 (資料來源),執行於 Windows XP。
- 散發者:可與發佈者同機,暫存複寫資料與中繼資料。
- 訂閱者:SQL Server 2008 R2 (目標端),接收資料。

一、設定散發者 (SQL Server 2000 企業管理員)
- 啟動 **SQL Server Agent** 服務並設為自動啟動;登入身分**必須為本地管理員帳號** (非系統帳號),且須有密碼。
- 企業管理員 → 工具 → 精靈 → 設定發佈和散發精靈。
- 選擇「本機伺服器做為自己的散發者」。
- 快照資料夾路徑**必須使用網路路徑**:
\\電腦名\盤符$\路徑 (預設行政共享)。若無共享,執行 net share c$ 建立。
- 完成精靈,註冊伺服器下出現「複寫監視器」。



二、設定發佈資料庫 (需 SQL Server 2008 R2 Management Studio)
SQL 2000 企業管理員無法連線 SQL 2008 R2 訂閱端,必須在發佈端安裝 SQL Server 2008 R2 Management Studio 進行後續操作。
- 以 **本機電腦名稱** (不可用
(local) 或 IP) 連線 SSMS,使用 SQL 驗證。
- 目標資料庫右鍵 → 內容 → 選項 → **復原模式設為「完整」** (交易式複寫必要)。
- 展開複寫 → 本地發佈 → 右鍵 新增發佈。
- 選擇發佈資料庫 → 發佈類型:
- 快照式發佈:適合無主鍵資料表,每次全量複寫。
- 交易式發佈:要求資料表有主鍵,增量複寫效能佳。
本案例因來源表無主鍵且不可修改結構,**選擇快照式發佈**。


- 選擇發佈文章 (資料表/檢視/預存程序/函數) — 無主鍵表在交易式下會顯示禁止符號無法選取。
- 快照代理排程:每日一次,設定在業務低峰期;可勾選「立即建立快照」首次同步。
- 代理安全性:快照代理執行帳號 (Windows)、連接發佈者帳號 (SQL 驗證,建議 sa)。
- 命名發佈完成。


三、建立推式訂閱 (Push Subscription)
- 本地發佈右鍵 → 新增訂閱。
- 選擇剛建立的發佈 → 訂閱類型選 **推式訂閱** (散發者主動推送至訂閱者)。
- 加入 SQL Server 訂閱者:
- **伺服器名稱必須使用電腦名稱** (不可用 IP)。
- 跨網段需在發佈端
C:\Windows\System32\drivers\etc\hosts 新增 訂閱者IP 訂閱者電腦名,修改後重啟生效。
- 登入方式:SQL Server 驗證 (訂閱者端的 sa 或具 db_owner 的帳號)。


- 選擇訂閱資料庫 (訂閱者端需預建同名資料庫,登入帳號需有 db_owner)。
- 同步排程:設定在快照代理完成後 (如快照 02:00 完成,同步排 02:30)。
- 初始化時間:選「立即」或「首次同步時」。


四、關鍵問題排解:訂閱代理登入失敗 (Windows 驗證錯誤)
現象:訂閱代理執行報錯:
登入失敗。該登入名來自不受信任的網域,不能與 Windows 驗證一起使用。
原因:企業管理員中「設定發佈、訂閱者和散發者」→ 訂閱者屬性 → 登入方式預設為 **Windows 驗證**,但跨網域/工作群組環境無法使用。
解決:將訂閱者登入方式改為 **SQL Server 驗證**,輸入訂閱端 sa 帳密。
五、驗證與維護
- 複寫監視器檢視快照代理、記錄讀取代理、散發代理狀態。
- 訂閱端查詢目標資料表確認資料同步。
- 定期監控快照資料夾磁碟空間、代理作業歷程記錄。
關鍵提醒總結
| 項目 | 要求 |
| SQL Server Agent 帳號 | 本地管理員,非系統帳號 |
| 快照資料夾 | 網路路徑 \\Server\C$\Path (行政共享) |
| 發佈端工具 | 必裝 SQL Server 2008 R2 Management Studio |
| 連線伺服器名稱 | 電腦名稱 (非 IP/(local)),跨網段需 hosts 解析 |
| 資料庫復原模式 | 完整 (交易式必要;快照式建議) |
| 訂閱者登入方式 | SQL Server 驗證 (跨網域環境) |
| 訂閱資料庫權限 | 訂閱帳號需 db_owner |
遵循上述流程與注意事項,可穩定實現 SQL Server 2000 向 2008 R2 的跨版本資料推送複寫。