6

データを選択的に配布する可能性は何ですか?

私の質問を例で説明します。すべてのデータを保持する中央データベースを考えてみましょう。このデータベースは、特定の地理的な場所にあります。

アプリケーション A は、中央データベースに存在する情報のサブセットを必要とします。また、アプリケーション A は、中央データベースが配置されている場所とは地理的に異なる (場合によっては遠い)場所に配置されている場合があります。

そこで、アプリケーション A と同じ場所に、中央データベースの情報のサブセットを含む新しいデータベースを作成することを考えました。

このような構成を展開できるテクノロジ/製品はどれですか?

ありがとう

4

4 に答える 4

4

データベースの複製を探します。SQL Serverは確実にこれを行うことができます。他のもの ( OracleMySQLなど) もそれを行う必要があります。

アイデアは、他の場所が (サブセット) コピーを維持するということです。更新は段階的に交換されます。競合を処理する方法は、アプリケーションによって異なります。

于 2012-07-04T10:53:14.887 に答える
2

MySqlやSQLサーバーなどのほとんどの主要なデータベースソフトウェアはその仕事をすることができますが、それは良いモデルではありません。アプリケーション(トラフィックとユーザー)の成長に伴い、中央データベースサーバー(他のアプリケーションにサービスを提供している可能性があります)に負荷がかかるだけでなく、ネットワーク帯域幅を悪用して遠くのデータベース間でデータを転送するようになりますおよびアプリケーションサーバー。

より良いモデルは、データをアプリケーションサーバーの近くに保持し、バックアップとリカバリの目的でのみ遠くのデータベースを使用することです。アプリケーションのニーズに基づいて、ストレージネットワークモデルとしてFC \ IP SAN(またはその他のストレージネットワークアーキテクチャ)を使用できます。

于 2012-07-04T11:56:45.633 に答える
1

あなたが対処しなかった大きな問題の 1 つは、アプリケーション A がデータへの読み取り専用アクセスを必要とするのか、それとも読み書き可能にする必要があるのか​​ということです。

要件を読んですぐに思い浮かぶ概念は、シャーディングです。MySQL では、これはパーティショニングで実現できます。そうは言っても、パーティションに飛び込む前に、必ずその長所と短所を読んでください。インデックスが適切に選択されていない場合、またはパーティショニング スキームがよく考えられていない場合、パーティショニングによって速度が低下する場合があります。

ニーズが読み取り専用の場合、これはかなり単純なソリューションです。マスター/スレーブ コンテキストで MySQL を使用し、スレーブからアプリ A を使用できます。読み書きが必要な場合、これはさらに複雑になります。

書き込みのニーズに応じて、読み取りをスレーブに分割し、書き込みをマスターに分割できますが、コード構造が大幅に複雑になります (複数のデータベースへの複数の接続を処理する必要があります)。この種のレイアウトの利点は、複雑な DB インフラストラクチャを用意する必要がないことです。

反対に、コードをそのまま維持し、MySQL でマスター - マスター レプリケーションを使用することができます。Oracle によって公式にサポートされていませんが、多くの人がこれで成功しています。Google で簡単に検索すると、ブログ、ハウツーなどの膨大なリストが見つかります。これをサポートするには、コードを適切に作成する必要があることに注意してください (例: PK に自動インクリメント フィールドを使用することはできません)。

使う現金がある場合は、より商業的な製品のいくつかを見ることができます. Oracle DB と SQL Server の両方がこれをサポートしています。

DRDB (および Mysql DRDB)などのブロック ベースのデータ レプリケーションを使用してノード間のレプリケーションを処理することもできますが、常に発生する問題は、2 つのノード間のリンクに障害が発生した場合です。

発生する最大の問題は、2 つの個別の DB ノードで競合する更新を処理する方法です。データが地理的に依存している場合、これは問題にならない可能性があります。

簡単に言えば、これは簡単に (または安価に) 解決できる問題ではありません。

于 2012-07-04T15:33:03.027 に答える
0

データベースのレプリケートについて話しているときはいつでも、設計段階で競合の可能性に対処することが重要です。

さらに、SAP の Sybase Replication Server を使用すると、Sybase データベースまたはサードパーティのデータベースのいずれかを使用して、まさにそれを行うことができます。

Sybase の世界では、これは企業ロールアップ環境と呼ばれることがよくあります。地理的に離れた複数のデータベースがあり、それぞれが主に制御できるデータのサブセットを持っている場合があります。HQ には、1 つのリポジトリにさまざまなサブセットがすべて含まれているサーバーがあります。テーブル全体を複製するか、個々の行/列の値に基づいて複製するかを選択できます。

これにより、データベースの一貫性が緩い状態に保たれます。トランザクション レート、地理的分離、およびネットワークに固有の遅延は、更新がデータベース間で移動する速度に影響します。ネットワーク接続が一時的にダウンした場合、Sybase Replication Server はトランザクションをキューに入れ、リンクが回復するとすぐに送信しますが、レプリケーション システムの信頼性と安定性はネットワーク接続の安定性に影響されます。

繰り返しますが、他の人が述べているように、安価ではありませんが、実装と維持は比較的簡単です。

免責事項: 私は Sybase で働いており、現在も SAP ファミリー企業の一員です。

于 2012-07-06T19:59:23.320 に答える