FIX を使用して、トランザクション レプリケーションを構成するときに、ディストリビューション エージェントの一部の行スキップできます、"-SkipErrors"SQL Server 2005 のパラメーター

重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。

英語版 KB:938671
この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
現象
トランザクション レプリケーションを構成すると、使用して、 -Skiperrors パラメーターMicrosoft SQL Server 2005 では、ディストリビューション エージェントは、一部を省略可能性があります。行します。この問題は、データ不整合の問題パブリッシャー間が発生し、サブスクライバー。

さらに、この問題が発生すると、ディストリビューション エージェントが表示可能性があります、次のメッセージします。
007-05-18 22:49:38.195 プロセスマルチ ・ ストリーミング モードで最後にバッチ実行に失敗しましたにリセットされました1 つの接続モードと、操作を再試行します。

007-05-1822:49:38.273 スキップ 1 個のトランザクションをサブスクライバーに適用する場合はエラーします。007-05-18 22:49:38.367 101 トランザクション 100 コマンドが配信されました。

007-05-18 22:49:38.477 100 トランザクション 100 コマンドと共にを使用されて配信。007-05-18 22:49:38.570 トランザクションを適用する場合は 1 個のエラーのスキップサブスクライバーで。

007-05-18 22:49:38.664 100 トランザクション 100コマンドが配信されました。
解決方法
この問題に対する修正は累積的な更新プログラム 2 に初めてリリースされました。この累積的な更新プログラム パッケージを SQL Server 2005 Service Pack 2 を入手する方法の詳細については、Knowledge Base の資料を参照するのには、次の資料番号をクリックしてください。
936305 SQL Server 2005 Service Pack 2 用の累積的な更新プログラム パッケージ 2
メモ ビルドは累積的であるため、新しい修正プログラム リリースすべての修正プログラムが含まれているし、以前の SQL Server 2005 に含まれていたすべてのセキュリティ修正プログラム リリースを修正します。マイクロソフトはこの修正プログラムを含む最新の修正プログラム リリースを適用を検討することをお勧めします。詳細については、Knowledge Base の資料を参照するのには、次の資料番号をクリックしてください。
937137 SQL Server 2005 Service Pack 2 のリリース以降後にリリースされた、SQL Server 2005 のビルドします。
特定の SQL Server のサービス パックの Microsoft SQL Server 2005年の修正プログラムが作成されます。SQL Server 2005 Service Pack 2 のインストールに SQL Server 2005 Service Pack 2 修正プログラムを適用する必要があります。既定では、SQL Server サービス パックで提供されている修正プログラム SQL Server の次の service pack に含まれてです。
状況
マイクロソフトでは、この「対象」に記載されているマイクロソフト製品の問題として認識しています。
詳細
既定では、ディストリビューション エージェントがエラーを検出した場合、ディストリビューション エージェントを停止する必要があります。使用するかどうかは、 –SkipErrors パラメーターに特定のエラーは、ディストリビューション エージェントは、これらのエラーをスキップします。後続のトランザクションの処理を続行します。

問題の再現手順

  1. レプリケーション環境を設定します。これを行うには、実行、SQL クエリ アナライザーで次のスクリプトです。
    use mastergoexec sp_adddistributor  @distributor = @@SERVERNAMEgoexec sp_adddistributiondb  @database = 'distribution'goexec sp_adddistpublisher  @publisher = @@SERVERNAME, @distribution_db = 'distribution'goexec sp_replicationdboption pubdb, publish, falsegoexec sp_replicationdboption subdb, publish, falsegoif db_id('pubdb') is not null    drop database pubdbgocreate database pubdbgoif db_id('subdb') is not null    drop database subdb gocreate database subdbgoexec sp_replicationdboption pubdb, publish, truegouse pubdbgocreate table t(c1 int primary key, c2 int, c3 sysname null, c4 nchar(200) default 'a')gocreate unique index c2_idx on t(c2)gosp_addpublication @publication = 'p1', @status = 'active'gosp_addarticle @publication = 'p1', @article = 'a1', @source_table = 't', @schema_option = 0x00000000000300f3gosp_addsubscription @publication = 'p1', @article = 'all', @subscriber = @@servername, @destination_db = 'subdb'go
  2. 次のコマンドをバッチ ファイルとして保存し、実行データを挿入するファイルを指定します。
    c: pushd "c:\program files\microsoft sql server\90\com\" del dist.outcall snapshot.exe -publisher %COMPUTERNAME% -publisherdb pubdb -distributor %COMPUTERNAME% -distributorsecuritymode 1 -publication p1call logread.exe -publisher %COMPUTERNAME% -publisherdb pubdb -distributor %COMPUTERNAME% -distributorsecuritymode 1 call distrib.exe -publisher %COMPUTERNAME% -publisherdb pubdb -distributor %COMPUTERNAME% -distributorsecuritymode 1 -publication p1 -subscriber %COMPUTERNAME% -subscriberdb subdb start cmd.exe /s /k "logread.exe -publisher %COMPUTERNAME% -publisherdb pubdb -distributor %COMPUTERNAME% -distributorsecuritymode 1 -continuous"start cmd.exe /s /k "distrib.exe -publisher %COMPUTERNAME% -publisherdb pubdb -distributor %COMPUTERNAME% -distributorsecuritymode 1 -publication p1 -subscriber %COMPUTERNAME% -subscriberdb subdb -subscriptionstreams 8 -SkipErrors 2601:2627 -Output dist.out -OutputVerboseLevel 2 -continuous"popdosql -E -S[SQL_server] -Q"insert subdb..t (c1, c2) values (1000, 1000)"osql -E -S[SQL_server] -Q"insert subdb..t (c1, c2) values (2500, 1015)"osql -E -S[SQL_server] -Q"begin tran declare @v int select @v = 1 while (@v < 1020) begin insert pubdb..t (c1, c2) values (@v, @v) select @v = @v + 1 end commit tran"osql -E -S[SQL_server] -Q"declare @v int select @v = 3100 while (@v < 3500) begin insert pubdb..t (c1, c2) values (@v, @v) select @v = @v + 1 waitfor delay '0:0:0.10' end"
    メモ プレース ホルダー SQL_server 表すSQL Server のインスタンスの名前です。
  3. データに複製されていないことを確認、サブスクライバーに含まれる ◇

警告: この記事は自動翻訳されています

プロパティ

文書番号:938671 - 最終更新日: 01/16/2015 04:02:00 - リビジョン: 4.0

Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Standard X64 Edition, Microsoft SQL Server 2005 Enterprise X64 Edition, Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems, Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems

  • kbnosurvey kbarchive kbexpertiseinter kbqfe kbmt KB938671 KbMtja
フィードバック
ERROR: at System.Diagnostics.Process.Kill() at Microsoft.Support.SEOInfrastructureService.PhantomJS.PhantomJSRunner.WaitForExit(Process process, Int32 waitTime, StringBuilder dataBuilder, Boolean isTotalProcessTimeout)