在執行復制之前必須對系統進行復制選項的配置,主要包括: 出版者 訂購者 分發者 分發數據庫 通過sql server enterprise manager 提供的create publication wizard 和 the configure publishing and distribution wizard, 將會使配置工作變得簡單,迅速。
16.2.1 創建服務器角色和分發數據庫 創建服務器角色是指在復制過程中某一服務器是作為出版者、分發者還是作為訂購者s捎赟ql server 可以扮演一個或多個角色,所以我們必須指定由哪個服務器來扮演哪些角色。 分發數據庫(distribution database) 用來存儲復制給訂購者的所有事務以及出版者與訂購者的同步信息。在分發數據庫有很多與復制有關的系統表。進行復制前必須首先創建分發數據庫(與系統有關的系統表會自動生成),同時指定出版者、出版數據庫、分發者、訂購者。使用sql server enterprise manager 來創建分發數據庫主要按以下步驟: (1) 啟動sql server enterprise manager, 選中準備扮演出版者角色的服務器。 (2) 在主菜單上選擇tools 菜單項在下拉菜單中再選擇replication 選項,選中configure publishing, subscribers, and distribution 選項,此時會彈出welcome to the configure publishing and distribution wizard 對話框。如圖16-5 所示。 (3) 從中可以得知通過該向導能夠實現哪些復制配置,單擊“下一步”繼續操作,此時彈出select distributor 對話框。如圖16-6 所示。 在該對話框中可以使用默認選項make ‘xujin’ its own distributor; sql server will create a distribution database and log 來指定當前出版者服務器扮演分發者角色,若選擇此選項,則會在分發者服務器上創建一個分發數據庫和日志。如果選擇另外一個選項,應該注意被選定的服務器必須已被配置為分發者且已經創建了分發數據庫。在此使用默認選項, (4) 單擊“下一步”,此時彈出configure sql server agent 對話框。如圖16-7 所示。選擇yes 選項表示自動啟動sql server agent, 選擇no 選項,則表示手工啟動sql server agent。 (5) 單擊“下一步”,彈出customize the configuration 對話框。在該對話框內如果選擇默認的選項。即no, use the following default setting ,那么sql server 將自動配置復制選項,它將把當前服務器作為分發者,分發數據庫和事務日志被放在/mssql/data 目錄下,所有登記的服務器都被選為訂購者。您也可以選擇自定義選項,即yes, let’s…. 選項來對分發者、出版者、訂購者、分發數據庫進行配置(我們將在下一節對其進行具體的介紹)。在這里我們選擇默認選項。 (6) 單擊“下一步”,然后在打開窗口(如圖16-8 所示)中單擊“finish” 按鈕,此時會彈出一個報告窗口configure publishing and distribution on ‘server _name’ 來顯示創建進度。通過該窗口能了解sql server 完成了哪些工作。
1 配置分發選項 利用sql server enterprise manager 執行配置分發選項的步驟為: (1) 啟動sql server enterprise manager, 選中要進行分發選項配置的分發者服務器。 (3) 單擊標簽頁上的“new”, 按鈕將添加新的分發數據庫,或使用“delete” 從 distribution database 選項欄的database 框中選中刪除一個已存在的分發數據庫,若要對分發數據庫進行屬性設置,則首先選中該分發數據庫,然后單擊 properties 按鈕,打開distribution properties 對話框,如圖16-10 所示。 該對話框提供了以下信息:分發數據庫名稱;在publishers 下的多行編輯框內顯示使用該分發數據庫的出版者;transaction retention 用來設定事務保存在分發數據庫中最短時間與最長時間(該選項對于備份和恢復分發數據庫很有意義);history retention 用來設定復制性能歷史記錄的保存在分發數據庫的時間。如果選用的單位為小時,則保存時間的取值范圍為0 至9999 ;如果單位為天,則取值范圍為0 至416。 (4) 單擊agent profiles 選項欄中的agent profile 按鈕,打開agent profile for “server_name” 對話框,如圖16-11 所示。 該對話框用來對復制代理快照(代理日志、閱讀代理、分發代理、合并代理、閱讀日志代理)運行參數進行設置。當創建復制代理時,將生成與其相關的agent profile, 它由分發者維護。復制代理每次啟動時都要從agent profile 中讀取信息,來確定自己的運行方式。通過copy 按鈕,可以創建新的agent profile; 通過 view details 可以查看或修改各參數的值,如圖16-12 所示;通過 delete 可以刪除agent profile。 2 配置出版選項 在配置完分發選項后,就可以配置出版選項來指定哪個出版者將使用已創建的分發者和分發數據庫。sql server 允許多個出版者使用同一個分發數據庫。如果出版者是一臺遠程服務器,那么它必須有訪問分發數據庫的權限。使用sql server enterprise manager 來允許出版者使用分發數據庫的步驟如下: (1) 啟動sql server enterprise manager, 選中分發者服務器。 (2) 在主菜單中選擇tools, 在下拉菜單中選擇replication, 然后選擇configure publishing, subscribers and distribution 選項,此時會打開publisher and distributor properties 對話框,選中publisher 標簽。如圖16-13 所示。 (3) 通過選中server 表格內的空白框來指定該出版者是否使用當前分發數據庫。 (4) 單擊分發數據庫旁的方框按鈕,打開如圖16-14 所示的出版者屬性設置對話框。進行其它選項的設置。
如果分發者上有多個分發數據庫,則應為出版者選擇一個分發數據庫。在snapshot folder 設置出版物快照文件存放的位置。如果對于出版者來說,該分發者是遠程的,則必須保證運行在出版者上的快照代理具有訪問分發者快照文件的權限。 若分發者服務器運行在nt 平臺上,在默認情況下,快照文件存儲路徑為//<computer>/<driver>/microsoft sql server/mssql/repldata。 若分發者服務器運行在window95/98 下,則快照文件的存儲路徑為//<computer>/<driver>/microsoft sql server/mssql/repldata。 如果采用拉訂購模式,則快照文件必須存儲成網絡路徑格式。這樣運行在訂購者和出版者上的復制代理才能正確地訪問快照文件。 3 配置出版數據庫 在為出版者指定分發數據庫之后還需要設定用于出版的數據庫,然后才能在出版數據庫上創建出版物。設定一個用于出版的數據庫需要執行以下步驟: (1) 啟動sql server enterprise manager, 選中分發者服務器。 (2) 在主菜單中選擇tools, 在下拉菜單中選擇replication, 然后選擇configure publishing, subscribers and distribution 選項,此時會打開publisher and distributorproperties 對話框,選中publication database 標簽。如圖16-15 所示。 (3) 在database 下的表格內單擊trans 或merge 列下的復選框來設定出版數據庫是用于事務復制還是合并復制。 當然也可以通過復選框來禁止某一數據庫來出版出版物。如果某一出版數據庫被禁止出版,那么在該數據庫中已創建的出版物將被刪除掉。 4 配置訂購選項 當設置完分發數據庫選項和出版活動選項后,就必須設置訂購者,以讓其知道從哪里接收復制數據。使用sql server enterprise manager 使上一個遠程服務器扮演訂購者角色需執行以下步驟來進行選項配置: (1) 啟動sql server enterprise manager, 選中分發者服務器。 (2) 在主菜單中選擇tools, 在下拉菜單中選擇replication, 然后選擇configure publishing, subscribers and distribution 選項,此時會打開publisher and distributor properties 對話框,選中標簽 。如圖16-16 所示; (3) 在subscribers 下的表格中單擊復選框來指定某一遠程服務器扮演訂購者角色。 (4) 單擊enable all, 則表格中所列出的所有服務器都作為訂購者從出版者接收復制數據;單擊enable none, 則禁止表格中服務器從出版者接收復制數據;單擊new 表示添加新的訂購者,將打開 enable new subscriber 對話框。如圖 16-17 所示。 添加新的訂購者時,可以添加sql server 訂購者,也可以添加異構訂購者。sql server 支持三種異構訂購者,它們是: sql server database microsoft access odbc 數據源 ole db 數據源
在使用異構訂購者前必須首先創建相應的數據源。不同的非sql server 數據源有不同的創建要求和限制,比如,是否包含用戶名,對數據類型的支持范圍不同。另外,還應注意以下幾點: 在通常情況下非sql server odbc 數據源只能作為訂購者;快照復制和事務復制適用于所有非sql server 訂購者;異構訂購者只能使用推訂購的方式。 (5) 如果并不打算添加新的訂購者,則不必執行step4。 通過單擊表格中訂購者右邊的方框按鈕可打開訂購者屬性對話框,對其它屬性項進行設置。如圖16-18 所示。 在該對話框內顯示訂購的類型(sql server odbc ole db), 以及關于訂購的描述信息。在agent connection to subscriber 下的選項欄中,通過選中單選按鈕設置復制代理日志寫入訂購者時的安全認證模式和設置。如果選擇impersonate the sql server agent account on ‘xujin’ (trusted connection)選項,則表示利用出版者上sql server agent 賬號來進行認證,默認情況下使用該設置。use sql server authentication 表示使用sql server 認證模式,此時要求通過輸入賬號和密碼來建立一個信任連接。
(6)選中schedules標簽,出現如圖16-19所示的對話框。 使用該對話框來設置分發代理或合并代理運行的缺省時間。在默認情況下為continuously。若選擇at the following scheduled times,則單擊change按鈕會打開edit recurring job schedule對話框。如圖16-20所示。在該對話框可對代理運行的時候表進行設置。
16.2.3 刪除復制配置信息 可以對復制配置,當然也可以使這些復制選項的配置無效。在sql server 中disable publishing and distribution wizard 可以幫助我們完成這一任務,而且只要禁用分發者便可以對復制產生以下影響: 在分發者上的分發數據庫將被刪除; 所有使用該分發者的出版者服務器將喪失出版者角色,并且出版者的所有出版物被刪除; 所有訂購也被刪除。
如果此向導能登錄到出版者,則在禁用出版者之前會刪除所有出版物;如果不能,則雖然禁用出版者但是出版數據仍存在于以前的出版者上,必須使用手工操作來刪除。 使用sql server enterprise manager 來禁用一服務器扮演分發者角色需執行以下步驟: (1) 啟動sql server enterprise manager, 選中分發者服務器。 (2) 在主菜單中選擇tools, 在下拉菜單中選擇replication, 然后選擇disable publishing…. 選項,此時會打開disable publishing and distribution wizard startup 對話框,如圖16-21 所示,從中可以看到該向導能夠實現哪些功能。 (3) 單擊“下一步”按鈕,打開disable publishing 對話框。如圖16-22 所示。在該對話框內如果選擇yes, disable publishing on…..選項,則會禁用分發者以及出版者,并且刪除分發數據庫和出版者上的出版物(在有些情況下仍保留分發數據庫)。單擊“下一步”按鈕,sql server 將按要求執行相關處理。如果選擇no, continue to use “distributor” as a distributor 選項,則不會進行任何處理。 (4) 單擊“下一步”按鈕,sql server 將按要求執行相關處理,同時彈出一個進行對話框,如圖16-23 所示。 (5) 通過單擊“cancel” 可以取消操作,單擊“finish”, 完成整個向導。