0

ツールの再設計/アップグレードに取り組んでいます。データベース通信は C++ (アンマネージ ADO) で行われ、SQL サーバー 2005 に接続します。

アーカイブとバックアップ/復元の手法についていくつか質問がありました。

  1. 通常、アーカイブはバックアップ/復元とは異なります。誰かが私を説明するリンクを提供できますか.現在、ソリューションはアーカイブにbcpツールを使用しています.コード内のテーブル名に多くの依存関係があることがわかります. デザインを選択する際に考慮しなければならないことは何ですか (ボタンのクリックでバックアップ/アーカイブを取得する必要があることを考慮し、最大で 100 MB のデータベース サイズ)

  2. 通信全体を .net に移行することは役に立ちますか? 多くの ORM ツールを検討しています。また、すべてのビジネス ロジックと UI は C# です。

  3. アーカイブ データを検証する最良の方法は何ですか?

PS: 質問はレベルが高すぎるかもしれませんが、これを理解するための適切なリンクがありませんでした。どなたか回答いただけると大変助かります。詳細をお伝えできます!

前もって感謝します!

4

1 に答える 1

1

100 MBの場合、アーカイブにあまり時間をかけずに、従来のバックアップ戦略を使用する必要があります。データベースのサイズが非常に小さいため、アーカイブプロセスは通常、巨大なデータベースの場合にのみ関連するため、アーカイブは非常に複雑な操作であり、ほとんど利益がありません。

一般的に、データベース用語でのバックアップは、災害(偶発的なデータの削除、サーバーのクラッシュなど)の場合に回復可能性を提供する方法です。アーカイブとは、主にデータをパーティション化することを意味します。

アーカイブで考えられる目標は、特定のデータをクエリに使用できるようにしておくことですが、データを変更することはできません。大量のデータベースを処理する場合、読み取り専用データは「ホット」データよりもはるかに高密度にインデックス付けできるため、これはパフォーマンスを向上させるための優れた方法です。また、読み取り専用データを、読み取り操作用に最適化された分離されたRAIDパーティションに移動することもでき、通常のRDBMSIOを気にする必要はありません。また、通常のデータベースから非アクティブなデータを削除することにより、テーブルに含まれるデータのサイズが減少し、システム全体のパフォーマンスが向上するはずです。

アーカイブは通常、法的な理由で行われます。問題のデータはビジネスにとってもはや重要ではないかもしれませんが、IRSまたは銀行の規則では、一定期間利用可能である必要があります。

SQL Serverを使用すると、パーティショニング戦略を使用してデータをアーカイブできます。これには通常、データを分割する基準を理解することが含まれます。この例としては、日付があります(つまり、3年以上前のデータは、データベースのアーカイブ部分に移動されます)。巨大なシステムの場合、地理的な基準に基づいてデータを分割することも理にかなっている場合があります(つまり、あるサーバーでは南北アメリカ、別のサーバーではヨーロッパ)。

あなたの質問に答えるには:

1)上記の説明を参照してください。2)アップグレードの目的によって異なります。それを.NETに移動すると、コードが管理されるようになりますが、それはビジネスにとってどれほど重要ですか?3)分割することにした場合、それが機能することを確認するには、分割に使用するしきい値の前後の両方の値を含むデータに対して元のデータベースでクエリを発行し、データを分割して、クエリを再発行することが含まれます。その後、それがまだ同じレコードセットを返すことを確認します。自動スライディングウィンドウを使用するようにシステムを構成する場合は、システムを監視して、データがアーカイブパーティションに自動的に移動されるようにすることもできます。

繰り返しになりますが、100 MBがタイプミスでない場合は、データベースが小さすぎてアーカイブのメリットを実際に享受できないと思います。速度を上げることが目標の場合は、データベース全体をRAMにロードできるサーバーにシステムを配置するか、SSDドライブを使用します。

法的な理由または管理上の理由でデータアーカイブを確立する必要がある場合は、水平テーブルのパーティション分割を確認してください。これは非常に単純なプロセスであり、ほとんどの場合SQLServerによって自動的に処理されます。

これがお役に立てば幸いです。

于 2013-02-20T09:05:45.070 に答える