Oracleデータベースでは、Recovery Manager(RMAN)を使って柔軟なバックアップ運用が可能です。中でも、特定の表領域のみを対象としたバックアップは、部分的なデータ保護や運用負荷の軽減に役立ちます。
本記事では、RMANで表領域単位のバックアップを取得する方法について、基本構文から注意点までを解説します。
表領域単位でバックアップを取るメリット
データベース全体ではなく、特定の表領域だけをバックアップすることで、以下のようなメリットがあります。
- 変更の多い表領域だけを定期的にバックアップし、時間とストレージを節約できる
- 開発環境などで必要な領域だけを保護対象にできる
- 障害時に特定の領域だけを効率的にリカバリ可能
基本的なRMAN構文
RMANに接続した後、BACKUP TABLESPACE
コマンドを使用してバックアップを取得します。
RMAN> BACKUP TABLESPACE users;
このコマンドにより、users
表領域に含まれるすべてのデータファイルがバックアップされます。
複数の表領域をまとめてバックアップする場合
複数の表領域を同時に指定することも可能です。
RMAN> BACKUP TABLESPACE users, example, sales;
このようにカンマ区切りで並べることで、対象領域を柔軟に指定できます。
バックアップの出力先を変更したい場合
デフォルトでは、RMANはDB_RECOVERY_FILE_DEST
または設定されたチャネルのディスク領域にバックアップファイルを出力します。出力先を明示したい場合はチャネルを指定します。
RMAN> RUN {
ALLOCATE CHANNEL c1 DEVICE TYPE DISK FORMAT '/backup/%U.bkp';
BACKUP TABLESPACE users;
RELEASE CHANNEL c1;
}
FORMAT
でファイル名パターンを指定できます。
圧縮してバックアップを取得する
ストレージ容量を節約したい場合は、圧縮オプションを付けることができます。
RMAN> BACKUP AS COMPRESSED BACKUPSET TABLESPACE users;
Enterprise Editionでは、高圧縮オプション(BZIP2など)も使用可能です。
バックアップの確認
バックアップが正しく取得されているかを確認するには、以下のコマンドを使用します。
RMAN> LIST BACKUP OF TABLESPACE users;
ファイルの場所やSCNなど、バックアップに関する詳細な情報を取得できます。
注意点
- 表領域バックアップを取得するには、対象表領域が読み取り可能状態である必要があります
- アーカイブログモードでの運用が推奨されます(整合性の確保)
- データファイルのバックアップ対象となるため、UNDOやTEMP表領域など一部除外されるケースがあります
まとめ
RMANを利用すれば、特定の表領域だけを効率的にバックアップすることができます。これは大規模データベースや部分的な保護が必要なシステムで特に有効です。バックアップポリシーに合わせて、表領域単位の運用もぜひ取り入れてみてください。