13

通常、データベース サーバーは、垂直方向のスケーリングが唯一のオプションであるため、購入する必要がある最大かつ最も高価なボックスです。水平方向 (つまり、複数のコモディティ マシン間) に適切にスケーリングできるデータベースはありますか? また、このアプローチの制限は何ですか?

4

13 に答える 13

8

すべての Oracle インスタンスが同じデータ ストレージを共有するため、Oracle RAC は水平方向にスケーラブルではありません。はい、SAN を使用すると大規模な DB を取得できますが、スケーラブルではありません。つまり、Oracle RAC は依然としてスケールアップ アプローチです。したがって、スケールアウトまたは水平方向のスケーリングでは、関数ごとにデータを分割する必要があります。これは、異なるデータベースに異なるテーブル グループを配置することを意味します。または、テーブルごとにデータを分割します。つまり、1 つのテーブルを同じスキーマを持つ複数のサブテーブルに分割しますが、異なるデータベースに格納します。このようにして、スケールアウト ソリューションが得られます。それには多くのリソースがあります。シャーディングは、Web 2.0 Web サイト アーキテクチャのブログ領域でしばらくの間流行語でした。シャーディングはデータベース自体では直接サポートされていないため、独自のソリューションを構築する必要があります。しかし、私が言ったように、すでに多くの教訓があります。Oracle の場合、テーブルの分割が可能です。mysqlの場合、この質問を確認してください

于 2009-05-13T16:58:16.660 に答える
5

Oracle RAC -- Real Application Clusters

これはうまく機能します。クラスターにボックスを追加するだけです。あるボックスから別のボックスにフェイルオーバーできます。これは複製ではなく、すべてのボックスが同じ論理ユニットの一部です。

もちろん、かなりの出費です。

于 2008-09-03T21:47:11.660 に答える
4

心配する必要はありません。良い解決策がすぐに見つかります。

CouchdbHypertableはオープン ソースであり、まだアルファ版ですが、コモディティ ソフトウェアのスケーリングを簡単にするように設計されていることは明らかです。それらは非常にうまく機能し、データベースに対する考え方を変えるかもしれません。

また、配布を誰かに任せてもよければ、Google AppEngineAmazon SimpleDBは非常に安価な分散データベース サービスですが、どちらも現在ベータ版であるため、厳しい制限が課せられています。

于 2008-09-03T22:11:56.187 に答える
2

RAC ルートをたどる場合は、水平方向に永遠にスケーリングするわけではないことを覚えておく価値があります。営業担当者でさえ、RAC の顧客の 90% が 4 ノード以下であることを認めています。それ以上になると、リターンが減少します。したがって、 rac はうまくいくかもしれませんが、それが答えであるとは限りません。

于 2008-12-02T16:27:05.910 に答える
2

MySQL: http://www.mysql.com/why-mysql/scaleout.html

制限は、ほとんどが読み取りのワークロードで最適に機能することです。通常、すべての書き込みを受け取る 1 つの「マスター」と、書き込みを複製する多数の「スレーブ」があります。次に、読み取りをすべてのデータベースに分散します。

MySQL のレプリケーションは非同期であるため、おそらくタイム ラグの問題に対処する必要があります (マスターに書き込み、書き込みがレプリケートされる前にスレーブから読み取る)。

于 2008-12-02T16:58:13.210 に答える
2

オブジェクトへの高度にスケーラブルで高速かつ安全なアクセスを提供する JavaSpaces (または Gigaspaces などの商用実装) などのストレージ技術があります。

同様のアプローチを提供する memcached などの分散キャッシュ システムもあります。

もちろん、どちらも真のデータベースではありませんが、適切なアーキテクチャがあれば、データベースと連携して大きな水平スケーラビリティを提供できるものです。本当の問題は、データベースに付属するすべての ACID の利点が必要な場合、避けられないパフォーマンスの低下が発生することです。唯一の解決策は、ACID を必要としないビットを見つけ出し、他のテクノロジを使用してそれらのビットを処理することです。

于 2008-09-03T21:37:08.440 に答える
2

Oracle RAC はデータベースのロールス ロイスであり、余分なハードウェア ノードを比較的簡単に追加し、ハードウェアのフェイルオーバーを可能にします。

ただし、コモディティ ハードウェアのコストは、ライセンス コストよりも小さくなります。

水平方向のスケーリングが必要だと感じるのはなぜですか。40 GB の RAM と SAN ストレージを備えたマルチ CPU コア サーバーは、非常に大規模な DB インストールをサポートできます。

問題をよりよく理解できるように、サイジングと予想されるアクティビティの情報を提供できますか?

于 2008-09-03T22:05:58.137 に答える
1

Netezzaやその他のデータ ウェアハウス アプライアンスはこのようにスケーリングしますが、OLTP や Web アプリのワークロードには適していません。

于 2008-09-03T21:41:27.337 に答える
1

複数のマシンにわたってスケーリングするための Oracle ルートは、Real Application Clusters (Oracle RAC) と呼ばれます。これに関するドキュメントは他にもあります。http://www.oracle.com/database/rac_home.htmlから始めてみてください。

于 2008-09-03T21:44:15.520 に答える
0

OracleRealApplicationClusters。最高のものが必要な場合は、それを見てください。

于 2008-09-04T10:41:29.707 に答える
0

まともなマルチコアの「ビッグ アイアン」ボックスを拡張することを真剣に考えている場合は、データのパーティショニングを検討します。これは、データベースに依存しない優れたスケールアウト方法です。

水平方向のすべてのデータベースは、深刻なコストがかかります。

問題を解決するための大金がない限り、RAC のことは忘れてください。非常に優れていますが、2 ノードを超えてスケ​​ーリングすると非常に高価になります。

于 2008-09-16T12:20:24.390 に答える
0

OLAP 用の DashDB を見ることができます。IBM は、それを OLTP 用の Cloudant と組み合わせています。 https://www.ibm.com/developerworks/community/blogs/5things/entry/5_things_to_know_about_dashdb_placeholder?lang=en

于 2015-06-24T18:41:29.390 に答える