はじめに

みなさん、こんにちは。
Oracle Cloud Infrastructure検証チームです。

今回はOCIチュートリアル ORACLE DATABASE編のうち、 リフレッシュ可能クローンを活用しよう を参考に、
Autonomous Database リフレッシュ可能クローン機能を検証していきたいと思います。

Autonomous Databaseにおけるクローン

Autonomous Databaseでは、フル・クローン、メタデータ・クローン、リフレッシュ可能クローン3種類のクローン作成方式が提供されています。
クローン機能の代表的なユースケースとしては、テスト用環境の作成などが考えられるかと思いますが、
Autonomous Databaseでは用途に合った方式を選択し、簡単にクローン環境を作成することが可能になっています。

Autonomous Databaseのクローンについては、マニュアルもご参照ください。
フル・クローン、メタデータ・クローンについては、前回記事にてご紹介しています。
今回はリフレッシュ可能クローンの動作検証をしていきたいと思います。

No クローン種別 特徴
1 フル・クローン ソース・データベースのメタデータとデータを含むデータベースが作成される。
2 メタデータ・クローン ソース・データベースのメタデータのみを含むデータベースが作成される。
データサイズが大きな環境のテスト環境を作成する際など、メタデータのみをコピーし、テスト環境においては最小限のサンプルデータを利用することが可能。
3 リフレッシュ可能クローン ソース・データベースの任意の時間の状態に更新することができる読み取り専用のクローンが作成される。

Autonomous Databaseにおけるクローン検証の流れ

検証の流れは下記の通りです。

  1. ソース・データベースにおけるテストデータの作成
  2. リフレッシュ可能クローンの実行およびクローン後のテストデータ確認
  3. クローンのリフレッシュ操作実行
  4. リフレッシュ可能クローンの切断
  5. リフレッシュ可能クローンの再接続

また、今回の検証では下記2点を前提として進めています。

  1. Autonomous Transaction Processing(以降、ATPと表記)が作成済みであること
  2. ATPへのsqlplus接続が可能であること

それでは早速確認してみましょう。
よろしくお願いいたします!

ソース・データベースにおけるテストデータの作成

テストデータの作成

まずは第一のステップ、「ソース・データベースにおけるテストデータの作成」をしていきたいと思います。
クローン後にデータが期待通りコピーされているかの確認を行いますので、そのための準備作業です。

早速、ATPインスタンスへSQL*Plusで接続します。
ATPインスタンスへのSQL*Plus接続は、ウォレットとCloud Shellを利用しています。
ATPインスタンスへの接続についてはこちらをご参照ください。

SQL*Plus接続後、テストテーブルの作成、テストデータのINSERTを実行します。
今回は”TEST_TBL”というテーブルを作成し、テストデータを5件 INSERTしてみます。

“TEST_TBL”が作成され、5件のデータがINSERTされていることを確認できました!

リフレッシュ可能クローンの実行およびクローン後のテストデータ確認

リフレッシュ可能クローンの実行

次に、リフレッシュ可能クローンの実行、およびクローン後のテストデータ確認作業に移ります。
先ほどテストデータを作成したATPインスタンスをソース・データベースとして、リフレッシュ可能クローンを実行していきたいと思います。

  1. メインメニュー画面から「Oracle Database」「Autonomous Transaction Processing」を押下します。
  2. 次に、ソース・データベースとなるATPインスタンス名を押下します。
    今回は「ATPTEST01」をソース・データベースとして利用します。
  3. 次に、「More actions(他のアクション)」「クローンの作成」を押下します。
  4. クローンの作成画面に遷移しますので、各種設定をしていきます。
    • クローン・タイプの選択
      →リフレッシュ可能クローンを選択します。
    • 優先リージョンの選択
      →ソース・データベースの リージョン と異なるリージョンを選択することも可能です。
    • コンパートメント
      →ソース・データベースと異なるコンパートメントを選択することも可能です。
    • ソース・データベース名
      →ソース・データベース名が表示されます。(変更不可)
      フル・クローンおよびメタデータ・クローンでは、実行中のAutonomous Databaseおよびバックアップからクローン作成可能ですが、
      リフレッシュ可能クローンではバックアップからの作成は不可となります。
    • 表示名/データベース名
      →任意の名前を指定することが可能です。
      今回は”ATPTEST01RefClone”としています。
    • ECPU数
      →ソース・データベースから変更することも可能です。

    設定後、「Autonomous Databaseのクローンの作成」を押下します。

    作成が始まると、自動的にクローン環境のプロビジョニング画面に遷移します。
    クローンが完了すると、「使用可能」のステータスになります。

リフレッシュ可能クローン後のテストデータ確認

リフレッシュ可能クローンが完了しましたので、クローン後のATPインスタンスに接続し、テストデータの確認をしたいと思います。

クローン後のATPインスタンス(ATPTEST01RefClone)へSQL*Plusで接続します。
SQL*Plus接続後、テストデータの確認を実行します。

事前にATPTEST01で作成していた”TEST_TBL”が存在し、データが5件あることを確認できました!

