文章編號: 828637 - 上次校閱: 2007年11月2日 - 版次: 5.3 FIX: 使用者可以控制合併複寫中補償的變更程序
在此頁中徵狀當您使用 [合併式複寫 「 合併代理程式 」 可能會遇到同步處理錯誤,如果插入變更、 更新的變更或刪除變更無法套用在目的地複本包括主索引鍵違規在發行者或訂閱者的各種原因。「 合併代理程式 」 總是會將補償變更傳送至來源複本,以復原失敗的變更。「 合併代理程式 」 執行補償變更程序,以確定資料在一致且 convergent 的狀態,在所有複本中進行維護。不含補償變更資料可能複本之間會有所不同,如果發生這類的主索引鍵違規錯誤。如果資料變化跨複本,非交集的資料就會發生。 這個 Hotfix 之前發生任何方法可以允許使用者控制補償的變更程序。補償的變更程序已由 「 合併代理程式 」 在內部處理。因為這個處理程序已在內部處理,「 合併代理程式 」 所,很難疑難排解特定衝突發生的原因。而且,因為衝突資料列是從刪除,或復原所有複本中,資料列資料會從整個拓樸移除。為協助疑難排解這些問題,Microsoft 已經加入新的發行項層級屬性來合併複寫允許使用者控制補償的變更程序。 解決方案服務套件資訊如果要解決這個問題,取得最新的 Service Pack,Microsoft SQL Server 2000。如需詳細資訊按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:290211?
(http://support.microsoft.com/kb/290211/
)
如何取得最新的 SQL Server 2000 Service Pack Hotfix 資訊此 Hotfix 的英文版具有檔案屬性 (或更新) 中如下表所列。這些檔案的日期和時間為 Coordinated Universal Time (UTC)。當您檢視檔案資訊時,會將它轉換為當地時間。若要到 UTC 與當地時間差異使用 [中日期] 和 [時間] 工具,在 [控制台] 中的 [時區] 索引標籤]。Date Time Version Size File name ---------------------------------------------------------------------- 31-May-2003 18:45 2000.80.818.0 78,400 Console.exe 25-Jun-2003 01:01 2000.80.818.0 33,340 Dbmslpcn.dll 25-Apr-2003 02:12 786,432 Distmdl.ldf 25-Apr-2003 02:12 2,359,296 Distmdl.mdf 30-Jan-2003 01:55 180 Drop_repl_hotfix.sql 26-Aug-2003 20:16 2000.80.854.0 528,960 Dtspump.dll 23-Jun-2003 22:40 2000.80.837.0 1,557,052 Dtsui.dll 23-Jun-2003 22:40 2000.80.837.0 639,552 Dtswiz.dll 24-Apr-2003 02:51 747,927 Instdist.sql 03-May-2003 01:56 1,581 Inst_repl_hotfix.sql 08-Feb-2003 06:40 2000.80.765.0 90,692 Msgprox.dll 01-Apr-2003 02:07 1,873 Odsole.sql 05-Apr-2003 01:46 2000.80.800.0 62,024 Odsole70.dll 07-May-2003 20:41 2000.80.819.0 25,144 Opends60.dll 02-Apr-2003 21:48 2000.80.796.0 57,904 Osql.exe 02-Apr-2003 23:15 2000.80.797.0 279,104 Pfutil80.dll 04-Aug-2003 18:17 550,780 Procsyst.sql 22-May-2003 22:57 19,195 Qfe469571.sql 06-Sep-2003 01:36 1,090,932 Replmerg.sql 06-Sep-2003 07:18 2000.80.858.0 221,768 Replprov.dll 06-Sep-2003 07:18 2000.80.858.0 307,784 Replrec.dll 06-Sep-2003 00:00 1,087,150 Replsys.sql 13-Aug-2003 16:28 986,603 Repltran.sql 29-Jul-2003 20:13 2000.80.819.0 492,096 Semobj.dll 31-May-2003 18:27 2000.80.818.0 172,032 Semobj.rll 05-Aug-2003 21:06 127,884 Sp3_serv_uni.sql 01-Jun-2003 01:01 2000.80.818.0 4,215,360 Sqldmo.dll 07-Apr-2003 17:44 25,172 Sqldumper.exe 19-Mar-2003 18:20 2000.80.789.0 28,672 Sqlevn70.rll 02-Jul-2003 00:18 2000.80.834.0 180,736 Sqlmap70.dll 03-Sep-2003 02:56 2000.80.857.0 188,992 Sqlmmc.dll 02-Sep-2003 23:03 2000.80.857.0 479,232 Sqlmmc.rll 08-Feb-2003 06:40 2000.80.765.0 57,920 Sqlrepss.dll 06-Sep-2003 07:19 2000.80.858.0 7,598,161 Sqlservr.exe 25-Jul-2003 21:44 2000.80.845.0 590,396 Sqlsort.dll 08-Feb-2003 06:40 2000.80.765.0 45,644 Sqlvdi.dll 25-Jun-2003 01:01 2000.80.818.0 33,340 Ssmslpcn.dll 01-Jun-2003 01:01 2000.80.818.0 82,492 Ssnetlib.dll 01-Jun-2003 01:01 2000.80.818.0 25,148 Ssnmpn70.dll 01-Jun-2003 01:01 2000.80.818.0 158,240 Svrnetcn.dll 31-May-2003 18:59 2000.80.818.0 76,416 Svrnetcn.exe 30-Apr-2003 23:52 2000.80.816.0 45,132 Ums.dll 02-Jul-2003 00:19 2000.80.834.0 98,816 Xpweb70.dll 狀況說明Microsoft 已確認這是本文 < 適用於 > 一節中所列的 Microsoft 產品中的問題。這個問題,首先已經在 Microsoft SQL Server 2000 服務套件 4 中獲得修正。 其他相關資訊此 Hotfix 會將新的發行項層級 compensate_for_errors 屬性,合併式發行集。您可以設定此屬性,則為 True 或 False。這個屬性的預設值為 true。預設設定表示該合併式複寫會繼續發出補償的變更,因為它有所有先前發行的版本和 Service Pack 中。 當這個屬性設定為 true,並且插入變更,更新的變更或刪除變更無法套用在目的複本 (主索引鍵違規發生在發行者或 「 訂閱者,例如) 的各種原因時,「 合併代理程式 」 會將補償變更傳送至來源複本,來復原變更。 時 compensate_for_errors 屬性設定為 false 變更無法套用在目的地複本,不發出補償動作,而失敗的變更會保持為衝突,直到資料庫系統管理員可以解決錯誤狀況。「 合併代理程式 」 會嘗試複寫上執行直到錯誤狀況就會解決每個後續同步處理資料列。 下層訂閱代理程式特別提取並沒有安裝,此 Hotfix 的訂戶繼續運作,如同 compensate_for_errors 屬性設定為 true 甚至,如果您有安裝此 Hotfix 發行者上且 compensate_for_errors 屬性設定為 false 發行者上。因此,使用者應升級所有的訂閱者到此 Hotfix 如果他們想要使用新的 compensate_for_errors 屬性所提供的功能。此升級有助於確保一致的行為整個拓樸。 Microsoft SQL Server 2000 Windows CE 版的 「 訂閱者 」,下載衝突的行為與所有先前的 SQL Server 相同釋放無論 compensate_for_errors 屬性的設定值。不過,compensate_for_errors 屬性設定會決定當是否補償變更時,就會產生期間的錯誤和 SQL Server CE 的訂閱者到 SQL Server 發行者的衝突上載 (發行者和執行 Microsoft 網際網路資訊服務 (IIS) 的電腦已經升級為此 Hotfix)。 這個屬性公開 sp_addmergearticle 預存程序和 sp_changemergearticle 預存程序中為新參數,具名 @ compensate_for_errors。這個屬性未公開 SQL Server 企業管理員] 中。 可以針對現有的發行項不需要被重新初始化變更這個屬性。 這個屬性的一般的用法是: 加入項目至 SQL Server 2000 線上叢書 》 中 sp_addmergearticle 」 主題sp_addmergearticle [@compensate_for_errors = ] 'compensate_for_errors' 附註compensate_for_errors 屬性設定為 False 會導致非交集。 加入 sp_changemergearticle 」 主題 SQL Server 線上叢書 》 中的項目sp_changemergearticle [ @publication = ] 'publication' , [ @article = ] 'article' [ , [ @property = ] 'property' ] [ , [ @value =] 'value' ] 摺疊此表格
附註compensate_for_errors 屬性設定為 False 會導致非交集。 下面的選取陳述式決定是否要在為 true 或 false,設定 compensate_for_errors 屬性: 附註如果必須還原此 Hotfix 已套用到 SQL Server 執行個體之前已備份的複製資料庫的備份可以以對抗在複寫中使用還原的資料庫的 SQL Server 執行個體所需的參數執行 sp_vupgrade_replication 預存程序。 如需詳細資訊按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]: 824684?
(http://support.microsoft.com/kb/824684/
)
用來描述 Microsoft 軟體更新標準術語的說明 這篇文章中的資訊適用於:
機器翻譯重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。 按一下這裡查看此文章的英文版本:828637?
(http://support.microsoft.com/kb/828637/en-us/
)
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。 | 其他資源 其他支援網站社群立即取得協助文章翻譯
|






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email


回此頁最上方
