RMAN

RMANについて    


RMAN (Recovery Manager) は、Oracle DBを丸ごとバックアップを取得するツールで、マルチテナントのPDBの単位でバックアップ・リストアが出来ます。


データをいつでも戻せるよう、RMANを毎日実行するのが、Oracleの基本的な考え方になっています。

Data Guard環境だとプライマリのバックアップからスタンバイもリストア出来たり、非常に便利ですね。

RMANとData Pumpの相違

Data PumpとRMANは似ているんですが、機能は違うんです。毎日のバックアップをしっかりとる、という場合はRMANを使います。

RMANData Pump
DB全体のバックアップ
差分バックアップ×
データ時点の保証×
テーブル単位のバックアップ×

バックアップ方法

RMANのバックアップ先をまず考える必要があり、本来はメディアライブラリですが、ディスクに格納する場合もあります。

まあ、ディスクに格納する場合はDB サーバのディスクが全体的に壊れた時に戻せなくなるのが難点ですね。

メディアライブラリNetBackupやArcServeといったバックアップソフトのOracleオプションとの統合
ディスクディスク上へのバックアップ

Data Pump

エクスポートの方法

Data Pumpはテーブルのエクスポートに使います。以下はスキーマ単位でエクスポートする例です。

$ expdp user/password@pdb1
   schemas=user  
   directory=data_directory
   dumpfile=xxx.dmp
※ ORACLEと同じサーバで実行する

ディレクトリ作成


OSコマンドでディレクトリを作成した後で、sqlplusでも設定が必要です。昔のエクスポート(exp)ではこの作業は不要だったんで、注意が必要

$ mkdir /home/oracle/dump
$ sqlplus sys/xxx@pdb
SQL> create or replace directory
 data_directory as '/home/oracle/dump'

インポート方法

データがおかしくなった場合の復旧や
別のサーバにデータをコピーしたい場合にインポートします。

$ impdp user/password@pdb1
   schemas=user  
   directory=directory
   dumpfile=xxx.dmp

マルチテナント

最近はマルチテナント構成が推奨。
複数のデータベース(PDB)が、1つのコンテナDBに搭載されます。

PDBの作成方法

マルチテナント構成では、1個のDBをPDBと呼びます。PDBは簡単に作成できます。

SQL> create pluggable database PDB FILE_NAME_CONVERT = ('/pdbseed/', 
'/salespdb/'); ;


SQL> alter pluggable database PDB open;

PDBを搭載するDBをコンテナDBと呼びますが、これは従来型のOracle データベースと似てます

PDB

PDBは、独立したデータベースとして扱えます。

SQL> alter session set container=<PDB名> ;


上記のようにデータベースにログインした後は、通常のデータベースと同じように使えます。テーブルを作成してSQL実行してり、初期化パラメータも設定できます。