問題タブ [merge-replication]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
314 参照

sql-server-2008 - 手動同期SQLServerの謎

インターネット接続でリンクされた2つのサイトに2つのSQLServer2008をインストールし、それらの間にマージレプリケーションをインストールしましたが、サイトの1つで切断時間が長くなり、顧客から手動同期(ファイルベース)が要求されました。そのため、この状況でサーバーを同期させることができます。

私の簡単な質問は
、両方のデータベースから変更を生成し、その結果を両方のデータベースに適用するための最良のツールは何ですか?

0 投票する
1 に答える
1220 参照

visual-studio-2010 - レプリケートされたテーブルの VS 2010 データベースの配置

スキーマとストアド プロシージャの変更をより適切に追跡するために、Visual Studio にあるデータベース プロジェクトの使用を開始しました。私はそのアイデアが大好きですが、ちょっとした問題が発生しました。開発中、必要がないため、データベース内のテーブルは複製されません。ただし、テスト環境と運用環境では、マージ レプリケーションが必要です。もちろん、これにより、rowguid 列とすべてのジャズがすべてのテーブルに追加されます。

したがって、私の質問は次のように分類されると思います。

  • データベース プロジェクト内の配置を使用して生成されたスキーマ変更スクリプトを利用する方法はありますか?
  • このrowguid列を無視する方法はありますか?
  • その場合、デプロイ時にレプリケーションが中断されることを心配する必要はありますか? (スキーマを変更するとレプリケーションが壊れる可能性があることは理解していますが、通常の状況ではそうです)

別の開発環境では、レプリケーションのセットアップなどを必要とせず (または、SQL Express のようなものを使用する場合はセットアップできない)、このようなシナリオに遭遇したことがある人もいると思いますが、それを利用したいと考えています。スキーマ比較やデータベース展開オプションなどのツールの。ご協力ありがとうございました。

0 投票する
1 に答える
549 参照

sql-server - 個々の列がマージ レプリケーションで追跡されないようにする

マージ レプリケーションを使用すると、ほとんどの部分が正常に同期されるテーブルがあります。ただし、テーブルには 1 つの列が含まれており、一時的なクライアント側のデータを格納するために使用されます。このデータは、クライアントでのみ意味のある編集および使用が行われ、サーバーに複製する必要はありません。例えば:

この場合、サブスクライバーがテーブルの ClientCode 列を変更しても、それらの変更がサーバーに返されることは望ましくありません。マージ レプリケーションは、これを達成するための手段を提供していますか?

私がフォールバックする可能性のある別のアプローチは、追加のテーブルを公開し、それを「サブスクライバーにはダウンロードのみ、サブスクライバーの変更を許可する」ように構成し、そのテーブルで MyTable.ID を ClientCode と共に参照することです。 . ただし、絶対に必要でない場合は、追加のテーブルを公開する必要はありません。

ありがとう、

-ダン

0 投票する
2 に答える
1152 参照

sql-server - Web 同期、マージ レプリケーションに使用される IIS サーバーの要件

簡単な質問: マージ レプリケーションの Web 同期として使用される Web サーバーの要件 (特に SQL コンポーネントに関して) を教えてください。

バックグラウンド:

マージ レプリケーションを使用して、ソリューションのクライアント アプリケーションと一方向のデータ同期を行うソリューションがあります。

サーバーは SQL Server 2008、クライアント SQL Server 2008 Express を使用し、RMO を使用してプル サブスクリプションを開始します。リクエストは Web Sync を通過します。IIS と DB が同じサーバー上にある場合は問題ありません。IIS がスタンドアロンの Web サーバー上にある場合に問題が発生します。

エラー ログから、これを機能させるには Web サーバーで特定の SQL コンポーネントが必要なようですが、どのコンポーネントを見つけることができませんでした。このサーバーに SQL Server 2008 Express をインストールしようとしましたが、うまくいきませんでした。

では、マージ レプリケーションの Web 同期として使用される Web サーバーの要件 (特に SQL コンポーネントに関して) を教えてください。

編集:

ネイティブ クライアントをインストールしようとしましたが、うまくいきません。おそらく、ログを間違って解釈していますか?ここにあります:

