1

環境:プルサブスクリプションを匿名サブスクライバーとマージします。Web同期を使用します。パブリッシャーは2008R2、サブスクライバーはSQLEXPRESS2008R2です。

問題:サブスクライバーでsp_dropmergepullsubscriptionを実行し、パブリッシャーでsp_dropmergesubscriptionを実行すると、サブスクライバーでサブスクリプションが削除されますが、パブリッシャーのsysmergesubscriptionsに、そのサブスクライバーのステータス1のままのエントリが表示されるのはなぜですか?

エントリを手動で削除することを提案する方法をここで見つけました が、なぜ手動で削除する必要があるのですか?

サブスクライバーでsp_dropmergepullsubscriptionを実行した後、パブリッシャーでsp_dropmergesubscriptionを実行する必要がありますか?サブスクライバー側のサブスクリプションで削除するだけでは不十分ですか?

4

1 に答える 1

2

sysmergesubscriptionsのエントリを手動で削除しないでください。これらのエントリを手動で削除すると、将来的に新しいサブスクライバーを追加できなくなる可能性があります。

サブスクリプションデータベースのサブスクライバーでMergeパブリケーションへのプルサブスクリプションを削除するには、sp_dropmergepullsubscriptionを実行します。次に、パブリケーションデータベースのパブリッシャーでsp_dropmergesubscriptionを実行します。これについては、「方法:プルサブスクリプションを削除する」で説明しています。

パブリッシャーでsp_dropmergesubscriptionを実行しても、sysmergesubscriptionからエントリは削除されませんが、ステータスが2に設定され、削除されたことを示します。

sysmergesubscriptionsのステータスがまだ1の場合は、sp_dropmergesubscriptionを誤って実行した可能性があります。必ず@publication、@subscriber、および@subscriber_dbを指定してください。また、@subscription_typeにpullの値を指定します。

于 2013-03-07T02:37:51.083 に答える