株式会社コーソル

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

技術ブログ

Dbvisit Standby Snapshot Option – Dbvisit 9新機能

Dbvisit Standby Snapshot Option – Dbvisit 9新機能

渡部です。Dbvisit 9の有償オプションDbvisit Standby Snapshot Optionが日本で正式リリースされました! Snapshot Optionを使うと、スタンバイDBをレポート生成やアプリケーションのテストなどの用途に活用しやすくなります。

コーソルでは、Dbvisit Standbyの販売および設計、導入、製品サポートを行っています。Dbvisit Standbyをご検討の際はぜひコーソルにお声がけください。

Dbvisit Standby Snapshot Optionとは

Dbvisit Standby Snapshot Optionを使うと、以下のことが可能になります。

  • スタンバイDBのコピーを作成し、全く別個のデータベースとして自由に活用できる。
    • スタンバイDBのコピーは「(スタンバイDBの)スナップショット」と呼ばれる。
  • 異なる時刻におけるスタンバイDBのスナップショットを複数作成できる。
  • スナップショットは読取り専用 or 読み書き可能のいずれかのモードでOPENできる。
    • 読取り専用OPENして、特定時点のデータを基にしたレポート生成やデータ抽出が可能
    • 読み書き可能OPENして、アプリケーションの開発/テスト用のデータベースとして使用可能。また、SQLチューニングなど、データベース運用作業に関するテストデータべースに活用可能。

スタンバイDBと、スタンバイDBのスナップショットは独立した別個のデータベースです。 スタンバイDBのスナップショットに対して変更を加えても、スタンバイDBにその変更は波及しません。

また、スタンバイDBのスナップショットの利用中、スタンバイDBは通常のスタンバイ動作を継続します。 すなわち、ログ同期(ログ転送+適用)を継続します。スタンバイDBは、プライマリDBの変更に追従し、プライマリDBの安全なスペアという役割を担い続けます。

Snapshot Optionの2つの機能

Dbvisit Standby Snapshot Optionには、以下の2つの機能があります。

  • Single Snapshots / シングルスナップショット
  • Snapshot Group / スナップショットグループ

メカニズムや考え方がシンプルで理解しやすいのは、シングルスナップショットです。 スタンバイDBのコピーを1つ作成し、スタンバイDBとは全く別個の独立したデータベースとして、自由に活用する機能です。必要になったら作成し、不要になったら適宜削除します。

スナップショットグループは、シングルスナップショットを作成および削除を定期化/自動化した位置づけです。定期的にスナップショットを作成することで、準リアルタイム的にプライマリDBの変更に追従することを狙っています。

Snapshot Optionの管理コンソール画面

  • シングルSnapshots
  • Snapshotグループ

の2つの項目が用意されており、対応する機能の制御が可能です。

Single Snapshots / シングルスナップショットの動作イメージ

シングルSnapshotsの動作イメージは以下の通りです。

上記で説明した、Dbvisit Standby Snapshot Optionの特性がそのままあてはまります。

Snapshot Groupの狙い

Snapshotグループは、Active Data Guardのリアルタイム問合せモード(スタンバイDBにREDO適用しつつ、スタンバイDBを読取り専用モードでオープンできる)を意識して作られた機能のようです。

Active Data Guardのリアルタイム問合せモードの狙いは、プライマリDBへの追従とスタンバイDBのOPENを両立することと言えます。

Snapshotグループは、少し異なる仕組みで、この狙いを達成しようとしています。 Dbvisitが基礎とする技術である基本スタンバイでは、REDO適用中のスタンバイDBをOPENすることはできません。このため、若干力業的ですが、一定間隔でREDO適用中のスタンバイDBを複製することで、準リアルタイム的(=一定間隔毎にスタンバイDBが新しくなる)にプライマリDBに追従する動作を実現しています。

Snapshot Group / スナップショットグループの動作イメージ

Snapshotグループは、シングルスナップショットを作成および削除を定期化/自動化した位置づけです。定期的にスナップショットを作成することで、準リアルタイム的にプライマリDBの変更に追従することを狙っています。

ただ、単に、1つのスナップショットを作成→削除するだけだと、スナップショットを利用できない時間帯ができてしまいます。よって、Snapshotグループでは、複数のスナップショットをグループ化して、循環的にスナップショットを作成することで、この問題に対処しています。

Snapshotグループ作成時に、グループに含まれるスナップショットの個数を指定します。1~4のスナップショット数を指定できます。

Snapshotグループの動作イメージは以下の通りです。(スナップショット数=2の場合)

  • 一定間隔でスナップショットが自動的に作成されます。
  • グループ作成時に指定したスナップショット数を常に維持するように動作します。
    • (スナップショット数+1)個のスナップショットが存在するタイミングが発生しえます
  • シングルSnapshotsの場合と同様に、スナップショットはスタンバイDBとは独立したデータベースです。
    • スナップショットは更新含め、自由に使用可能です。
  • スナップショットは自動的に削除されます。

Snapshot Optionの仕組みイメージ

Dbvisit Standby Snapshot OptionはLinux LVMのスナップショットをベースに実装されています。

このため、2020年6月時点でDbvisit Standby Snapshot OptionはLinux限定リリースです。 Windowsでは、Dbvisit Standby Snapshot Optionを使用できません。

  • データベース構成ファイルを含むLV(論理ボリューム)のスナップショットボリュームを作成し、このスナップショット上のデータベース構成ファイルからインスタンスを立ち上げる
  • あらかじめLV内にスタンバイDBを配置しておく必要がある。
  • スナップショットが配置されたLVを含むVGに、スナップショット分の空き領域が必要
  • Dbvisit Standby Snapshot Optionは内部的にでLVMスナップショット機能を使用するが、LVMの操作は隠ぺいされている(使用者はLVM関係のコマンドを使う必要はない)
  • LVMスナップショットはいわゆるCoW(Copy on Write)なので、変更分のみストレージを消費する

Snapshot Optionを適用できる領域

以下の領域にDbvisit Standby Snapshot Optionを活用できると考えています。

  • すでにスタンバイDBを運用しているが、スタンバイDBをより有効活用したい場合
  • データベースの高可用性と開発生産性向上、プライマリDBの負荷軽減/処理の分散の一石二鳥を狙いたい場合

コーソルでは、Dbvisit Standbyの販売および設計、導入、製品サポートを行っています。Dbvisit Standbyをご検討の際はぜひコーソルにお声がけください。

プロフィール

On7tWW6m1Ul4

渡部 亮太

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

68LD3LWce1j8

守田 典男

・新しもの好きな Oracle Fighter。
・保有資格 : ORACLE MASTER Platinum Oracle Database 11g, 12c 他多数

カテゴリー

アーカイブ