はじめに
これは、すでに作成済みのインスタンスのクラウド・バックアップを使用して、新しく作成したインスタンスにデータベースを複製する手順です。
バックアップが作成されたインスタンスをソース・データベースと呼びます。

 

前提
ソース・データベースに、PSU Update 12.2.0.1.181016が適用されていないこと。
上記のパッチが適用されたインスタンスを使用すると、インスタンスは作成されますが、データベースの複製が失敗します。
2018年12月時点では、7月のパッチが適用された状態でインスタンスが作成され、作成後10月のパッチを適用すると差異が出てしまうため複製が失敗すると思われます。

 

事前準備

インスタンスを作成する前に、ソース・データベースにてバックアップやウォレットファイルの取得を行います。
ただし、ソース・データベースが同じアイデンティティ・ドメイン内のデータベースである場合と、異なるアイデンティティ・ドメイン内のデータベースによって手順が異なります。
前者の場合はデータベースIDとウォレットファイルの取得は不要です。

アイデンティティ・ドメインとは、Oracle Cloud Serviceの管理単位で、1契約に対し1つののアイデンティティ・ドメインが作成されます。
アイデンティティ・ドメインは、ダッシュボードの右上に表示されています。

1.データベースが複製されたことがわかるように、テストデータを作成します。
テストデータ作成
$ sudo su – oracle
$ sqlplus / as sysdba
SQL> ALTER SESSION SET CONTAINER = PDB1;
SQL> CREATE TABLESPACE hogetbs DATAFILE SIZE 100M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED;
SQL> CREATE USER hoge IDENTIFIED BY “hoge” DEFAULT TABLESPACE hogetbs TEMPORARY TABLESPACE temp;
SQL> GRANT CREATE SESSION TO hoge;
SQL> GRANT CONNECT,RESOURCE TO hoge;
SQL> GRANT CREATE TABLE TO hoge;
SQL> ALTER USER hoge QUOTA UNLIMITED ON hogetbs;
SQL>
SQL> CONN hoge/hoge@pdb1;
SQL> CREATE TABLE DEPT (DEPTNO NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY,DNAME VARCHAR2(14),LOC VARCHAR2(13) );
SQL> INSERT INTO DEPT VALUES (10,’ACCOUNTING’,’NEW YORK’);
SQL> INSERT INTO DEPT VALUES (20,’RESEARCH’,’DALLAS’);
SQL> INSERT INTO DEPT VALUES (30,’SALES’,’CHICAGO’);
SQL> INSERT INTO DEPT VALUES (40,’OPERATIONS’,’BOSTON’);
SQL> COMMIT;
SQL> EXIT
2.ソース・データベースのバックアップを取得します。
「Backup Now」ボタンを押すと、ダイアログが表示されます。


バックアップファイルを永久に保持するかどうかを選択し、Backupボタンを押します。アイコンが変わったらバックアップ完了です。


3.次に、データベースIDを調べます。ソース・データベースにログインし、下記のselect文を実行します。

データベースID
SELECT dbid FROM v$database;

4.ウォレットファイルを取得します。ソース・データベースにログインし、下記のパスにあるディレクトリを圧縮します。圧縮したzipファイルをローカルにコピーします。

/u01/app/oracle/admin/【dbname】/tde_wallet
cd /u01/app/oracle/admin/【dbname】
zip -r tde_wallet.zip tde_wallet

 

インスタンスの作成とDB複製

準備ができたら、サービスの作成ボタンからインスタンスを作成します。

① サービス名
インスタンス名を入力します。

② ソフトウェア・リリース
バージョン18,12.2.0.1,12.1.0.2,11.2.0.4のバックアップを使用して、同じバージョンのデータベースを複製することができます。

③ ソフトウェア・エディション
ソース・データベースで使用されているオプションをサポートしているソフトウェア・エディションを選択します。

④ Database Type
Single Instanceを選択します。

 

ソース・データベースが同じアイデンティティ・ドメイン内のデータベースの場合

 


① 既存バックアップからのインスタンス作成
Yesを選択します。

② オンプレミス・バックアップですか?
チェックを外します。

③ ソースサービス名
コピー元のインスタンスを指定します。起動していないと表示されません。

④ バックアップタグ
どのバックアップから複製するかタグを選択します。

 

ソース・データベースが異なるアイデンティティ・ドメイン内のデータベースの場合

 

① バックアップの保存先
バックアップの保存先を選択します。
バックアップする場合、クラウド・ストレージのみか、クラウド・ストレージとローカルストレージ両方を選択できます。

② 既存バックアップからのインスタンス作成
Yesを選択します。

③ オンプレミス・バックアップですか?
チェックを入れます。

④ データベースID
事前に調べておいたデータベースIDを入力します。

⑤ 復号方法
編集ボタンを押します。

「ファイルを選択」ボタンを押し、事前に準備したウォレットファイルを圧縮したzipファイルを選択します。
入力ボタンを押します。

⑥ クラウド・ストレージ・コンテナ
既存のバックアップが格納されているOracle Cloud Infrastructure Object Storage Classicコンテナの名前を入力します。

⑦ username
クラウド・ストレージ・コンテナで指定されたコンテナへの読み取りアクセス権を持つOracle Cloudユーザのユーザ名を入力します。

⑧ パスワード
ユーザ名で指定されたユーザのパスワードを入力します。

「次へ」ボタンを押します。

「作成」ボタンを押してインスタンスを作成します。

データベースの確認

インスタンスにログインして、データベースが複製されていることを確認します。

テストデータの確認
SQL> ALTER SESSION SET CONTAINER = PDB1;
SQL> CONN hoge/hoge@pdb1;
SQL> SELECT * FROM dept;