とりわけ、組み込みデバイスからのログデータの詳細なアーカイブが保持される Web アプリケーションがあります。内部分析用にこの詳細データを保持したいと考えていますが、このデータは、パブリックにアクセス可能な本番サーバーでは 3 か月以上必要ではありません。Web アプリケーションは新しいデータを挿入するだけで、詳細データの更新や削除はありません。
そこで、運用サーバーから新しいデータのコピーを定期的 (たとえば毎日) に取得し (過去 3 か月分を含む)、3 か月より古いすべてのデータを運用サーバーから削除するアーカイブ システムを構築したいと考えています。
残念ながら、一部の組み込みデバイスがしばらく (数日から数週間) オフラインになることがあります。この場合、すでにコピー/アーカイブされた時間の新しいデータがシステムに追加される可能性があります。
公開運用サーバーでは SQL Server 2008 Standard Edition を使用し、内部アーカイブ システムでは SQL Server 2008 R2 Enterprise Edition を使用して、アーカイブのパーティション分割と圧縮を利用したいと考えています。
現時点では、次のアプローチを検討しています。
本番環境からアーカイブ システムへのデータの毎日のレプリケーション。運用上の古いデータが削除された場合、これはアーカイブ システムに複製されるべきではありません。レプリケーション ターゲットでの削除操作を無視するオプションを見つけました。
アーカイブ システムに現在のデータを保持する必要がない場合は、特定の時間より古いすべてのデータを定期的にアーカイブ システムに移動します。しかし、現在のデータを同期し、古いデータをすべて移動する必要があります。
混合ソリューションを使用する必要があるかもしれません: アーカイブ システムと実稼働システムの間で現在のデータを同期し、古いデータをアーカイブ システムのアーカイブ テーブルに移動するためのレプリケーション (現在のテーブルから実稼働システムにアーカイブ データの削除をレプリケートしている間) )。
どう思いますか?このような問題に関する推奨事項やベストプラクティスを知っていますか? このトピックは他の場所 (書籍など) で取り上げられていますか?
事前にどうもありがとうございました。
PS: この質問をここで行うべきか、serverfault で行うべきかはわかりません。ここに投稿する私の決定が間違っていた場合は、移動してください。ありがとう。