sql server 2000 提供了比以前版本更多的復制選項,其中包括立即更新訂購者,排隊更新,以排隊更新作為熱備份的立即更新,傳遞復制數據,過濾出版數據等。其中前三個選項表示可在訂購者處對復制數據進行修改,然后將修改以相應的方式反映到出版者那里。如果在復制中使用這些復制選項,將使復制的配置和管理更為困難,所以很有必要對這些復制選項有著更為清晰的認識和了解。
16.6.1 立即更新訂購者 所謂立即更新訂購者是指在復制時使用了立即更新選項。通常而言,快照復制和事務復制都是單向數據復制即數據從出版者的源數據庫復制到訂購者的目標數據庫。但是sql server 通過允許訂購者來修改復制數據而增強了這種模式的功能。立即更新訂購者選項允許既可以在出版者也可以在訂購者處對復制數據進行修改。立即更新是指對復制數據進行修改的訂購者與出版者之間保持數據的立即更新,即立即將訂購者的修改反映到出版者那里。并且提供了對其它訂購者而言的潛在事務一致性,即訂購者的修改在立即反映到出版者那里之后,允許這一修改不必馬上同步到其它訂購者那里。在創建出版物時對該選項進行設置。
16.6.3 轉換復制數據 轉換復制數據是sql server 2000 新增的功能。用可轉換訂購(transformable subscriptions)來實現復制數據的轉換。可轉換訂購主要是利用數據轉換服務(dts)所提供的功能,如數據移動、傳遞映射、過濾等,從而可以根據每個訂購者的具體要求來定制、發送復制數據。它可以在快照復制和事務復制中使用。比如,在以下情況下我們應該使用轉換復制數據選項:
根據每一訂購者對出版數據進行列或水平分割 在sql server 2000 以前的版本中,由于不同的訂購者需要不同的數據(這里訂購者所需要的數據是指表在垂直或水平分割后的某一部分),所以必須把數據分割成不同的數據塊,從而在創建快照復制或事務復制時,也要分別為每一個訂購者創建不同的出版物。這給復制的管理和配置帶來極大的不便,由此可增加系統的負擔。但是在sql server 2000 中,可轉換訂購允許為同一出版物創建定制的數據分割(列或行分割),即同一出版物支持多個訂購,從而滿足不同訂購者對出版數據的不同需求。
改變數據類型(除主鍵列外) 重新命名某列 從某列提取子字符串或向某列添加額外的字符 對某列使用函數 在創建出版物時設置該選項。完成該選項設置后,將創建一個復制dts 包,訂購者將把該dts 包作為出版物的一部分。 下面我們將介紹在enterprise manager 中如何創建可轉換訂購。 首先,在創建出版物時要設置transform published data 選項,在創建出版物的step6 (見16.3 快照復制圖16-24),在updatable subscriptions 對話框中不選中任何選項,然后單擊“下一步”,會打開transform published data 對話框,如圖16-55。 所示在該對話框中選擇yes, transform the data。 然后完成出版物的創建。 其次,在enterprise manager 創建可轉換訂購需要執行以下操作:
(1) 啟動sql server enterprise manager, 登錄到指定的服務器,順次打開 replication、 publication 文件夾。從中選擇設置了transform published data 選項的出版物。 (2) 右擊該出版物,在彈出菜單中選擇define transformation of publication 選項,打開welcome to transform published data 對話框,如圖16-56 所示。(有關該向導的余下操作請參看數據轉換服務dts 一章)。 最后,按照訂購出版物的步驟向訂購者推出出版物。