本記事では今日から使えるシンプルなRMANバックアップ方法を解説します。
Oracleのバックアップ取得では、差分増分バックアップ、累積増分バックアップなど、お客様要件によって色々なオプションが用意されているのですが、できるだけシンプルにするためにフルバックアップのみを解説対象とします。
シンプルなバックアップやリストアでも実際に動かして試してもらうことで、万が一問題が発生した時にも対処することができます。

データ破損はもちろん、データを誤って削除してしまった場合などでも
バックアップは最後の砦になります。
本記事の前提
本記事は以下を前提としています。
- データベースバージョン:Oracle 19c (19.22) / シングル環境(RAC環境でも取得方法は変わりません。)
- アーカイブログモード:有効化(有効化していないとオンラインバックアップを取得できません。有効化する方法はこちらの記事を参照ください。『[Oracle] RMANバックアップを取得するためのアーカイブログモード設定』)
- リカバリカタログの保存先:制御ファイル(保存先としてデータベースを指定することもできます。本記事では制御ファイルに保存します。)
- バックアップタイプ:バックアップ・セット(イメージ・コピーも選択できます。デフォルトはバックアップ・セットです。)
- バックアップの保存先:ローカルディスク(/backup)(通常はNFSなどの外部ストレージに保存します。ローカルディスクの場合、対象マシンが破損した場合にバックアップも利用できなくなるためです。本記事では「/backup」ディレクトリに保存しますが、NFSディレクトリの場合もバックアップ方法は変わりませんので、ディレクトリを適宜読み替えてください。)
フルバックアップ取得
まずはRMANでフルバックアップを取得します。
RMANコマンドでデータベースに接続しますので、SQL*Plusでデータベースに接続する時と同様に、事前にSIDなどの環境変数を設定しておきます。
本記事では以下の環境変数を読み込んでおくものとします。
このあたりは適宜読み替えてください。
$ cat ru22.env
export NLS_LANG=American_America.AL32UTF8
export ORACLE_SID=ru22db
export ORACLE_HOME=/u01/app/oracle/product/19.0.0.0/db_home2
export PATH=$PATH:$ORACLE_HOME/bin
$ . ru22.env
RMANコマンドでの接続は以下のコマンドを実行します。
rman target / nocatalog
以下のようにデータベースに接続できます。
$ rman target / nocatalog
Recovery Manager: Release 19.0.0.0.0 - Production on Thu Sep 18 23:47:30 2025
Version 19.22.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
connected to target database: RU22DB (DBID=683921111)
using target database control file instead of recovery catalog
RMAN>
RMANコマンドを受け付けられるプロンプトになっていますので、この状態で以下を実行します。
フルバックアップと関連するアーカイブログを一緒に取得するようにしています。
本記事でのバックアップ保存先ディレクトリ「/backup」は適宜修正してください。
backup database format '/backup/FULL_%d_%T_%U' plus archivelog format '/backup/ARCH_%d_%T_%U';
フルバックアップの取得が開始されますので、完了するまで待ちます。
バックアップ時間はデータベースのサイズが大きければ大きいほど時間が掛かります。
エラーなくプロンプトが返ってきたら、フルバックアップは完了です。
RMAN> backup database format '/backup/FULL_%d_%T_%U' plus archivelog format '/backup/ARCH_%d_%T_%U';
Starting backup at 20-SEP-25
current log archived
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=13 device type=DISK
channel ORA_DISK_1: starting archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=31 RECID=9 STAMP=1212317279
input archived log thread=1 sequence=32 RECID=10 STAMP=1212317280
input archived log thread=1 sequence=33 RECID=11 STAMP=1212317281
:
channel ORA_DISK_1: finished piece 1 at 20-SEP-25
piece handle=/backup/ARCH_RU22DB_20250920_0h444vmf_17_1_1 tag=TAG20250920T104951 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 20-SEP-25
Starting Control File and SPFILE Autobackup at 20-SEP-25
piece handle=/u01/app/oracle/product/19.0.0.0/db_home2/dbs/c-683921111-20250920-00 comment=NONE
Finished Control File and SPFILE Autobackup at 20-SEP-25
RMAN>
最後に「quit」コマンドで終了します。
RMAN> quit
Recovery Manager complete.
$
バックアップ確認
取得されたバックアップはRMANコマンドで確認することができます。
RMANコマンドでデータベースに接続後、「list backup」コマンドを実行すると、現在取得されているバックアップの情報が表示されます。
list backup;
実行結果は以下のようになります。
RMAN> list backup;
List of Backup Sets
===================
BS Key Size Device Type Elapsed Time Completion Time
------- ---------- ----------- ------------ ---------------
11 5.86M DISK 00:00:00 20-SEP-25
BP Key: 11 Status: AVAILABLE Compressed: NO Tag: TAG20250920T104813
Piece Name: /backup/ARCH_RU22DB_20250920_0b444vjd_11_1_1
List of Archived Logs in backup set 11
Thrd Seq Low SCN Low Time Next SCN Next Time
---- ------- ---------- --------- ---------- ---------
1 31 1675810 18-SEP-25 1677795 20-SEP-25
1 32 1677795 20-SEP-25 1677802 20-SEP-25
1 33 1677802 20-SEP-25 1677809 20-SEP-25
1 34 1677809 20-SEP-25 1677830 20-SEP-25
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
12 Full 1.10G DISK 00:00:10 20-SEP-25
BP Key: 12 Status: AVAILABLE Compressed: NO Tag: TAG20250920T104814
Piece Name: /backup/FULL_RU22DB_20250920_0c444vjf_12_1_1
List of Datafiles in backup set 12
File LV Type Ckp SCN Ckp Time Abs Fuz SCN Sparse Name
---- -- ---- ---------- --------- ----------- ------ ----
1 Full 1677850 20-SEP-25 NO /u01/app/oracle/oradata/RU22DB/system01.dbf
3 Full 1677850 20-SEP-25 NO /u01/app/oracle/oradata/RU22DB/sysaux01.dbf
5 Full 1677850 20-SEP-25 NO /u01/app/oracle/oradata/RU22DB/undotbs01.dbf
7 Full 1677850 20-SEP-25 NO /u01/app/oracle/oradata/RU22DB/users01.dbf
:
バックアップファイル確認
取得されたバックアップファイルを確認してみます。
ファイルサイズに違いはあると思いますが、フルバックアップ(FULL_)とアーカイブログ(ARCH_)が取得されていることを確認できます。
$ cd /backup
$ ls -ltr
合計 3356312
-rw-r-----. 1 oracle oinstall 6144000 9月 20 10:48 ARCH_RU22DB_20250920_0b444vjd_11_1_1
-rw-r-----. 1 oracle oinstall 1180409856 9月 20 10:48 FULL_RU22DB_20250920_0c444vjf_12_1_1
-rw-r-----. 1 oracle oinstall 670760960 9月 20 10:48 FULL_RU22DB_20250920_0d444vk8_13_1_1
-rw-r-----. 1 oracle oinstall 490094592 9月 20 10:48 FULL_RU22DB_20250920_0e444vkn_14_1_1
-rw-r-----. 1 oracle oinstall 446504960 9月 20 10:49 FULL_RU22DB_20250920_0f444vl6_15_1_1
-rw-r-----. 1 oracle oinstall 642940928 9月 20 10:49 FULL_RU22DB_20250920_0g444vll_16_1_1
-rw-r-----. 1 oracle oinstall 5632 9月 20 10:49 ARCH_RU22DB_20250920_0h444vmf_17_1_1
アーカイブログバックアップ取得
次にアーカイブログのみをバックアップしてみます。
アーカイブログのバックアップがあることで、できるだけ直前の状態にまでリカバリすることができます。
例えば、フルバックアップを0時に取得して、アーカイブログバックアップを1時、2時、3時のように1時間単位で取得するようにしておけば、朝9時半くらいにデータベースが破損してしまった場合でも、フルバックアップ+9時に取得したアーカイブログバックアップによって、9時の状態にまでリカバリすることができます。
アーカイブログバックアップが取得されていない場合、フルバックアップを取得した0時の状態までしかリカバリすることができません。
RMANコマンドでデータベースに接続後、以下を実行します。
backup archivelog all format '/backup/ARCH_%d_%T_%U';
こちらもエラーなくプロンプトが返ってきたら、アーカイブログのバックアップは完了です。
RMAN> backup archivelog all format '/backup/ARCH_%d_%T_%U';
Starting backup at 20-SEP-25
current log archived
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=13 device type=DISK
channel ORA_DISK_1: starting archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=31 RECID=9 STAMP=1212317279
input archived log thread=1 sequence=32 RECID=10 STAMP=1212317280
input archived log thread=1 sequence=33 RECID=11 STAMP=1212317281
input archived log thread=1 sequence=34 RECID=12 STAMP=1212317293
input archived log thread=1 sequence=35 RECID=13 STAMP=1212317391
input archived log thread=1 sequence=36 RECID=14 STAMP=1212317615
channel ORA_DISK_1: starting piece 1 at 20-SEP-25
channel ORA_DISK_1: finished piece 1 at 20-SEP-25
piece handle=/backup/ARCH_RU22DB_20250920_0j444vtf_19_1_1 tag=TAG20250920T105335 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 20-SEP-25
Starting Control File and SPFILE Autobackup at 20-SEP-25
piece handle=/u01/app/oracle/product/19.0.0.0/db_home2/dbs/c-683921111-20250920-01 comment=NONE
Finished Control File and SPFILE Autobackup at 20-SEP-25
RMAN>
フルバックアップとアーカイブログ削除
本記事ではリカバリカタログの保存先を制御ファイルとしていますので、RMANで取得したバックアップのエントリは、制御ファイル内で管理されています。
ですので、例えばOS上のバックアップファイルだけを削除しても、制御ファイル内の管理データは削除されません。
管理データが削除されないだけで、データベースに何か影響を与えるわけではないのですが、バックアップからのリカバリ時には管理データを参照しますので、存在しないバックアップファイルを探しに行ってしまい、結果的に必要なファイルが見つからずにリカバリがエラーになってしまう場合があります。
基本的にRMANで取得したバックアップファイルは、RMANで削除するようにします。
以下のRMANコマンドで取得したバックアップをすべて削除することができます。
-- 対話形式で削除したい場合
delete backupset;
-- 確認など不要で削除したい場合
delete noprompt backupset;
実行結果は以下のようになります。
RMAN> delete backupset;
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=24 device type=DISK
List of Backup Pieces
BP Key BS Key Pc# Cp# Status Device Type Piece Name
------- ------- --- --- ----------- ----------- ----------
11 11 1 1 AVAILABLE DISK /backup/ARCH_RU22DB_20250920_0b444vjd_11_1_1
12 12 1 1 AVAILABLE DISK /backup/FULL_RU22DB_20250920_0c444vjf_12_1_1
13 13 1 1 AVAILABLE DISK /backup/FULL_RU22DB_20250920_0d444vk8_13_1_1
14 14 1 1 AVAILABLE DISK /backup/FULL_RU22DB_20250920_0e444vkn_14_1_1
15 15 1 1 AVAILABLE DISK /backup/FULL_RU22DB_20250920_0f444vl6_15_1_1
16 16 1 1 AVAILABLE DISK /backup/FULL_RU22DB_20250920_0g444vll_16_1_1
17 17 1 1 AVAILABLE DISK /backup/ARCH_RU22DB_20250920_0h444vmf_17_1_1
18 18 1 1 AVAILABLE DISK /u01/app/oracle/product/19.0.0.0/db_home2/dbs/c-683921111-20250920-00
19 19 1 1 AVAILABLE DISK /backup/ARCH_RU22DB_20250920_0j444vtf_19_1_1
20 20 1 1 AVAILABLE DISK /u01/app/oracle/product/19.0.0.0/db_home2/dbs/c-683921111-20250920-01
Do you really want to delete the above objects (enter YES or NO)? YES ★YESを入力します。キャンセルしたい場合はNOを入力します。
deleted backup piece
backup piece handle=/backup/ARCH_RU22DB_20250920_0b444vjd_11_1_1 RECID=11 STAMP=1212317293
deleted backup piece
backup piece handle=/backup/FULL_RU22DB_20250920_0c444vjf_12_1_1 RECID=12 STAMP=1212317295
deleted backup piece
backup piece handle=/backup/FULL_RU22DB_20250920_0d444vk8_13_1_1 RECID=13 STAMP=1212317320
deleted backup piece
backup piece handle=/backup/FULL_RU22DB_20250920_0e444vkn_14_1_1 RECID=14 STAMP=1212317335
deleted backup piece
backup piece handle=/backup/FULL_RU22DB_20250920_0f444vl6_15_1_1 RECID=15 STAMP=1212317350
deleted backup piece
backup piece handle=/backup/FULL_RU22DB_20250920_0g444vll_16_1_1 RECID=16 STAMP=1212317365
deleted backup piece
backup piece handle=/backup/ARCH_RU22DB_20250920_0h444vmf_17_1_1 RECID=17 STAMP=1212317391
deleted backup piece
backup piece handle=/u01/app/oracle/product/19.0.0.0/db_home2/dbs/c-683921111-20250920-00 RECID=18 STAMP=1212317392
deleted backup piece
backup piece handle=/backup/ARCH_RU22DB_20250920_0j444vtf_19_1_1 RECID=19 STAMP=1212317616
deleted backup piece
backup piece handle=/u01/app/oracle/product/19.0.0.0/db_home2/dbs/c-683921111-20250920-01 RECID=20 STAMP=1212317618
Deleted 10 objects
RMAN> list backup;
specification does not match any backup in the repository
RMAN>
バックアップ保存先ディレクトリ内のファイルも同時に削除されます。
まとめ
本記事ではシンプルなRMANバックアップ方法を解説しました。
RMANコマンドでは、色々な要件を満たせるように多様なオプションが存在していますが、まずはフルバックアップをしておくことができれば、万が一の際にも安心できるかと思います。
コメント