連載
» 2013年12月16日 20時14分 UPDATE

ユーザー目線でチェック! Oracle Database 12cの知りたいところ(3):マルチテナントアーキテクチャのバックアップ設計、考え方とNGパターン (1/3)

データベースのバックアップは、障害発生時に復旧できるよう、正しく取得する必要があります。また、環境に則したバックアップ計画やリカバリ計画を検討しておく必要があります。12cで盛り込まれた機能を理解して、安全かつ効率のよいバックアッププロセスの設計を考えましょう。

[青野友香,株式会社コーソル]

前回の記事へ

 データベースの運用において、データベースのバックアップは最も重要なタスクといえます。しかし、システムに最適なバックアップ設計に十分な時間を割けない場合もあるかと思います。

 12cマルチテナントアーキテクチャを使用したデータベースにおいて、最適なバックアップ設計を行うための検討材料になればと考え、第3回目となる今回は、12cで追加されたRecovery Manager(RMAN)コマンドやバックアップの設計パターン、バックアップ時に注意すべきことについて説明します。併せて、障害時の影響範囲についてもご紹介します。

マルチテナントアーキテクチャに対応したバックアップコマンド

 Oracle Database 12cでは、マルチテナントアーキテクチャ向けのRMANコマンドが追加されました。追加されたRMANコマンドを使用することで、「CDB内の全コンテナ」「特定のコンテナのみ」「複数のコンテナを指定」など、バックアップの取得対象を柔軟に選択できます(図1)。

mhdb_12c03fig01.gif 図1 RMANコマンドで選択できるバックアップ取得対象

 以下に、マルチテナントアーキテクチャのバックアップ範囲に合わせ、実行するコマンドを紹介します。ここで紹介するコマンドは、RMAN起動後、CDB$ROOTに接続し、実行することを想定しています。なお、各PDBに接続してバックアップを取得することもできますが、この場合バックアップの対象は接続したPDBに限定されます。

バックアップ範囲:CDB内の全コンテナ

 CDB内にある全コンテナのバックアップを取得できます。

RMAN> BACKUP DATABASE;

 なお、このコマンドを非CDB構成のデータベースで実行した場合は、11g R2以前と同様にデータベースの全体バックアップを取得します。

バックアップ範囲:指定したコンテナのみ

 12cでは、指定したコンテナのみをバックアップする「BACKUP PLUGGABLE DATABASE」コマンドが追加されました。コマンドにコンテナ名を列挙して指定することで、指定したコンテナのバックアップを取得できます。

RMAN> BACKUP PLUGGABLE DATABASE "CDB$ROOT","PDB$SEED",<PDB名>;

 ただ、検証した限りでは、PLUGGABLE句を付けないBACKUP DATABASEコマンドでもコンテナ単位でバックアップを取得できるようです。

 また、CDB$ROOTのみをバックアップする場合は、PLUGGABLE句を追加せず、BACKUP DATABASEの後にROOTを指定することでもバックアップを取得できます。

RMAN> BACKUP DATABASE ROOT;

バックアップ範囲:特定のPDBの表領域のみ

 11g R2以前から存在した表領域単位でバックアップするコマンドであるBACKUP TABLESPACEが、マルチテナントアーキテクチャ向けに拡張されました。バックアップ表領域名の前に「:」を付けることで、指定したPDBの表領域単位でバックアップを取得できます。

RMAN> BACKUP TABLESPACE <PDB名>:<表領域名>;

取得したバックアップの確認

 取得したバックアップは、11g R2以前と同様にLIST BACKUPコマンドで確認できます。PDB$SEED、PDBは、出力結果に Container ID、PDB Nameが記載されているため、どのコンテナのバックアップであるかを判断できます。

mhdb_12c03_command01.jpg
       1|2|3 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。