SQL Server 2000向SQL Server 2008 R2推送資料

來源:互聯網
上載者:User

標籤:style   blog   http   io   os   使用   ar   strong   檔案   

【文章摘要】
最近做的一個項目要擷取存在於其他伺服器的一些資料,為了安全起見,採用由其他“伺服器”向我們伺服器推送的方式實現。我們伺服器使用的是SQL Server 2008 R2,其他“伺服器”使用的都是SQL Server 2000,還都是運行在Windows XP上的,整個過程遇到了一些問題,也參考了一些文檔,最終費了好多事才算搞定。

 

【文章索引】

  1. 配置散發者
  2. 配置發行集資料庫
  3. 配置訂閱

 

【一、配置散發者】

SQLServer 2000的複製服務包括三個角色:發行伺服器、散發者和訂閱伺服器,關係1所示。

圖1

其中發行伺服器(資料來源伺服器)負責將資料的改變(如快照或事務等)傳送到散發者中,由散發者將這些資料的改變分發到訂閱伺服器(目標伺服器)中。其中散發者可以與發行伺服器配置在一台伺服器中。

在配置散發者之前,首先需要開啟SQL Server Agent服務並配置為自動啟動。除此之外,對於資料庫複寫操作,SQL Server Agent不能使用系統賬戶登入,而必須為本地賬戶,可以在“登入”選項卡中,將“登入身份”設定為“此賬戶”,選擇任一管理員賬戶即可(該管理員賬戶必須有密碼)。

然後就可以配置散發者了。在SQL Server 2000中,開啟企業管理器,然後選擇已經註冊的SQL Server伺服器(此處為本機伺服器),然後選擇“工具”菜單,選擇“嚮導”,出現2所示的對話方塊。

圖2

選擇“配置發布和分發嚮導”,確定後點擊下一步出現3所示的對話方塊。

圖3

如果需要在當前資料庫伺服器上建立散發者,選擇第一項即可,否則選擇第二項,然後點擊下一步,出現4所示的對話方塊。

圖4

這裡需要注意的是,快照檔案夾路徑必須為網路路徑,即\\電腦名稱\盤符預設共用\路徑,預設系統已經填好該項,直接點擊下一步即可。如果出現出錯的情況,可以開啟cmd,輸入“net share”查看當前共用中是否有盤符的預設共用,如果沒有的話,使用“net share c$”即可建立預設共用,如果還不行可以訪問參考連結2。

成功後一路下一步即可配置好散發者。配置完散發者後,在註冊的資料庫伺服器中就會出現“複製監視器一項”。

 

【二、配置發行集資料庫】

對於SQL Server 2000向2000推送資料,接下來的操作可以繼續在企業管理器中完成,而對於SQL Server 2000向高版本SQL Server推送資料,則需要安裝相應版本的SQL Server Management Studio,否則在最後一步串連訂閱伺服器時無法串連(出現“[sql-dmo]必須使用sql server2005 管理工具才能串連到此伺服器”粗無)。我們的目標伺服器安裝的是SQL Server 2008 R2,所以需要安裝SQL Server 2008 R2 Management Studio。

安裝完成後首先串連到本機伺服器,注意,伺服器名稱不能使用“(local)”或者IP,必須使用本機電腦名稱,登入方式使用SQL Server 身份認證。

要配置待發布的資料庫,首先需要確保該資料庫的“復原模式”為“完整”,按右鍵資料庫,選擇屬性,然後選擇“選項”,在“復原模式”中設定為“完整”即可。

接下來就可以建立本地發布了,展開本機資料庫,展開“複製”,在“本地發布”按右鍵選擇“建立發布”,5。

圖5

點擊下一步後選擇待發布的資料庫,點擊下一步即進入選擇發布類型的對話方塊,6所示。

圖6

其中快照發布適合於表中無主鍵的資料表,每次複製時將資料全部複製過去;事務發布要求發布的資料表必須含有主鍵,否則無法複製。顯然當資料量較大時,使用後者更好一些。如果資料庫可以修改,建議將沒有主鍵的表增加一個自增主鍵。這裡由於來源資料表中沒有主鍵,也不能修改資料表結構,只能選擇“快照發布”。點擊下一步後出現選擇要發布的內容的對話方塊,如果某個表不符合要求(如選擇的事務發布但沒有主鍵)則表名前出現禁止符號並且無法選擇,7所示。

