技術ブログ
目次
渡部です。
Delphixが提供する機能はパワフルですが、実はこの機能はDelphixだけを用いて実装されているわけではありません。 ZFSとOracle Databaseの技術をうまく活用して複製DB関連の機能を実装しています。
詳細はあとで説明しますが、ソースデータベース(≒本番データベース)からのデータ収集と複製DBの作成にOracle Databaseの機能を、本番データベースから収集した多数のファイルの管理にZFSの機能を活用しています。
個々のテクノロジを見る前に、Delphixの内部アーキテクチャから見たシステム構成を確認してみましょう。
ポイントは以下の通りです。
ソース データベースからのデータ収集は、Oracle Databaseのバックアップ技術を元にしています。
定期的にソース データベースをバックアップし、バックアップデータをネットワーク経由でDelphix Engineに転送します。 また、REDOログを定期的に収集し、これもネットワーク経由でDelphix Engineに転送します。
Delphix Engineでは、一連のバックアップとREDOログが保管されており、ソースデータベースの過去から直前までの一連の時系列での状態変化が把握されている形になります。この時系列をDelphixでは"Timeflow"と呼んでいます。
なお、Delphixでは、データ収集にエージェントは使用しません。その代わりにインストール時に構成したDelphix用OSユーザーでソースDBサーバにssh接続し、RMANバックアップなどの処理を実行します。
Delphixでは、定期的にソース データベースをバックアップします。それぞれのバックアップをDelphixでは"Snapshot"と呼んでいます。
以下のスライドは、ソース データベースを2回バックアップし、2つのSnapshotが作成されたときのコンソール表示です。
定期的にソース データベースをバックアップするとなると、気になるのはデータの容量ですが、DelphixではOracle Databaseの増分バックアップ機能を使ってバックアップを取得しています。このため2回目以降のバックアップではデータのサイズを通常の場合 大幅に削減できます。
複製データベースは、ソース データベースからデータ収集したバックアップとREDOログから作成します。 作成した複製データベースは指定された時点(ターゲット日時)の状態にする必要がありますので、内部的に不完全リカバリが実行されます。 不完全リカバリは指定された時点にデータベースを復旧するOracle Databaseの機能です。
処理の流れは以下のとおりです。
データベース構成ファイルの実体はDelphix Engine側に存在し、ZFSの管理下にあることに注意してください。これはストレージ領域の消費を抑えるために重要な点です。
ZFS管理下にある類似したファイルは重複排除機能によりストレージの消費量を抑えることができます。 ソースデータベースの構成ファイルと複製データベースの構成ファイル、複数ある複製データベースの構成ファイルは多くの部分が同じで、更新した一部の箇所だけが違いますので、ZFSの重複排除機能が非常に有効に機能します。
ZFS外部にデータベース構成ファイルをコピーすると、その分のストレージ領域を消費することになります。 これをグラフで示したのが以下のスライドです。ストレージ領域の消費量が大幅に異なることがわかると思います。この差は、複製データベースをより多く作成した場合にさらに顕著になります。
コーソルでは、Delphix(正式名称: Delphix Dynamic Data Platform)を用いた Oracle Databaseを用いたエンタープライズシステムのアプリケーション開発生産性を 高める仕組みを提供するソリューションを提供しています。
また、上記ページからは以下の資料がダウンロード可能です(要フォーム入力)。