問題タブ [transactional-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 に答える
1582 参照

sql - トランザクションレプリケーションに新しい記事を追加すると、サブスクライバーでエラーが発生します

SQLServer2008で更新可能なトランザクションレプリケーションを設定しています。すべてが正常に機能しています。sp_addarticleに続いてsp_addsubscriptionを使用して、既存のパブリケーションに新しいテーブルを追加しました。その後、スナップショットエージェントを実行しました。スナップショットは、新しく追加されたテーブルに対してのみ生成されています。そのため、新しいテーブルはサブスクライバーに正常に複製されました。新しく挿入されたレコードをサブスクライバーの新しいテーブルに複製することもできます。しかし、その逆は不可能です。サブスクライバデータベースの新しいテーブルにレコードを挿入すると、エラーが発生します

この問題の解決にご協力ください。

よろしくお願いします。ジータ

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

sql-server - SQLServerレプリケーションチュートリアルの問題

AdventureWorksを使用したSQLServer2008R2でのトランザクションレプリケーションに関するチュートリアルを実行します。パブリッシャー、ディストリビューター、サブスクライバーはすべて同じインスタンスにあります。このエラーが発生します...

オブジェクト'vProductAndDescription'によって参照されているため、テーブル'Production.ProductModelProductDescriptionCulture'を削除できません。(ソース:MSSQLServer、エラー番号:3729)

サンプルデータベースはレプリケーションの準備ができていると思うので、問題がデータベースにあるのか、インスタンス構成にあるのか、レプリケーション構成にあるのかは明確ではありません。

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

sql-server - SQL SERVER 2008 R2 でのレプリケーションの問題 (サブスクライバーでの配布)

2 つの MS SQL Server 2008 R2 間にトランザクション レプリケーションがあります。

ハードドライブの故障により、サーバーが再起動されました。
レプリケーションは自動的に機能し続けました。しかし、そのようなエラーを受け取ってから 1 時間後:

ログ リーダー エージェントが機能し、トランザクションをディストリビューターに送信します。しかし、ディストリビューターはサブスクライバーと同期できなくなりました。

また、サブスクライバーはディストリビューターに変更を送信することができました。すべての競合はディストリビューターによって解決されました。

サブスクリプションを再初期化する以外に、レプリケーションを機能させる別の方法があるかどうかを知りたいですか?

このエラーはおそらくディスク障害ではないことがわかりました。
新しい外部キーを追加しました:

それで、次のようになりました。

Table1Table2複製中でした。Table3 - いいえ。パブリッシャーとサブスクライバーのそれぞれに
外部キーを追加しました。Table2_Table3

この後、@Remus Rusanu の回答へのコメントで説明したように、エラーが発生し始めました。

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

sql-server-2005 - Oracle から SQL Server へのレプリケーション: レプリケーション中にデータを操作する

標準の SQL Server スナップショットとトランザクション レプリケーションを使用して、稼働中の Oracle (10g) を SQL Server 2005 のデータ レプリケーションに "継承" しました。

DATETIMEOracle が SQL Server の範囲外 (1753/1/1 から 9999/12/31)の日付を送信しようとしない限り、すべて正常に動作します。どうにかしてデータ レプリケーションの途中に入り、その日付範囲を確認し、必要に応じて公開されている Oracle の日付を調整して、SQL Server 2005 のDATETIMEデータ型が処理できるようにしたいと考えていました。

これを行う合理的に簡単な方法はありますか?? ターゲット データ型を VARCHAR(19) などに変更するだけでよいことはわかっています。また、SQL Server 2008 にアップグレードして、DATEまたはDATETIME2データ型を使用して問題を解決できることもわかっています。現在、両方のオプションを実行することはできません (おそらく6、12か月かそこら)。

今すぐできることはありますか?そして簡単に?? 残念ながら、ここで修正するほど Oracle に深く入り込むことはできません (これは、他の人がシステムをいじるのを好まない別のサードパーティ企業です)。

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

sql-server-2008 - Throttling SQL server Replication?

We have a performance issue with the current transactional replication setup on sql server 2008. When a new snapshot is created and the snapshot is applied to the subscriber, we see network utilization on the publisher and the distributor jump to 99%, and we are seeing disk queues going to 30 This is causing application timeouts.

Is there any way, we can throttle the replicated data that is being sent over? Can we restrict the number of rows being replicated? Are there any switches which can be set on/off to accomplish this?

Thanks!

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

sql - トリガーが同時に実行されるSQLトランザクションレプリケーション

2つのテーブル(親レコードと子レコード)に対して継続的に実行するようにSQLServerトランザクションレプリケーションを設定しました。サブスクライバー側では、レプリケートされた両方のテーブルに挿入トリガーと更新トリガーがあります。これらのトリガーはすべて、レプリケートされたテーブルのレコードをクエリし、サブスクライバデータベースの他のテーブルのレコードを変更する同じコードを持っています。

私の質問は..これらのトリガーは同時に実行されますか?私の恐れは、一方のテーブルのトリガーが、もう一方のテーブルのトリガーによって実行される処理作業を中断することです。

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

sql-server - SQL Server CLR 関数のレプリケート

トランザクション (またはマージ) レプリケーションを使用して CLR 関数をレプリケートすることは可能ですか?

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

sql - SQL Server 2005 トランザクション レプリケーションが、インデックスの作成を含むストアド プロシージャの発行に失敗する

SQL Server 2005 トランザクション パブリケーションで奇妙な問題が発生しました。問題は次のとおりです。パブリケーションに create index ステートメントを含むストアド プロシージャであるアーティクルが含まれている場合、ストアド プロシージャのスキーマをサブスクライバーにレプリケートしようとすると、エラーがスローされます。

create index ステートメントがコメントアウトされていても例外が発生し、完全に削除された場合にのみ機能するため、動作は非常に奇妙です。

返される正確なエラーは次のとおりです。

コマンド試行: GRANT EXECUTE ON [dbo].[usp_Test] TO [CompanyDatabase_access]

(トランザクション通番:0x00000170000008B9000500000000、コマンドID:5)

エラー メッセージ: オブジェクト 'usp_Test' が見つかりません。オブジェクトが存在しないか、権限がないためです。(ソース: MSSQLServer、エラー番号: 15151) ヘルプを参照してください: http://help/15151 オブジェクト 'usp_Test' が見つかりません。オブジェクトが存在しないか、権限がないためです。(ソース: MSSQLServer、エラー番号: 15151) ヘルプ: http://help/15151

サブスクライバーを確認すると、ストアド プロシージャが期待どおりに作成されていないため、エラーは正確です...しかし、それが公開の目的でした...

さらに、サブスクライバーでストアド プロシージャを手動で作成できますが、スナップショットを生成すると既存のストアド プロシージャが削除され、引き続きこのエラー メッセージが返されます。

そして、これがこの問題を引き起こすサンプル パブリケーションです。

ストアド プロシージャ:

パブリケーション スクリプト:

サブスクリプション スクリプト:

繰り返しますが、奇妙なことに、create index ステートメントがコメント アウトされている場合でもパブリケーションに同じエラーが含まれますが、それを完全に削除すると機能します。

今のところ、これらの create index ステートメントを含むすべてのストアド プロシージャをパブリケーションから削除しましたが、これらをサブスクライバにレプリケートして、プロシージャに対する DDL の更新がサブスクライバに自動的に反映されるようにしたいと考えています。

- 編集 -

スナップショット ディレクトリを見ると、usp_Test の .sch ファイルには、ストアド プロシージャについて以前に投稿したものとまったく同じコード ブロックが含まれています。返されたエラーに基づいて、スナップショット エージェントは、作成インデックスが含まれていますが、続行して GRANT EXECUTE コマンドを実行しようとすると、エラーが発生します。

また、SQL Server の正確なバージョンは次のとおりです。

Microsoft SQL Server 2005 - 9.00.5254.00 (2005 + SP4 累積更新プログラム 1)

-- 編集終了 --

私の質問は、なぜこれが起こっているのですか?パブリケーションまたはサブスクリプションの構成に問題はありますか? 他の誰かがこのようなことを経験したように? この問題のトラブルシューティングはどこから始めればよいですか?

- アップデート -

私は technet で Hilary Cotter と話をしていますが、まだうまくいきません。プロシージャの GRANT EXECUTE 権限を削除すると、CREATE INDEX で正常に作成されます。そのため、GRANT EXECUTE OR CREATE INDEX では機能しますが、両方では機能しません。ヒラリーは、スナップショットにこれらの両方のキーワードが含まれている場合、スナップショットが正しく転送されないのは、ドメイン内のある種のスパム アプライアンスである可能性があると示唆しましたが、手動で .sch ファイルをサブスクライバーにコピーし、期待される内容が含まれていることを検証すると、コマンドを実行しても、同じ問題が発生します。

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

sql-server - トランザクション レプリケーションがアクティブな場合の Entity Framework モデルの問題

メイン データベースからフェールオーバー データベースへの SQL サーバー トランザクション レプリケーションを使用している状況があります。メイン サイトがあり、フェールオーバー Web サイトはフェールオーバー データベースを使用しています。

両方の Web サイト (エンティティ フレームワークを使用) は同一です (データベースも同様です)。

私の問題は、レプリケーションがアクティブな場合、フェイルオーバー Web サイトで一部の操作がクラッシュすることです。レプリケーションを非アクティブ化すると、操作は正常に実行されます。

私の推測では、フェイルオーバー Web サイトの EntityModel とデータベースがレプリケーションにさらされたときに、同時実行の問題が発生していると思われます。

誰かが同様の問題に遭遇しましたか? トランザクション レプリケーション + エンティティ フレームワークの経験がある人はいますか?

これが私が得る例外です:

マッピングに問題がある可能性がありますが、トランザクション レプリケーションがアクティブな場合のみです。

更新:アプリケーション環境から完全に抜け出し、アクティブな継ぎ目が違法であるだけでなく、レプリケーションが「存在する」ときに、フェールオーバー データベースのテーブルに新しい行を挿入しようとしました。明日、レプリケーションを完全に削除して試してみます...またはそのようなより抜本的な変更を...

ありがとう!

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

asp.net - Multiple Publishers, Single Subscriber (Data Warehouse)

I'm trying to figure out the best way to populated the staging database in a data warehouse. I will have a number of databases (identical schema, SQL Server 2005 Standard). Ideally I'd set up each as a publisher, with the same publication. There will be a single subscriber database (SQL Server 2005 Enterprise) that will subscribe to each of the publisher databases. Data in the publisher databases will be modified. The subscriber database will only be updated by its subscriptions, and therefore does not need to send changes back to any of the publishers. Publisher databases don't need to update each other. Replication will be occurring over the internet (although VPN could be used).

I'm not clear on what kind of replication I should be using for this. Can I do it with replication? what about Incremental fields?