圖7

再次點擊下一步後出現自訂篩選資料的對話方塊,如果不需要篩選資料,點擊下一步進入設定快照代理時間。快照代理即負責產生資料庫的修改,可以設定為按天、周、月重複執行。這裡每天推送一次,所以也只需要產生一次快照,8所示。如果打算設定完訂閱後立即推送一次,可以選擇勾選第一個選項。

圖8

然後一路下一步即可完成發布的設定。

 

【三、配置訂閱】

完成上述兩步後就可以配置訂閱了,訂閱分為兩種,分別是推式訂閱和拉式訂閱,前者由散發者串連訂閱伺服器,向訂閱伺服器推送資料;後者由訂閱伺服器串連散發者,向散發者拉取資料。所以在完成上一步後,“本地發布”中即出現了新建立的發布,按右鍵選擇“建立訂閱”即可出現“建立訂閱嚮導”對話方塊,點擊下一步後已經選擇了當前的訂閱,繼續點擊下一步,出現訂閱類型設定,9。

圖9

這裡選擇“推式訂閱”,然後點擊下一步出現選擇訂閱伺服器和訂閱資料庫的對話方塊,10所示。

圖10

首先點擊“添加 SQL Server 訂閱伺服器”添加訂閱伺服器,出現“串連到伺服器”對話方塊,需要注意的是,訂閱伺服器也需要使用伺服器名稱登入。如果目標伺服器與本地位於同一個區域網路內,使用目標伺服器名可以直接登入;否則則需要設定hosts檔案,添加目標伺服器IP與名稱的對應關係才可以。登入方式同樣使用SQL Server 身份認證。注意,修改完hosts重啟之後才會生效。

添加完訂閱伺服器後,如果訂閱伺服器中有同名的資料庫,則會自動顯示在“訂閱資料庫”中。除此之外,訂閱資料庫需要登入帳號有“db_owner”許可權,否則不會顯示在“訂閱資料庫”中,當然也可建立資料庫。點擊下一步後出現設定同步計劃的對話方塊,11。

圖11

代理計劃可以設定為“連續運行”、“僅按需運行”或與建立發布時類似的自訂時間,其中“連續運行”指的是一直檢查更新並推送到訂閱伺服器中,“僅按需運行”則需要手動執行,“<定義計劃>”與建立發布時相同,可以設定重複執行的周期。如果每天只推送一次的話,可以設定在上一步快照代理執行時間之後的一個事件,設定完同步計劃後下一步可以設定初始化時間,12。

圖12

初始化時間可以設定為“立即”或“首次同步時”,如果上一步設定發布時選擇的立即產生快照,同時這裡選擇“立即”初始化訂閱的話,那麼嚮導完成後會立即推送一次資料;否則將按預設的計劃執行。

按上述設定完成後遇到了一個問題,在執行訂閱代理時,出現“登入失敗。該登入名稱來自不受信任的網域,不能與 Windows 身分識別驗證一起使用”的錯誤。但是查看發現不論本機伺服器還是訂閱伺服器均使用SQL Server 身份認證。後來進入SQL Server 2000的企業管理器,在本機伺服器的“複製”中按右鍵,選擇“配置發布、訂閱伺服器和分發”,然後點擊訂閱伺服器,在訂閱伺服器的列表中點擊之前設定的訂閱伺服器右側的“...”,發現登入方式為“Windows 身份認證”。重新將訂閱伺服器的登入配置為SQL Server 身份認證即可解決該問題。

 

【參考連結】

  1. Configuring Snapshot, Merge, and Transactional Replication:http://technet.microsoft.com/library/Cc917633
  2. windows預設共用的開啟和關閉:http://www.cnblogs.com/Fooo/archive/2007/06/04/771021.html

SQL Server 2000向SQL Server 2008 R2推送資料

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.