Oracle RMAN コマンドによるバックアップ・リカバリのやり方

Oracle Master Gold

Oracle Databaseの運用において、バックアップとリカバリの自動化・効率化は不可欠です。本記事では、標準ツールである Oracle RMAN(Recovery Manager) の主要コマンドと、実務で役立つ具体的な実行例を初心者にも分かりやすく解説します。

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?

Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?

結論:RMANで優先的に覚えるべき「やることリスト」

RMANを使いこなすために、まず以下の5つのアクションとコマンドをマスターしましょう。

  1. 接続する: rman target /(ローカルのターゲットDBに接続)
  2. バックアップを取る: BACKUP DATABASE PLUS ARCHIVELOG;(DB全体とログを併せて取得)
  3. 状態を確認する: LIST BACKUP;(取得済みバックアップの履歴表示)
  4. 不要分を掃除する: DELETE OBSOLETE;(保持ポリシー外の古いファイルを削除)
  5. 修復を試みる: RESTORE DATABASE; / RECOVER DATABASE;(データの復元と同期)

RMANの背景と仕組み:なぜRMANを使うのか?

RMAN(Recovery Manager)とは、Oracle Databaseに標準搭載されているバックアップ専用のコマンドライン・インタフェースです。

  • OSコピーとの違い: RMANはデータ・ブロック内の破損を検知でき、未使用ブロックをスキップするため、OSコマンドでのコピーよりも高速かつ安全です。
  • 管理の自動化: バックアップの世代管理(保持ポリシー)や、アーカイブログの自動削除、増分バックアップなどが容易に行えます。

1. RMANの起動とデータベースへの接続

RMANを実行するには、まずターゲットとなるデータベース(接続先)を指定して起動します。

前提条件

  • OSユーザーが dba グループに所属していること。
  • 環境変数 ORACLE_SID および ORACLE_HOME が正しく設定されていること。

実行コマンド

  1. ローカル接続(OS認証)rman target /
  2. リモート接続(ネット・サービス名利用)rman target sys/password_example@tns_alias ※パスワードに「@」記号を含めると接続エラーの原因になるため避けてください。
  3. リカバリ・カタログを使用した接続 複数のDBを集中管理する場合に使用します。rman target / catalog rman_user/pass_example@catalog_db

2. バックアップ実行コマンド

もっとも頻繁に使用するバックアップ関連のコマンドです。

データベース全体のバックアップ(推奨例)

データベース本体と、リカバリに必要なアーカイブログをまとめて取得します。

-- アーカイブログを含めたフル・バックアップの実行
BACKUP DATABASE PLUS ARCHIVELOG;

特定のオブジェクトや増分バックアップ

用途に応じて対象を絞り込むことができます。 | 対象 | コマンド例 | | :— | :— | | 特定の表領域 | BACKUP TABLESPACE USERS; | | 制御ファイル | BACKUP CURRENT CONTROLFILE; | | 増分(Level 1) | BACKUP INCREMENTAL LEVEL 1 DATABASE; |

実行例の解説

BACKUP DATABASE; を実行すると、RMANは自動的にチャネル(プロセス)を割り当て、データファイルをバックアップ・セットとして書き出します。完了後、制御ファイルの「オートバックアップ」が走り、最新の構成情報も保存されます。


3. リストアおよびリカバリ(復旧)の手順

万が一の障害時に、データを戻すための手順です。

  1. RESTORE(リストア): バックアップ・ピースから物理ファイルを復元します。
  2. RECOVER(リカバリ): アーカイブログを適用し、最新の状態(または特定時点)までデータを進めます。

データベース全体の復旧

データベースが MOUNT 状態で実行します。

-- 1. ファイルの物理復元
RESTORE DATABASE;
-- 2. ログ適用による一貫性の確保
RECOVER DATABASE;
-- 3. データベースのオープン
ALTER DATABASE OPEN;

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?

Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?


4. バックアップの管理とメンテナンス

ディスク容量を圧迫しないよう、定期的なメンテナンスが必要です。

整合性チェックと削除

  • CROSSCHECK: 実際のファイルがディスク上に存在するか確認し、カタログ情報を更新します。
  • DELETE OBSOLETE: 設定した保持ポリシーに基づき、不要になった古いバックアップを削除します。
-- 物理ファイルとの同期
CROSSCHECK BACKUP;
-- 保持期間を過ぎた不要なバックアップの削除
DELETE OBSOLETE;

5. RMANの設定(CONFIGUREコマンド)

運用ルールをあらかじめ設定しておくことで、コマンドを簡略化できます。

設定項目コマンド例
保持ポリシー(2世代)CONFIGURE RETENTION POLICY TO REDUNDANCY 2;
バックアップ先の設定CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/backup/%U';
制御ファイルの自動保存CONFIGURE CONTROLFILE AUTOBACKUP ON;

6. トラブルシューティング:よくある ORAエラー

エラー番号原因確認・対処法
ORA-19809高速リカバリ領域(FRA)の不足REPORT OBSOLETE で確認し DELETE するか FRAサイズを拡張。
ORA-12154TNSサービス名が解決できないtnsnames.ora の記述と tnsping を確認。
ORA-19504ファイル作成失敗(権限/パス)出力先ディレクトリの書き込み権限とディスク空き容量を確認。

運用・セキュリティ上の注意

  • 影響とリスク: BACKUP 実行中はディスクI/O負荷が高まります。業務ピーク時間を避けてスケジュールしてください。
  • 戻し方の確認: バックアップを取るだけでなく、必ず「リストア試験」を定期的に行い、実際に復旧できるか検証してください。
  • 参照系の活用: 異常がないか確認するだけなら、変更を伴わない LISTREPORT コマンドを優先的に使用しましょう。

FAQ:よくある質問

Q: RMANでバックアップ中にデータベースを停止する必要はありますか?

A: いいえ。データベースが ARCHIVELOG モードであれば、運用中(OPEN状態)でもオンライン・バックアップが可能です。

Q: 誤って削除したバックアップをRMANで戻せますか?

A: RMANの DELETE コマンドで物理削除されたファイルは戻せません。OS側のゴミ箱機能やテープバックアップ等がない限り復旧不可なため、削除コマンドの実行は慎重に行なってください。

Q: RMANからSQLを実行できますか?

A: はい。12c以降では SQL 'SQL文' の形式を使わずに、直接 SELECT 文などを実行できるようになっています。


まとめ

  • RMANは Oracle Database専用の高機能バックアップツール
  • BACKUP DATABASE PLUS ARCHIVELOG; がもっとも標準的な取得コマンド。
  • 取得後は CROSSCHECKDELETE OBSOLETE で適切に管理する。
  • リカバリは RESTORE(戻す)と RECOVER(進める)の2ステップ。

本記事は Oracle Database 19c を対象に解説します(他バージョンは画面や既定値が異なる場合があります)。

[参考]
Oracle Database バックアップおよびリカバリ・ユーザーズ・ガイド 19c

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?

Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?

コメント

タイトルとURLをコピーしました