【Oracle】RMANで制御ファイルとSPFILEをバックアップ・復元する方法

【Oracle】RMANで制御ファイルとSPFILEをバックアップ・復元する方法 Oracle

Oracleデータベースを安全に運用する上で、制御ファイル(control file)SPFILE(Server Parameter File)のバックアップは非常に重要です。これらはデータベースの構成情報を保持しており、万が一の障害時に迅速な復旧を実現するためには、RMANでのバックアップと復元手順を正しく理解しておく必要があります。

本記事では、RMANを使って制御ファイルとSPFILEをバックアップ・リストアする方法を実例付きで解説します。

1. 制御ファイルのバックアップ

制御ファイルのバックアップは、RMANのBACKUP CURRENT CONTROLFILEコマンドで取得できます。

例:DISKにバックアップ

RMAN> BACKUP CURRENT CONTROLFILE FORMAT '/backup/ctrl_%d_%T.bkp';

このコマンドにより、現在の制御ファイルが指定パスにバックアップされます。

2. SPFILEのバックアップ

SPFILEも同様にRMANでバックアップ可能です。

RMAN> BACKUP SPFILE FORMAT '/backup/spfile_%d_%T.bkp';

SPFILEと制御ファイルは一緒にバックアップすることもできます。

例:データベース全体のバックアップ内に含める

RMAN> BACKUP DATABASE INCLUDE CURRENT CONTROLFILE SPFILE;

3. 制御ファイルのリストア手順

障害により制御ファイルが失われた場合、以下の手順で復旧します。

① インスタンスをNOMOUNTで起動

STARTUP NOMOUNT;

② RMANで制御ファイルをリストア

RMAN> RESTORE CONTROLFILE FROM '/backup/ctrl_ORCL_20250710.bkp';

③ マウントしてリカバリを実行

ALTER DATABASE MOUNT;
RECOVER DATABASE;
ALTER DATABASE OPEN;

制御ファイルを失っても、バックアップがあればこのように復元が可能です。

4. SPFILEのリストア手順

SPFILEが破損または削除された場合は、以下の手順で復元します。

① RMANでPFILEで起動(SPFILEがないため)

STARTUP NOMOUNT PFILE='$ORACLE_HOME/dbs/initORCL.ora';

最低限の設定(DB_NAMEなど)を記載したPFILEが必要です。

② SPFILEをRMANでリストア

RMAN> RESTORE SPFILE FROM '/backup/spfile_ORCL_20250710.bkp';

③ リスタートしてSPFILEを適用

SHUTDOWN IMMEDIATE;
STARTUP NOMOUNT;

これでSPFILEが適用され、通常どおりの起動が可能になります。

5. 自動バックアップの活用(おすすめ)

RMANでは、SPFILEと制御ファイルの自動バックアップを有効にしておくことを推奨します。

RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;

これにより、バックアップ実行時に制御ファイル/SPFILEも自動保存され、障害時に最新の状態へ復元しやすくなります。

まとめ

Oracleの制御ファイルとSPFILEは、障害発生時にデータベースの復旧可否を左右する重要な要素です。RMANで定期的にバックアップを取り、以下の点に留意しておくことで、堅牢な運用体制を構築できます。

  • 制御ファイル:BACKUP CURRENT CONTROLFILE
  • SPFILE:BACKUP SPFILE
  • 自動バックアップの設定:CONFIGURE CONTROLFILE AUTOBACKUP ON
  • 復元時はSTARTUP NOMOUNTからリストア

万が一に備えて、バックアップと復旧手順の検証も定期的に行いましょう。