>> 連載トップページに戻る

 

もしもみなみんがDBをクラウドで動かしてみたら

第8回 : 環境を複製してみよう


著者紹介


南野 英梨子 (みなみの えりこ)

日本オラクルに新卒で入社。以来、Oracle Databaseの製品担当として、主にOracle Maximum Availability Architecture(MAA)に関わる機能や製品を担当。特に好きなのは、Oracle Active Data Guard や Oracle GoldenGate。Oracle Database の魅力やベストプラクティス、そしてそれを簡単に使えるOracle Cloudの魅力をお客様に伝えようと、日々邁進中。


第8回 : 環境を複製してみよう

(本内容は、2018/07時点のOracle Cloud Infrastructure Classic - Database Cloud Serviceの情報になります)


今回は、Database Cloud Service(DBCS)を利用している中で、テストや開発用途に簡単に複製環境を作りたいという場合に、どのような方法がとれるのかをご紹介いたします。


■1. Oracle Database Cloud Serviceの複製方法について

DBCSを利用している中で、アプリ改修やパッチ適用・構成変更などのメンテナンスの事前テストを行いたい、開発のために同じ環境をいくつも持ちたい、処理のオフロードのために同一データを持つ環境を作りたいなど、様々な場面で複製環境を作成したいということがあると思います。

DBCSの複製方法に関しては、下記の方法が挙げられます。

  • 1. バックアップを利用したDBCSインスタンス作成
  • 2. スナップショットからのクローン・データベースの作成
  • 3. MultitenantのPDBクローン
  • 4. Data Pumpのエクスポート・インポート
  • 5. Data Guardのスタンバイ複製
  • 6. GoldenGateによる複製

img-1

取得したバックアップやスナップショットから環境を作成する方法やクローニング機能、Data GuardやGoldenGateなどのレプリケーション機能のような複製後にもソース(複製元)への変更を反映(同期)する方法など様々なパターンがあります。 これらの方法は、Oracle Databaseの機能や周辺製品を利用したおなじみの方法がほとんどで、複製単位(データ、PDB、DB全体など)や複製後のデータ同期の可否など、要件や用途によって様々なケースで使い分けができます。

今回は、その中でも”DBCSの環境複製を容易にできる方法”という点に絞り、DBCSならではの機能の『バックアップを利用したDBCSインスタンス作成』と『スナップショットからのクローン・データベースの作成』について触れていきます。


■2. DBCSの複製方法1 : バックアップを利用したDBCSインスタンス作成

前回、” Object Storageにバックアップを取得していると、取得しているバックアップを様々な目的で活用することが可能です”と書きましたが、その一つがこの『バックアップを利用したDBCSインスタンス作成』になります。

この方法を利用する前提情報条件は、下記になります

  • Oracle Database Backup Cloud Serviceで取得されたObject Storage上のバックアップを利用
  • ソースと同じソフトウェア・リリースを利用
  • ソースで使用しているオプションが含まれるエディションを利用
  • ソースがDBCS上で利用可能な最新パッチ(PSU or RU)を適用されたバージョン
  • (12.1以上の場合)ソースDBがマルチテナント(CDB)構成
  • ソースのデータ・ファイル保管方法がファイル・システムまたはASM

参考)
クラウド・バックアップを使用したデータベース・デプロイメントの作成:要件と結果

作業に入るまえに、事前に用意しておく情報は下記になります。

  • ソースのDBのDBID
  • バックアップの復号化に必要な情報(TDEを利用するバックアップの場合はウォレット・ファイル、パスワード暗号化を使用するバックアップの場合はパスワード)
  • Object Storageコンテナの情報(URL・Object Storageのユーザー名とパスワード)

なお、DBIDはソースのDBにアクセスし、SQLでv$databaseを確認するか、RMANの接続情報で確認可能です。

SQL> SELECT dbid from v$database
$ rman target /

connected to target database: CDB (DBID=123456789)