CReplicationListenerWorker、2012/02/27 09:55:24.901、1060、174、S2、情報: =============== リクエストの処理を開始 ========== === CReplicationListenerWorker、2012/02/27 09:55:24.901、1060、212、S1、エラー: CLSID_SQLReplErrors で CoCreateInstance が失敗しました、hr = 0x00000000。CReplicationListenerWorker、2012/02/27 09:55:24.901、1060、298、S2、情報: 処理された要求の種類: MESSAGE_TYPE_UploadEmpty。CReplicationListenerWorker、2012/02/27 09:55:24.901、1060、396、S2、情報: =============== 完了処理要求 ========== ==== CReplicationListenerWorker、2012/02/27 09:55:24.964、1060、174、S2、情報: =============== リクエストの処理を開始 ======= ======= CReplicationListenerWorker、2012/02/27 09:55:24.964、1060、212、S1、エラー: CLSID_SQLReplErrors で CoCreateInstance が失敗しました。時間 = 0x00000000。CReplicationListenerWorker、2012/02/27 09:55:24.964、1060、298、S2、情報: 処理された要求の種類: MESSAGE_TYPE_UploadEmpty。CReplicationListenerWorker、2012/02/27 09:55:24.964、1060、396、S2、情報: =============== 完了処理要求 ========== ==== CReplicationListenerWorker、2012/02/27 09:55:24.964、1060、174、S2、情報: =============== リクエストの処理を開始 ======= ======= CReplicationListenerWorker、2012/02/27 09:55:24.964、1060、212、S1、エラー: CLSID_SQLReplErrors、hr = 0x00000000 で CoCreateInstance が失敗しました。CHttpListener =============== 完了処理要求 =============== CReplicationListenerWorker、2012/02/27 09:55:24.964、1060、174、 S2、情報: =============== リクエストの処理を開始 ============== CReplicationListenerWorker、2012/02/27 09:55:24.964、1060 、212、S1、エラー: CLSID_SQLReplErrors、hr = 0x00000000 で CoCreateInstance が失敗しました。CHttpListener =============== 完了処理要求 =============== CReplicationListenerWorker、2012/02/27 09:55:24.964、1060、174、 S2、情報: =============== リクエストの処理を開始 ============== CReplicationListenerWorker、2012/02/27 09:55:24.964、1060 、212、S1、エラー: CLSID_SQLReplErrors、hr = 0x00000000 で CoCreateInstance が失敗しました。CHttpListener
、2012/02/27 09:55:24.964、1060、258、S2、情報: 交換 ID = EF7753FB-F315-4FE3-8E8D-E77CCD366825。CReplicationListenerWorker、2012/02/27 09:55:24.964、1060、298、S2、情報: 処理された要求の種類: MESSAGE_TYPE_SyncContentsUpload。ReconcilerHost 、2012/02/27 09:55:24.964、1060、160、S1、エラー: CLSID_CDatabaseReconciler の CoCreateInstance が失敗しました、hr = 0x80040154。ReconcilerHost 、2012/02/27 09:55:24.964、1060、191、S1、エラー: ReconcilerHost:: 初期化に失敗しました、hr = 0x80040154。CReplicationListenerWorker、2012/02/27 09:55:24.964、1060、315、S1、エラー: ReconcilerHost の初期化に失敗しました、hr = 0x80040154。CReplicationListenerWorker、2012/02/27 09:55:24.964、1060、396、S2、情報: =============== 完了処理要求 ========== ====

0 投票する
0 に答える
1471 参照

sql-server-2008 - 同期中にマージ レプリケーションが失敗しました。再実行後、エージェントは (Replication Agent FATAL ERROR およびシャットダウン) で失敗しました。

私たちの会社では、以下のようにマージ レプリケーション (PULL) を構成します。

記事の作成/変更にはスクリプトを使用します。これらのスクリプトをパブリッシャーで実行し、スナップショットを作成しました。

レプリケーション エージェントの開始後、同期中に接続速度が遅いために失敗しました。

失敗ログは次のとおりです。

2012-02-25 06:00:25.184 カテゴリ:SQLSERVER ソース: TMCTS 番号: 0
メッセージ: ログイン タイムアウト
の期限切れ 2012-02-25 06:00:25.200 カテゴリ:SQLSERVER ソース: TMCTS 番号: 0 メッセージ: マージ
プロセスがクエリがタイムアウトしたため、クエリを実行します。この失敗が続く場合は、プロセスのクエリ タイムアウトを増やします。トラブルシューティングを行うときは、詳細な履歴ログを使用して同期を再開し、書き込み先の出力ファイルを指定します。

ただし、いくつかのスクリプトをダウンロードして適用しました。後で実行しようとすると、失敗します。

2 番目のログは次のとおりです。

既に適用されているユーザー スクリプトをスキップして、同期を再開するにはどうすればよいでしょうか。(最後のスクリプトの後に同期を再開します。)

0 投票する
1 に答える
64 参照

sql-server - サブスクライブされたデータベースをパブリッシャーサーバーにコピーする

私は2台のサーバーを持っています。
パブリッシャー(サーバーA)にマージレプリケーションをインストールし、同じデータベース名で2つのサブスクリプションを追加しました。

-1つはパブリッシャー自体に、もう1つはサブスクライバー(サーバーB)にあります。これまでのところ良好です。レプリケーションは正常に機能しています。パブリッシャー(サーバーA)のサブスクライブされたデータベースを削除し、サーバーBからサブスクライブされたデータベースのコピーに置き換え

