株式会社コーソル

コーソルDatabaseエンジニアのブログ

技術ブログ

Delphixのアーキクチャと基盤となるテクノロジ (ZFS, Oracle Database)

渡部です。

Delphixが提供する機能はパワフルですが、実はこの機能はDelphixだけを用いて実装されているわけではありません。 ZFSとOracle Databaseの技術をうまく活用して複製DB関連の機能を実装しています。

Delphixを構成する基盤技術

詳細はあとで説明しますが、ソースデータベース(≒本番データベース)からのデータ収集と複製DBの作成にOracle Databaseの機能を、本番データベースから収集した多数のファイルの管理にZFSの機能を活用しています。

Delphixの内部アーキテクチャ

個々のテクノロジを見る前に、Delphixの内部アーキテクチャから見たシステム構成を確認してみましょう。

内部アーキテクチャ観点で見たシステム構成

ポイントは以下の通りです。

  • バックアップとREDOログを収集することでソース データベースからデータを収集
  • 収集したバックアップとREDOログを元に複製データベース(複製データベースの構成ファイル)を作成
  • 複製データベースの構成ファイルの実体はDelphix Engine内に配置し、開発/テスト用DBサーバにはNFS経由でエクスポート
  • OracleインスタンスはDBサーバ側で動作。Delphix Engine内ではOracleインスタンスは動作しない
  • Delphix Engine内のファイル複製はZFS重複排除機能により高速処理可能+ストレージ消費抑制可

ソース データベースからのデータ収集

ソース データベースからのデータ収集は、Oracle Databaseのバックアップ技術を元にしています。

基本的なアーキテクチャ - ソースDBからのデータ収集

定期的にソース データベースをバックアップし、バックアップデータをネットワーク経由でDelphix Engineに転送します。 また、REDOログを定期的に収集し、これもネットワーク経由でDelphix Engineに転送します。

Delphix Engineでは、一連のバックアップとREDOログが保管されており、ソースデータベースの過去から直前までの一連の時系列での状態変化が把握されている形になります。この時系列をDelphixでは"Timeflow"と呼んでいます。

なお、Delphixでは、データ収集にエージェントは使用しません。その代わりにインストール時に構成したDelphix用OSユーザーでソースDBサーバにssh接続し、RMANバックアップなどの処理を実行します。

Snapshot = データベースの増分バックアップ

Delphixでは、定期的にソース データベースをバックアップします。それぞれのバックアップをDelphixでは"Snapshot"と呼んでいます。

以下のスライドは、ソース データベースを2回バックアップし、2つのSnapshotが作成されたときのコンソール表示です。

delphix_014.png

定期的にソース データベースをバックアップするとなると、気になるのはデータの容量ですが、DelphixではOracle Databaseの増分バックアップ機能を使ってバックアップを取得しています。このため2回目以降のバックアップではデータのサイズを通常の場合 大幅に削減できます。

複製データベースの作成

複製データベースは、ソース データベースからデータ収集したバックアップとREDOログから作成します。 作成した複製データベースは指定された時点(ターゲット日時)の状態にする必要がありますので、内部的に不完全リカバリが実行されます。 不完全リカバリは指定された時点にデータベースを復旧するOracle Databaseの機能です。

delphix_015.png

処理の流れは以下のとおりです。

  • 増分バックアップをマージして、複製データベースのターゲット日時に近いデータベース構成ファイルを作成します(①)
  • ZFS軽量クローンコピーを用いて、データベース構成ファイルをコピーします(②)。単純なファイルコピーと比べて、ストレージ領域の消費を大幅に抑えることができます
  • NFSでデータベース構成ファイルをDBサーバにエクスポートします(③)。
  • 不完全リカバリ処理を実行して、複製DBをターゲット日時の状態まで進めます(④)

データベース構成ファイルの実体はDelphix Engine側に存在し、ZFSの管理下にあることに注意してください。これはストレージ領域の消費を抑えるために重要な点です。

複製DBの作成 - アーキテクチャ

ZFS管理下にある類似したファイルは重複排除機能によりストレージの消費量を抑えることができます。 ソースデータベースの構成ファイルと複製データベースの構成ファイル、複数ある複製データベースの構成ファイルは多くの部分が同じで、更新した一部の箇所だけが違いますので、ZFSの重複排除機能が非常に有効に機能します。

複製DBによるストレージ領域消費

ZFS外部にデータベース構成ファイルをコピーすると、その分のストレージ領域を消費することになります。 これをグラフで示したのが以下のスライドです。ストレージ領域の消費量が大幅に異なることがわかると思います。この差は、複製データベースをより多く作成した場合にさらに顕著になります。

ストレージ領域消費量の比較

[宣伝] アジャイル開発向けデータベース環境構築サービス(Delphix導入サービス)とDelphix説明資料のご紹介

コーソルでは、Delphix(正式名称: Delphix Dynamic Data Platform)を用いた Oracle Databaseを用いたエンタープライズシステムのアプリケーション開発生産性を 高める仕組みを提供するソリューションを提供しています。

また、上記ページからは以下の資料がダウンロード可能です(要フォーム入力)。

  • Delphix説明資料
  • Delphix Maskingマスキングアルゴリズム概説
  • Delphixの内部動作とそれを構成する基盤技術

Delphix記事一覧

プロフィール

On7tWW6m1Ul4

渡部 亮太

・Oracle ACE
・AWS Certified Solutions Architect - Associate
・ORACLE MASTER Platinum Oracle Database 11g, 12c 他多数

カテゴリー

アーカイブ