2017-01-05 17 views
0

Windowsサービスで使用されるいくつかのファイルのバックアップアルゴリズムを設計する必要があります。私は既にいくつかのアイデアを持っていますが、何を改善しようとしているのかを知りたいです私は心に留めている。Windowsサービス用のバックアップアルゴリズム

私が扱っているソフトウェアは、クライアント - サーバーアーキテクチャに従っています。 サーバー

  • 、我々はなど、そのようなフォルダを監視など、いくつかのタスクを実行するWindowsサービスを持っており、それは(10前後)、いくつかのXML設定ファイルを持っています。これらは私がバックアップしたいファイルです。

  • クライアント側では、これらの設定ファイルを変更できるグラフィカルインターフェイスがユーザーに用意されていますが、これはあまり頻繁に行われるべきではありません。サーバーとの通信は、WCFを使用して行われます。

したがって、設定ファイルはユーザーによってリモートで変更される可能性がありますが、管理者はサーバー上で手動で変更することもできます(Windowsサービスはこれらの変更を監視します)。

そして一瞬のために、これは私がバックアップアルゴリズム(非常にシンプルなが)のために考えているものです。

  • - バックアップが2つの状況で実行されます。

    • 定期的に:サーバーアプリケーションのパラレルスレッドは、XXXX months/weeks/whatever(設定可能なパラメータ)ごとに構成ファイルのコピーを実行します。これは、ファイルがユーザーアクションによって変更されるたびに、クライアントアプリケーションが起動されたときにのみバックアップを実行します。
    • ユーザーがクライアントを起動するたびに:サーバーがユーザーがアプリケーションを起動したことを検出するたびに、サーバー側がバックアップを実行します。 WindowsサービスのプログラムのDataフォルダにという名前のフォルダのバックアップがあります

      • :どのように
    • 。バックアップが実行されるたびに、関連するすべてのファイルを含むBackupYYYYMMDDHHmmという名前のサブフォルダが作成されます。

    • メンテナンス:バックアップフォルダは永遠に保存されません。定期的に、XXXX週/月/年(設定可能なパラメータ)より古いものはすべて削除されます。代わりに、私はN個のバックアップサブフォルダ(設定可能なパラメータ)だけを維持するかもしれません。私はまだオプションを選択していないが、私は最初のものに行くと思う。

これはこれです。コメントは大歓迎です。ありがとう!!

答えて

2

あなたのデザインは実行可能だと思います。ほんの少しのコメント:

  1. サーバー以外の別の場所にバックアップする必要はありますか?同じサーバー上に重要なデータをバックアップすることは安全ではないと思いますが、別のディスク(おそらくネットワーク上の場所)にバックアップすることになります。

  2. 監視/バックアップ/保持などを実装する必要があります。複雑に聞こえる - これに費やす時間はどれくらいですか?データはプレーンテキストファイル(XML形式)と光であるため

個人的に私は、私は単にいくつかのソース管理システムにそれらをバックアップするかもしれない、例えば、バックアップを達成するためにいくつかの簡単なトリックを使用します。make SVN(またはその他の手段)をチェックアウトし、SVNへの変更を検出/チェックする簡単なスクリプトを作成し、数時間に1度(またはより頻繁に実行される)スクリプトを実行するようにスケジュールするか、あなたのサービス/アプリケーションをオンデマンドで) - この方法では、データの不要なコピーを(変更のみをチェックするので)削除し、svnがすべての履歴を提供するので、追跡可能です。上記

希望は...

+0

1.私はまた、いくつかの他のディスクやサーバーへのバックアップまでの必要性を感じて、私は私の上のものからの許可を待っているビットを助けることができます。 2.実装時間は問題ではないはずです。クライアントはこれに非常に関心があり、同様のことに取り組んできました。 3.ソース管理の提案は良い考えですが、ターゲットサーバの私の作動範囲は、巨大な産業プラントのプロダクションサーバであるため、かなり制限されています...しかし、私はこの解決策が収まるかどうかを考えてみましょう私のニーズ、そして特に、私の限界。あなたのコメントをありがとう! – Alicia

関連する問題