クローンのリフレッシュ操作実行

ソース・データベースのテストデータ更新

次に、クローンのリフレッシュ操作を試したいと思います。
ソース・データベースに追加のデータをINSERTし、追加したデータがリフレッシュ操作によってリフレッシュ可能クローンに反映されることを確認します。

まずは、ソース・データベースに追加のテストデータ(6,F,2024/02/14 02:01:08)をINSERTします。

クローンのリフレッシュ実行

ソース・データベース側のテストデータが準備出来ましたので、クローンのリフレッシュ操作を実行します。

クローンATPインスタンス(ATPTEST01RefClone)の詳細画面から、「クローンのリフレッシュ」を押下します。

リフレッシュ・ポイントのタイムスタンプを入力する画面が表示されるため、任意の時刻をUTCで入力し「クローンのリフレッシュ」を押下します。
時刻指定は、過去1分~7日まで指定することが可能ですが、今回は1分前の時刻を設定しました。

リフレッシュが始まると、自動的にクローン環境の画面に遷移し、「更新中」となります。

リフレッシュが完了すると、「使用可能」のステータスになります。

リフレッシュ後のデータ確認

リフレッシュ操作が完了しましたので、クローンATPインスタンス(ATPTEST01RefClone)へSQL*Plusで接続し、テストデータの確認を行います。
ソース・データベースへ追加INSERTをしたデータ(6,F,2024/02/14 02:01:08)がATPTEST01RefCloneにも反映されていることが確認できました!

リフレッシュ可能クローンの切断

リフレッシュ可能クローンの切断

次にリフレッシュ可能クローンをソース・データベースから切断し、データ更新をしてみたいと思います。

リフレッシュ可能クローンは読み取り専用ですが、
書き込み可能なテスト環境として利用したい場合などもあるかと思います。

そのような時には、リフレッシュ可能クローンをソース・データベースから切断することで読み書き可能にすることができます。
早速試してみましょう!

クローンATPインスタンス(ATPTEST01RefClone)から、「切断」を押下します。

ソース・データベース名の入力を求める画面に遷移しますので、ソース・データベース名を入力し、
「リフレッシュ可能クローンの切断」を押下します。
切断後は、24時間以内であればソース・データベースへの再接続が可能です。

 

クローン切断後のデータ書き込み

切断が完了しましたので、クローンATPインスタンス(ATPTEST01RefClone)でデータの書き込みをしてみましょう。

まずはクローンATPインスタンス(ATPTEST01RefClone)へSQL*Plusで接続します。
SQL*Plus接続後、テストデータを挿入してみます。

問題無く、7件目のデータ(7,G,2024/02/14 02:15:45)が作成されました。

リフレッシュ可能クローンの再接続

リフレッシュ可能クローンの再接続

切断したリフレッシュ可能クローンをソース・データベースに再接続し、
リフレッシュ操作を実行して、ソース・データベースの変更内容をリフレッシュ可能クローンに反映してみたいと思います。

まずは、ソース・データベースに追加のテストデータ(8,H,2024/02/14 02:18:06)を挿入します。


クローンATPインスタンス(ATPTEST01RefClone)から、「リフレッシュ可能クローンの再接続」を押下します。

ソース・データベース名の入力を求める画面に遷移しますので、ソース・データベース名を入力し、
「リフレッシュ可能クローンの再接続」を押下します。
再接続を実行すると、リフレッシュ可能クローンに直接書き込みを行ったデータは失われます。

再接続完了後、クローンATPインスタンス(ATPTEST01RefClone)へSQL*Plusで接続します。
SQL*Plus接続後、テストデータを確認してみます。

リフレッシュ可能クローンに直接書き込みを行ったデータ(7,G,2024/02/14 02:15:45)が失われていることが分かります。

再接続後も問題無くリフレッシュが実行できることを確認してみます。
手順は先ほどと同様です。

リフレッシュ後、クローンATPインスタンス(ATPTEST01RefClone)へSQL*Plusで接続します。
SQL*Plus接続後、テストデータを確認してみます。

先ほどソース・データベースに追加したテストデータ(8,H,2024/02/14 02:18:06)が反映されていることが分かります。

さいごに

最後までご覧いただきありがとうございます。

今回はAutonomous Databaseのリフレッシュ可能クローンの動作検証をしてみました。
テスト環境を用意する手段として、クローンはとても有用な手段だと思います。

リフレッシュ可能クローンは特に、ソース・データベースの更新を反映したり、
必要に応じて読み書き可能な状態にすることが出来たりする点がとても便利に感じました。

当社ではOracleデータベースOracle Cloudサービスを多数展開しております。
何かお困りのことがありましたら、お気軽にお問い合わせください。

投稿者プロフィール

技術チーム
技術チーム
DBひとりでできるもんを盛り上げるべく、技術チームが立ち上がり早6年。ひとりでできるもんと言いつつ、技術者が読んでプッとなるような、極めてピンポイントでマニアックな技術ネタを執筆しています!