ローカルにデータベースがあり、リモート ロケーションにも同様のタイプのデータベースがあります。現在、毎分、ローカル データベースに 50 ~ 100 のレコードが挿入されます。同時に、これらのレコードを、パブリック IP を持つデータベース サーバーに存在するリモート データベースに挿入する必要があります。LAN や WAN はありません。これはインターネットを使用して行う必要がありますが、そのサーバーはパブリック IP を使用してアクセスできます。トリガーまたは SQL サーバー自体から何かを使用してこれを行うことができる可能性はありますか? または、.NET を使用していくつかの Web サービスを作成する必要があります (基本的に、.net アプリケーションはこのデータベースにデータを記録しています。これで私を助けてください。ありがとう、Rama
2 に答える
トランザクション レプリケーションはインターネット経由で展開できますが、VPN (またはDirectAccess ) を使用することをお勧めします。別の方法は、 Replication の代わりに Service Brokerを使用することです。
機能しないのは、Web サービスの呼び出し、トリガー、.Net カスタム アプリケーションなどです。トランザクションの整合性の維持 (両方のサーバーでのコミットまたはロールバックの保証)、データ変更の検出、リモート DB がダウンまたはアクセス可能な場合のアプリケーションの可用性 (パッチ適用を考えてください)、保守性、保守性、およびいずれかのHR/DRソリューションの処理は言うまでもありませんサイトでは、これらのソリューションはすべて実際には失敗します。
リモート サーバーのデータを更新する Windows サービスを作成することもできます。データベースのレプリケーションを使用したくない場合。
基本的な考え方はこのようになります。
Windows サービスは、データベースの変更を監視し、何かあれば変更を監視します。SQLBulkyCopy クラスを使用してすべての変更をアップロードします。
SQLBulkCopy クラスの詳細については、次のリンクを参照してください。 http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopy.aspx
これはSQLBulkCopyクラスの実例です - http://www.sqlteam.com/article/use-sqlbulkcopy-to-quickly-load-data-from-your-client-to-sql-server