この記事は、 Shailesh Dwivediによる’Sharding Oracle Database Cloud Service‘の日本語翻訳版記事です。

2023年6月23日


Oracle ShardingがOracle CloudとOracle Database Cloud Service、KubernetesおよびDockerコンテナ(OKE)で利用できるようになりました。

Oracle Shardingを使用すると、グローバルに分散するハイパースケール・データベースが有効になります。線形スケーラビリティ、弾力性、障害分離性、およびデータ主権の地理的分散を必要とするアプリケーションをサポートします。

Shardingは独立したOracleデータベース(シャード)にデータ・セットの塊を分散することによって実装されます。シャードはクラウドまたはオンプレミスにデプロイでき、特殊なハードウェアやソフトウェアを必要としません。

次の図は、3つのシャード間で水平にパーティション化された表を示しています。

図1-1シャード間の表の水平パーティション化

Shardingのメリット

  • 線形スケーラビリティ。シャーディングによりパフォーマンスのボトルネックがなくなり、シャードを追加することでパフォーマンスと容量を直線的にスケーリングできます。
  • フォルト・コンテナ。シャーディングは共有ディスク、SAN、クラスタウェアなどの単一障害点を排除し、強力な障害分離性を提供する、シェアードナッシング型のハードウェア・インフラストラクチャです。シャードの障害または低速化は、他のシャードのパフォーマンスや可用性には影響しません。
  • データの地理的分布。シャーディングにより、特定のデータを消費者の近くに格納し、特定の管轄区域にデータを配置する必要がある場合など規制要件を満たすことができます。
  • ローリング・アップグレード。一度に1つのシャードに構成変更を適用しても、他のシャードには影響しません。これにより、管理者は最初に小さなデータ・サブセットで変更をテストできます。

NoSQLソリューションとは異なりOracle Shardingは、強力なデータ一貫性、SQLのフルパワー、構造化データおよび非構造化データのサポート、およびOracle Databaseエコシステムを提供します。

参考情報

以下のリンクからより詳しい情報をご確認ください。

Sharding Oracle Database Cloud Service : こちらからOracle Cloud Infrastructure Marketplaceで使用可能なシャーディング・オートメーションのリストを確認できます。これにより、Oracleシャード・データベースのプロビジョニングおよび管理を自動化します。

自動化には次の機能が含まれます。

  • Oracle Enterprise Extreme Performanceデータベース・エディションでシステム管理のShardingをサポートします。
  • リージョン内のADおよび各AD内のフォルト・ドメイン間でのシャード、カタログおよびシャード・ディレクタの自動および均一分散。
  • シャードおよびカタログのデータ・レプリケーションをデータガード・ベースでサポートするため、リージョン内の高可用性が提供されます。
  • シャードの数を簡単にスケーリングする機能を提供し、水平方向のスケーラビリティを提供します。
  • 高可用性およびリクエストのロード・バランシングのために、シャード・ディレクタの数を簡単にスケーリングできます。

Oracle Cloud (OKE)のKubernetesおよびDockerコンテナによるSharding:このGitHubリポジトリには、Oracle Cloud Infrastructure AnsibleモジュールおよびHelm/Chartを使用して、Oracle Kubernetes Engine (OKE)上のOracleシャード・データベースのプロビジョニングを自動化するためのデプロイメント・プロシージャがあります。

Reference Architecture Patterns :スケーラビリティ、可用性およびセキュリティのベスト・プラクティスを備えた、お客様からインスピレーションを受けたOracle Cloudデプロイメント・アーキテクチャ・パターンをご確認いただけます。

Oracle Database Sharding:Shardingの最新情報、カスタマ・ケース・スタディおよび様々なリソースへのリンクがあるOracle Sharding製品ページです。