Autonomous Databaseのリフレッシュ可能クローンを利用すると、本番環境のデータを用いてリフレッシュすることができる、更新可能なテスト/検証/分析用途の環境を簡単に作成することができます。
本章では、リフレッシュ可能クローンの作成方法と動作について確認します。
所要時間 : 約30分
前提条件 :
- ADBインスタンスが構成済みであること
※ADBインタンスを作成方法については、本チュートリアルの 101:ADBインスタンスを作成してみよう を参照ください。 - 構成済みのADBインスタンスへの接続が可能であること
目次:
- 1. ADBにおけるリフレッシュ可能クローンの概要
- 2. 事前準備
- 3. リフレッシュ可能クローンを作成してみよう
- 4. 作成したリフレッシュ可能クローンを確認してみよう
- 5. リフレッシュ可能クローンのリフレッシュ動作を確認してみよう
- 6. リフレッシュ可能クローンをソース・データベースから切断してみよう
- 7. リフレッシュ可能クローンをソース・データベースに再接続してみよう
1. ADBにおけるリフレッシュ可能クローンの概要
ADBのリフレッシュ可能クローンは、コンソールまたはAPIを使用して作成することができます。
リフレッシュ可能クローンを使用することで、リフレッシュ操作によってソース・データベースの変更内容を反映することが可能なADBのクローンを作成できます。
ADBのリフレッシュ可能クローンは以下のような特徴があります。
- 実行中のAutonomous Databaseから作成可能(バックアップからの作成は不可)
- ソースとなるAutonomous Databaseと異なるコンパートメントに作成可能
- ソースとなるAutonomous Databaseに接続している間は読み取り専用データベースとして利用可能
- コンソールまたはAPIを使用したリフレッシュ操作により、ソース・データベースの変更内容を反映可能
- リフレッシュ中は利用不可(ソース・データベースはリフレッシュ中も利用可能)
- リフレッシュ可能期間は、クローン作成後または前回のリフレッシュから1週間以内
- 1週間以上リフレッシュしなかった場合はリフレッシュできなくなる
- リフレッシュ可能期間を超えた場合は、そのまま読み取り専用DBとして利用するかソース・データベースから切断して通常の読み取り/書き込み可能なDBとして利用する
- ソースとなるAutonomous Databaseから一時的に切断し、再接続することが可能
- 切断後は読み取り/書き込み可能
- 再接続操作は切断後24時間以内のみ可能
- 再接続すると切断中のクローンに対する更新内容は破棄される
- 再接続後は切断前と同様に、リフレッシュ操作によりソース・データベースの変更内容を反映可能
リフレッシュ可能クローンに関する詳細な情報はマニュアルを参照ください。
2. 事前準備
実際にリフレッシュ可能クローンを作成する前に、ソース・データベースとなるAutonomous Databaseに対してサンプルスクリプトを実行し、データを挿入します。
ここではある会社の部門の情報を含む、DEPARTMENT表という簡単な表を作成していきます。
-
次の手順に従って、SQL*Plusを使用してリフレッシュ可能クローンのソースとなるADBに接続します。
1-1. SQL*Plusがインストールされている仮想マシンにssh接続します。
仮想マシンの作成およびセットアップ方法はこちら1-2. 下記のコマンドを参考に、oracleユーザに切り替えます。
sudo -s
su - oracle
(一旦rootユーザにスイッチしてから、oracleユーザにスイッチしています)
1-3. 下記のコマンドを参考に、SQL*PlusからADBに接続します。
sqlplus [username]/[password]@[接続サービス名]
本チュートリアルを参考にADBインスタンスを作成された方は、次のようなコマンドになります。
sqlplus admin/Welcome12345#@atp01_low
SQL*Plusを使用したADBへの接続方法の詳細については、104: クレデンシャル・ウォレットを利用して接続してみよう をご確認ください。
-
次のサンプルスクリプトを実行し、DEPARTMENT表を作成します。
こちらのスクリプトをコピーし、SQL*Plusにペーストします。
DROP TABLE department CASCADE CONSTRAINTS PURGE; CREATE TABLE department ( dept_id NUMBER(10) PRIMARY KEY, dept_name VARCHAR2(20) NOT NULL, mgr_id NUMBER(10) NOT NULL, last_update DATE NOT NULL ); INSERT INTO department VALUES (1, 'ADMINISTRATION', 1000, sysdate); INSERT INTO department VALUES (2, 'HUMAN RESOURCE', 2000, sysdate); INSERT INTO department VALUES (3, 'LEGAL OFFICE', 3000, sysdate); INSERT INTO department VALUES (4, 'ACCOUNTING', 4000, sysdate); INSERT INTO department VALUES (5, 'MARKETING', 5000, sysdate); COMMIT;
-
次のSELECT文を実行し、表が正しく作成されているかを確認します。
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY/MM/DD HH24:MI:SS'; SELECT * FROM department;
次のような結果になっていればOKです。
-
SQL*Plusを終了します。
exit
3. リフレッシュ可能クローンを作成してみよう
ADB(atp01)のリフレッシュ可能クローンを作成します。
- ソースとなるAutunomous Databaseの詳細画面から「クローンを作成」をクリックします。
-
クローンの作成画面が表示されます。
作成するクローンの設定を行います。
下記を参考に設定してみましょう。
-
クローン・タイプ:リフレッシュ可能クローン
ソース・データベースのメタデータとデータが複製され、ソース・データベースのデータでリフレッシュ可能な読み取り専用のフルクローンを作成します。 - Autonomous Databaseクローンの基本情報の指定
- コンパートメント:任意のコンパートメントを指定
- ソース・データベース名:atp01(変更できません)
- 表示名:Refreshable-Clone-of-atp01(任意の名前でOKです)
- データベース名:atp01RefClone(任意の名前でOKです)
- データベースの構成
- ECPU数:2(任意の値でOKです)
- ネットワーク・アクセスの選択:すべての場所からのセキュア・アクセス
- ライセンス・タイプの選択:ライセンス込み
-
連絡先の電子メール:任意のメールアドレス
最後に「Autonomous Databaseのクローンの作成」をクリックすると、プロビジョニングが始まります。
指定したコンパートメント内にリフレッシュ可能クローンが作成されていることをご確認ください。
4. リフレッシュ可能クローンを確認してみよう
作成したリフレッシュ可能クローンに接続してみましょう。
また、正しくクローンされているかを確認するために、リフレッシュ可能クローン内にソース・データベースに作成したDEPARTMENT表が存在し、DEPARTMENT表内にソース・データベースと同じデータが入っていることを確認します。
-
次の手順に従って、リフレッシュ可能クローンに接続してみましょう。
詳細は、104: クレデンシャル・ウォレットを利用して接続してみよう の 1. クレデンシャル・ウォレットのダウンロード を参照ください。
1-1. リフレッシュ可能クローンのウォレットをダウンロードします。
OCIコンソールからリフレッシュ可能クローンの詳細画面に移動します。
手順は次の通りです:
「DB接続」→インスタンスタイプのウォレットをダウンロード→ウォレットに設定するパスワードを入力1-2. リフレッシュ可能クローンへの接続に使用するクライアントの設定ファイルを編集します。
設定ファイルの編集方法についての詳細は、次のリンク先をご確認ください:- 接続用の仮想マシン上で編集する方法 204: マーケットプレイスからの仮想マシンのセットアップ方法
補足
1つの接続用の仮想マシンから複数のAutonomous Databaseに接続する場合は、それぞれのウォレットごとにディレクトリを作成し、どのAutonomous Databaseに接続したいかによって環境変数TNS_ADMINが参照するウォレットの場所を切り替えるとスムーズに接続することができます。
または、リージョナル・ウォレットというクレデンシャルウォレットを活用するとより簡単に接続することが可能になります。 リージョナル・ウォレットには、同一コンパートメント内のすべてのADBに関する資格情報が含まれているため、DBを切り替えるたびにウォレットの場所などを意識することなくご利用いただけます。 ADBの資格証明に関する詳細な情報はこちらを参照ください。
-
先ほど同様に、SQL*Plusを使用してリフレッシュ可能クローンに接続します。
sqlplus [username]/[password]@[接続サービス名]
本チュートリアルを参考にリフレッシュ可能クローンを作成された方は、次のようなコマンドになります。
sqlplus admin/Welcome12345#@atp01RefClone_low
※接続サービス名にご注意ください。ソース・データベースと名称が異なります。
-
次のSELECT文を使用し、先ほどソース・データベースで作成したDEPARTMENT表の内容が表示されることを確認します。
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY/MM/DD HH24:MI:SS'; SELECT * FROM department;
次のような結果になっていればOKです。
リフレッシュ可能クローンを作成すると、メタデータだけでなくデータもクローンされていることが確認できました。
-
SQL*Plusを終了します。
exit
5. リフレッシュ可能クローンのリフレッシュ動作を確認してみよう
ソース・データベースにデータを追加し、リフレッシュ操作を行なって、ソース・データベースの変更内容がリフレッシュ可能クローンに反映されることを確認します。
-
SQL*Plusからソース・データベースに接続します。
sqlplus [username]/[password]@[接続サービス名]
本チュートリアルを参考にADBインスタンスを作成された方は、次のようなコマンドになります。
sqlplus admin/Welcome12345#@atp01_low
-
次のSQL文を実行し、ソース・データベースのDEPARTMENT表にデータを追加します。
INSERT INTO department VALUES (6, 'SALES', 6000, sysdate); COMMIT;
-
次のSELECT文を実行し、データが正しく追加されているかを確認します。
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY/MM/DD HH24:MI:SS'; SELECT * FROM department;
次のような結果になっていればOKです。
-
SQL*Plusを終了します。
exit
-
リフレッシュ可能クローンのリフレッシュを実行します。
リフレッシュ可能クローンの詳細画面から「クローンのリフレッシュ」をクリックします。
リフレッシュ・ポイントのタイムスタンプを入力する画面が表示されます。
現在時刻の1分前の時刻をUTCで入力し、「クローンのリフレッシュ」をクリックします。 -
SQL*Plusからリフレッシュ可能クローンに接続します。
sqlplus [username]/[password]@[接続サービス名]
本チュートリアルを参考にリフレッシュ可能クローンを作成された方は、次のようなコマンドになります。
sqlplus admin/Welcome12345#@atp01RefClone_low
※接続サービス名にご注意ください。ソース・データベースと名称が異なります。
-
次のSELECT文を実行し、ソース・データベースの変更内容がリフレッシュ可能クローンに反映されていることを確認します。
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY/MM/DD HH24:MI:SS'; SELECT * FROM department;
次のような結果になっていればOKです。
リフレッシュ操作によって、ソース・データベースの変更内容がリフレッシュ可能クローンに反映されていることが確認できました。
-
SQL*Plusを終了します。
exit
6. リフレッシュ可能クローンをソース・データベースから切断してみよう
リフレッシュ可能クローンをソース・データベースから切断し、読み書き可能になったリフレッシュ可能クローンのデータを変更します。
-
リフレッシュ可能クローンをソース・データベースから切断します。
リフレッシュ可能クローンの詳細画面から「切断」をクリックします。
リフレッシュ可能クローンの切断の画面が表示されます。
ソース・データベース名を入力し、「リフレッシュ可能クローンの切断」をクリックします。
-
SQL*Plusからリフレッシュ可能クローンに接続します。
sqlplus [username]/[password]@[接続サービス名]
本チュートリアルを参考にリフレッシュ可能クローンを作成された方は、次のようなコマンドになります。
sqlplus admin/Welcome12345#@atp01RefClone_low
-
次のSQL文を実行し、リフレッシュ可能クローンのDEPARTMENT表にデータを追加します。
INSERT INTO department VALUES (7, 'TEST DEVELOPMENT', 17000, sysdate); INSERT INTO department VALUES (8, 'TEST ENGINEERING', 18000, sysdate); UPDATE department SET mgr_id = 1111, last_update = sysdate WHERE dept_id = 1; COMMIT;
-
次のSELECT文を実行し、リフレッシュ可能クローンのDEPARTMENT表のデータが正しく追加、変更されているかを確認します。
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY/MM/DD HH24:MI:SS'; SELECT * FROM department;
次のような結果になっていればOKです。
リフレッシュ可能クローンをソース・データベースから切断すると、読み書き可能(更新可能)になることが確認できました
-
SQL*Plusを終了します。
exit
7. リフレッシュ可能クローンをソース・データベースに再接続してみよう
リフレッシュ可能クローンをソース・データベースに再接続し、リフレッシュ操作を行なって、ソース・データベースの変更内容をリフレッシュ可能クローンに反映します。
-
SQL*Plusからソース・データベースに接続します。
sqlplus [username]/[password]@[接続サービス名]
本チュートリアルを参考にADBインスタンスを作成された方は、次のようなコマンドになります。
sqlplus admin/Welcome12345#@atp01_low
-
次のSQL文を実行し、ソース・データベースのDEPARTMENT表にデータを追加します。
INSERT INTO department VALUES (7, 'DEVELOPMENT', 7000, sysdate); INSERT INTO department VALUES (8, 'ENGINEERING', 8000, sysdate); COMMIT;
-
次のSELECT文を実行し、ソース・データベースのDEPARTMENT表にデータが正しく追加されているかを確認します。
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY/MM/DD HH24:MI:SS'; SELECT * FROM department;
次のような結果になっていればOKです。
-
SQL*Plusを終了します。
exit
-
リフレッシュ可能クローンをソース・データベースに再接続します。
リフレッシュ可能クローンの詳細画面から「リフレッシュ可能クローンの再接続」をクリックします。
リフレッシュ可能クローンの再接続の画面が表示されます。
ソース・データベース名を入力し、「リフレッシュ可能クローンの再接続」をクリックします。 -
SQL*Plusからリフレッシュ可能クローンに接続します。
sqlplus [username]/[password]@[接続サービス名]
本チュートリアルを参考にリフレッシュ可能クローンを作成された方は、次のようなコマンドになります。
sqlplus admin/Welcome12345#@atp01RefClone_low
-
次のSELECT文を実行し、リフレッシュ可能クローンのDEPARTMENT表の内容を確認します。
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY/MM/DD HH24:MI:SS'; SELECT * FROM department;
次のような結果になっていればOKです。
リフレッシュ可能クローンをソース・データベースに再接続すると、リフレッシュ可能クローンの内容はソース・データベースから切断した時点の状態になっていることが確認できました。
-
SQL*Plusを終了します。
exit
-
リフレッシュ可能クローンのリフレッシュを実行します。
リフレッシュ可能クローンの詳細画面から「クローンのリフレッシュ」をクリックします。
リフレッシュ・ポイントのタイムスタンプを入力する画面が表示されます。
現在時刻の1分前の時刻をUTCで入力し、「クローンのリフレッシュ」をクリックします。 -
SQL*Plusからリフレッシュ可能クローンに接続します。
sqlplus [username]/[password]@[接続サービス名]
本チュートリアルを参考にリフレッシュ可能クローンを作成された方は、次のようなコマンドになります。
sqlplus admin/Welcome12345#@atp01RefClone_low
※接続サービス名にご注意ください。ソース・データベースと名称が異なります。
-
次のSELECT文を実行し、ソース・データベースの変更内容がリフレッシュ可能クローンに反映されていることを確認します。
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY/MM/DD HH24:MI:SS'; SELECT * FROM department;
次のような結果になっていればOKです。
再接続後のリフレッシュ操作によって、ソース・データベースの変更内容がリフレッシュ可能クローンに反映されていることが確認できました。
-
SQL*Plusを終了します。
exit
以上で、この章は終了です。
次の章にお進みください。