たいと思いました。パブリッシャーは新しく接続されたデータベースで同期を継続すると思いましたが、残念ながら、期待どおりに機能しませんでした。 、代わりにスナップショットなどの適用を開始しました。

コピーされたデータベースを変更して、発行者がそれを削除されたデータベースとして再認識し、同期を続行できるようにするものはありますか?

0 投票する
1 に答える
878 参照

c# - SQL Server CE のレプリケーション エラー: 内部エラー: HTTP ヘッダー情報が破損しているか、トランスポート メッセージにありません

マージ レプリケーションを使用するために、Windows Server 2008 マシンに SQL Server 2008 R2 をセットアップし、その上にテスト データベースと対応するパブリケーションを作成しました。SQL Server 2008 および SQL Server CE 3.1 のサブスクライバー向けに、上記の発行物を設定しました。また、このウォークスルーを使用して IIS 7 をインストールおよび構成しました。

SQl Server 2008 R2 データベースからデータをコピーし、マージ レプリケーションを介してローカルの SQL Server CE データベースに配置することになっている別の PC で C# アプリケーションを開発しています。ただし、次のエラーで惨めに失敗します。

ちなみに、HResult の値は 0x80072F76 です。

サーバー側では、IIS ログに次の情報が含まれています。

私のコードはこれです:

いくつかの調査を行ったところ、このエラーが発生する理由は 2 つしか見つかりませんでした。1 つは、特定の設定を有効にして Microsoft ISA サーバーを使用することですが、私はそうではありません。もう 1 つは、パブリッシャーとサブスクライバーが異なるバージョンの SQL Server CE ドライバーを使用している場合です。レジストリによると、両方のマシンのバージョンは 3.5.8080.0 (SQL Server CE 3.5 SP2) です。

どうすればこれを機能させることができますか?

0 投票する
2 に答える
1825 参照

sql-server-2008 - SQL Serverマージレプリケーションは、「SQLServerリコンシラーの初期化に失敗しました。再試行してください」で失敗します。

SQL Server2008R2データベースとSQLServerCE3.5の間でレプリケーションを設定しようとしています。それに応じてIIS7をセットアップし、パブリケーションURL( http://winserver2008/SQLReplication/sqlcesa35.dll )を確認すると、優れた「Microsoft SQL ServerCompactServerエージェント」を取得します。

ただし、http://winserver2008/SQLReplication/sqlcesa35.dll?diagを試してみると、次のようになります。

ここに画像の説明を入力してください

書いているC#アプリを介してパブリッシャーに接続しようとすると、「SQLServerリコンシラーの初期化に失敗しました。再試行してください」というメッセージが表示されます。9.0データベースリコンシラーが必要だと思いますか?もしそうなら、どうすればインストールできますか?

ちなみに、これは統合Windows認証を介して接続しようとした場合にのみ発生します。代わりにSQLServer認証を使用しようとすると、SQL Serverが見つからないか、ログイン/パスワードが正しくないというエラーが表示されます。

0 投票する
2 に答える
1097 参照

sql - フィルター処理されたマージ レプリケーション SQL Server 2008

SQL Server 2008 で特定の行のみをレプリケートする双方向レプリケーションを実現する方法についてのアドバイスを探しています。

たとえば、テーブル A を 2 つのデータベース (ヨーロッパとアジア) 間で複製したいと考えています。テーブルにローカル データと共有データの両方を含めたいと考えています。これは、次の値を持つフィールド「地域」を使用して示されます。

  1. グローバル
  2. ヨーロッパ
  3. アジア

ヨーロッパをパブリッシャー、アジアをサブスクライバーとしてマージ レプリケーションを設定し、次のフィルターを設定しました。

region = 1 の行のみを複製しようとしている

ヨーロッパまたはアジアの DB にグローバル行を追加すると、反対側のテーブルに表示される行でうまく機能します。

ヨーロッパの行をヨーロッパの DB に追加すると、(必要に応じて) アジアの DB にレプリケートしないことでうまく機能します。

ただし、アジアの行をアジアの DB に追加しても、行がヨーロッパの DB に複製され、アジアの DB から削除されるため、私が望むことはできません。

パブリッシャーとサブスクライバーの関係でこれが当てはまる理由は理解できますが、イライラします。

次に、ピアツーピアが解決策かもしれないと考えましたが、ピアツーピアをフィルタリングできません。

私が探しているものを達成する方法はありますか?

みんな、ありがとう

0 投票する
1 に答える
8630 参照

sql-server - SQL Server 2008 R2 でレプリケートされた列を変更します。マージ レプリケーション

StudentPerformanceテーブルの列を変更したい

変更する列は -

マージ レプリケーション用に構成されています。

  • 現在のスナップショットは不要になりますか?
  • すべてのサブスクリプションを再初期化する必要がありますか?
  • テーブル内のすべてのレコードが更新され、alter ステートメントを実行するとレプリケーションのトラフィックが増加しますか?