Object Storage上のバックアップを利用した環境複製方法には、2つの方法があります。

  • 1. DBCSインスタンス作成時にバックアップを利用する
  • 2. DBCSインスタンス作成後に置換する

1の方法の場合は、初期に作成できるボリュームのサイズ上限が2TBになるため、データベース・サイズが2TB (ローカル・バックアップありの場合は1.2TB)未満である必要があります。それ以上の場合は、一度DBCSインスタンスを空の状態で作成してボリュームを追加(ストレージのスケール・アップ)して、必要なサイズまで拡張してから置換することで対応が可能です。

今回は、1の方法をご紹介いたします。2の方法については下記をご参照ください。
参考)
Oracle Database Cloud Serviceコンソールを使用したデータベースの置換

『Service Detail』のページで、『Initialize Data From Backup』セクションの中の『既存のバックアップからのインスタンスの作成』をYesにします。ソースが同じIdentity DomainにあるDBCSインスタンスの場合、『オンプレミス・バックアップですか』のチェックを外します。あとは、ソースのサービス名を選択するとそのサービスに紐づけられたバックアップを利用して、新規にDBCSインスタンスが作成されます。

img-2

この方法はOracle Database Backup Cloud Serviceで取得されたバックアップを元に作成するため、ソースがDBCSでなくオンプレミスやIaaS(Compute)、他社クラウド上のDBなど、RMANバックアップであれば利用可能です。その場合には、『オンプレミス・バックアップですか』にチェックを入れたままにしてください。また、ソースがある環境とIdentity Domainが異なる場合にも、こちらのチェックが必要です。

img-3

参考)
カスタマイズされたデータベースの作成


■3. DBCSの複製方法2 : スナップショットからのクローン・データベースの作成

この方法を利用する前提情報条件は、下記になります

  • 複製作成はソースと同一のIdentity Domain内のみ
  • ストレージのスナップショット機能(Linked-Clone)を利用

ストレージのスナップショット機能を利用することからも、バックアップを利用したDBCSインスタンス作成と異なり、ソースの情報をほとんど引き継ぎます。これにより、データファイルはリンクしているスナップショット自体を変更することなく、複製環境に対して変更がかけられます。そのため、同じスナップショットを使って、異なる用途・作業内容に対する複数のクローンを同時に利用可能になります。

まずはソースのDBCSインスタンスの概要ページから、元となるスナップショットを作成します。

  • 1. 左側の『管理』メニューをクリック
  • 2. 『スナップショット』タブをクリック
  • 3. 『Create Storage Snapshot』をクリック

img-4

  • 4. 任意のスナップショット名を入力

img-5

  • 5. 『Create』をクリック。スナップショット作成中はサービスがメンテナンスモードになります。

img-6

続きまして、作成済みのスナップショットからクローン・データベースを作成します。

  • 1. スナップショットを選択し、『Create Database Clone』をクリック

img-7

  • 2. インスタンスページにて必要な情報を入力

img-8

グレーアウトの項目についてはソースの環境の情報を受け継ぐため、サービス名やSSH公開鍵、管理者パスワードなどを入力し、必要に応じてシェイプ、バックアップの宛先等をソースの情報から変更します。

参照)
スナップショットからのクローン・データベースの作成


■4. まとめ

今回は、DBCSの環境複製方法の中の2つの機能を紹介しました。

環境複製の方法として紹介した機能でしたが、バックアップを利用したDBCSインスタンスに関しては複製だけでなく、障害発生時の復旧や移行といったケースにも有効な方法です。一方でスナップショットからのクローン・データベースの作成に関しては、Linked-Clone技術を利用していることからも、元となるスナップショットが正常な状態でない場合は利用できないため復旧・移行用途としては不向きになりますのでご注意ください。

他にも、最初にご紹介したOracle Databaseの機能としてマルチテナント・Data Guard・GoldenGateなどの従来通りの方法ももちろん使えるため、用途・要件・作業者に合わせて使い分けてもらえればと思います。

次回も、引き続きバックアップをObject Storageに取得したバックアップの活用方法をご紹介したいと思います。