首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> SQL Server 2008

SQL Server 2000 向 SQL Server 2008 R2 推送資料:交易式/快照式複寫完整圖文教學

     編輯:SQL Server 2008

跨版本異構環境下,將 SQL Server 2000 (發佈端) 資料推送至 SQL Server 2008 R2 (訂閱端),採用**發佈/訂閱複寫**機制。本文完整記錄:設定散發者、建立發佈 (快照式因無主鍵)、建立推式訂閱、解決訂閱端驗證模式錯誤、Hosts 檔案設定跨網段名稱解析等實戰細節。

架構角色

  • 發佈者:SQL Server 2000 (資料來源),執行於 Windows XP。
  • 散發者:可與發佈者同機,暫存複寫資料與中繼資料。
  • 訂閱者:SQL Server 2008 R2 (目標端),接收資料。

複寫角色關係圖

一、設定散發者 (SQL Server 2000 企業管理員)

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

精靈選擇

散發者選擇

快照資料夾路徑

二、設定發佈資料庫 (需 SQL Server 2008 R2 Management Studio)

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

本案例因來源表無主鍵且不可修改結構,**選擇快照式發佈**。

新增發佈

發佈類型選擇

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

文章選擇

快照代理排程

三、建立推式訂閱 (Push Subscription)

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

訂閱類型

加入訂閱者

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

同步排程

初始化時間

四、關鍵問題排解:訂閱代理登入失敗 (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 的跨版本資料推送複寫。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved