RMANを使用したOracleデータベースのバックアップ方法

Oracle Master Gold

Oracle Recovery Manager(RMAN)は、データベースのバックアップとリカバリを効率的に管理するためのツールです。本記事では、RMANを使用したさまざまなバックアップ方法について詳しく説明します。

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

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

1. RMANバックアップの概要

RMANはOracleデータベースの標準バックアップツールであり、以下のような利点があります。

  • ブロック単位のバックアップにより効率的にデータを保護。
  • 増分バックアップを活用し、バックアップ時間を短縮。
  • 自動管理機能を利用して、バックアップの整合性を保証。
  • 圧縮や暗号化により、ストレージの節約やセキュリティ向上が可能。
  • リカバリカタログを利用してバックアップ管理を強化。
  • フラッシュリカバリ領域(FRA)を活用した自動管理機能。

2. RMANでのデータベース全体のバックアップ

データベース全体をバックアップするには、以下のコマンドを使用します。

RUN {
  ALLOCATE CHANNEL ch1 DEVICE TYPE DISK;
  BACKUP DATABASE;
  RELEASE CHANNEL ch1;
}
  • ALLOCATE CHANNEL でバックアップチャネルを割り当てます。
  • BACKUP DATABASE でデータベース全体をバックアップします。
  • RELEASE CHANNEL でチャネルを解放します。
RMAN> RUN {
2> ALLOCATE CHANNEL ch1 DEVICE TYPE DISK;
3> BACKUP DATABASE;
4> RELEASE CHANNEL ch1;
5> }

リカバリ・カタログのかわりにターゲット・データベース制御ファイルを使用しています
チャネル: ch1が割り当てられました
チャネルch1: SID=66 デバイス・タイプ=DISK

backupを25-02-16で開始しています
チャネルch1: フル・データファイル・バックアップ・セットを開始しています
チャネルch1: バックアップ・セットにデータファイルを指定しています
入力データファイル ファイル番号=00001 名前=/u01/app/oracle/oradata/V19/system01.dbf
入力データファイル ファイル番号=00003 名前=/u01/app/oracle/oradata/V19/sysaux01.dbf
入力データファイル ファイル番号=00004 名前=/u01/app/oracle/oradata/V19/undotbs01.dbf
入力データファイル ファイル番号=00005 名前=/u01/app/oracle/oradata/V19/rctbs01.dbf
入力データファイル ファイル番号=00007 名前=/u01/app/oracle/oradata/V19/users01.dbf
チャネルch1: ピース1 (25-02-16)を起動します
チャネルch1: ピース1 (25-02-16)が完了しました
ピース・ハンドル=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/013huo8s_1_1_1 タグ=TAG20250216T151332 コメント=NONE
チャネルch1: バックアップ・セットが完了しました。経過時間: 00:00:25
backupを25-02-16で終了しました

Control File and SPFILE Autobackupを25-02-16で開始しています
ピース・ハンドル=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/c-2957249400-20250216-00 コメント=NONE
Control File and SPFILE Autobackupを25-02-16で終了しました

チャネル: ch1がリリースされました

3. データファイル単位のバックアップ

特定のデータファイルのみをバックアップする場合は、次のように記述します。

BACKUP DATAFILE '/u01/app/oracle/oradata/V19/users01.dbf';
  • BACKUP DATAFILE を使用して、特定のデータファイルをバックアップします。
RMAN> backup datafile '/u01/app/oracle/oradata/V19/users01.dbf';

backupを25-02-16で開始しています
チャネル: ORA_DISK_1が割り当てられました
チャネルORA_DISK_1: SID=66 デバイス・タイプ=DISK
チャネルORA_DISK_1: フル・データファイル・バックアップ・セットを開始しています
チャネルORA_DISK_1: バックアップ・セットにデータファイルを指定しています
入力データファイル ファイル番号=00007 名前=/u01/app/oracle/oradata/V19/users01.dbf
チャネルORA_DISK_1: ピース1 (25-02-16)を起動します
チャネルORA_DISK_1: ピース1 (25-02-16)が完了しました
ピース・ハンドル=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/033huocb_3_1_1 タグ=TAG20250216T151522 コメント=NONE
チャネルORA_DISK_1: バックアップ・セットが完了しました。経過時間: 00:00:01
backupを25-02-16で終了しました

Control File and SPFILE Autobackupを25-02-16で開始しています
ピース・ハンドル=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/c-2957249400-20250216-01 コメント=NONE
Control File and SPFILE Autobackupを25-02-16で終了しました

4. 表領域単位のバックアップ

特定の表領域のみをバックアップする場合は、以下のコマンドを使用します。

BACKUP TABLESPACE users;
  • BACKUP TABLESPACE を使用すると、指定した表領域全体をバックアップできます。
RMAN> BACKUP TABLESPACE users;

backupを25-02-16で開始しています
チャネルORA_DISK_1の使用
チャネルORA_DISK_1: フル・データファイル・バックアップ・セットを開始しています
チャネルORA_DISK_1: バックアップ・セットにデータファイルを指定しています
入力データファイル ファイル番号=00007 名前=/u01/app/oracle/oradata/V19/users01.dbf
チャネルORA_DISK_1: ピース1 (25-02-16)を起動します
チャネルORA_DISK_1: ピース1 (25-02-16)が完了しました
ピース・ハンドル=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/053huogk_5_1_1 タグ=TAG20250216T151740 コメント=NONE
チャネルORA_DISK_1: バックアップ・セットが完了しました。経過時間: 00:00:01
backupを25-02-16で終了しました

Control File and SPFILE Autobackupを25-02-16で開始しています
ピース・ハンドル=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/c-2957249400-20250216-02 コメント=NONE
Control File and SPFILE Autobackupを25-02-16で終了しました

5. アーカイブログのバックアップ

アーカイブログモードでは、REDOログのアーカイブを取得することで、完全リカバリを実現できます。

BACKUP ARCHIVELOG ALL;
RMAN> BACKUP ARCHIVELOG ALL;

backupを25-02-16で開始しています
現在のログがアーカイブされました。
チャネルORA_DISK_1の使用
チャネルORA_DISK_1: アーカイブ・ログ・バックアップ・セットを開始しています
チャネルORA_DISK_1: バックアップ・セットにアーカイブ・ログを指定しています
入力アーカイブ・ログ・スレッド=1 順序=12 レコードID=1 スタンプ=1193238572
入力アーカイブ・ログ・スレッド=1 順序=13 レコードID=2 スタンプ=1193239122
チャネルORA_DISK_1: ピース1 (25-02-16)を起動します
チャネルORA_DISK_1: ピース1 (25-02-16)が完了しました
ピース・ハンドル=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/073huoii_7_1_1 タグ=TAG20250216T151842 コメント=NONE
チャネルORA_DISK_1: バックアップ・セットが完了しました。経過時間: 00:00:03
backupを25-02-16で終了しました

Control File and SPFILE Autobackupを25-02-16で開始しています
ピース・ハンドル=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/c-2957249400-20250216-03 コメント=NONE
Control File and SPFILE Autobackupを25-02-16で終了しました

また、データベースとアーカイブログを一緒にバックアップする場合は、以下のコマンドを使用します。

BACKUP DATABASE PLUS ARCHIVELOG;
RMAN> BACKUP DATABASE PLUS ARCHIVELOG;


backupを25-02-16で開始しています
現在のログがアーカイブされました。
チャネルORA_DISK_1の使用
チャネルORA_DISK_1: アーカイブ・ログ・バックアップ・セットを開始しています
チャネルORA_DISK_1: バックアップ・セットにアーカイブ・ログを指定しています
入力アーカイブ・ログ・スレッド=1 順序=12 レコードID=1 スタンプ=1193238572
入力アーカイブ・ログ・スレッド=1 順序=13 レコードID=2 スタンプ=1193239122
入力アーカイブ・ログ・スレッド=1 順序=14 レコードID=3 スタンプ=1193239211
チャネルORA_DISK_1: ピース1 (25-02-16)を起動します
チャネルORA_DISK_1: ピース1 (25-02-16)が完了しました
ピース・ハンドル=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/093huolb_9_1_1 タグ=TAG20250216T152011 コメント=NONE
チャネルORA_DISK_1: バックアップ・セットが完了しました。経過時間: 00:00:01
backupを25-02-16で終了しました

backupを25-02-16で開始しています
チャネルORA_DISK_1の使用
チャネルORA_DISK_1: フル・データファイル・バックアップ・セットを開始しています
チャネルORA_DISK_1: バックアップ・セットにデータファイルを指定しています
入力データファイル ファイル番号=00001 名前=/u01/app/oracle/oradata/V19/system01.dbf
入力データファイル ファイル番号=00003 名前=/u01/app/oracle/oradata/V19/sysaux01.dbf
入力データファイル ファイル番号=00004 名前=/u01/app/oracle/oradata/V19/undotbs01.dbf
入力データファイル ファイル番号=00005 名前=/u01/app/oracle/oradata/V19/rctbs01.dbf
入力データファイル ファイル番号=00007 名前=/u01/app/oracle/oradata/V19/users01.dbf
チャネルORA_DISK_1: ピース1 (25-02-16)を起動します
チャネルORA_DISK_1: ピース1 (25-02-16)が完了しました
ピース・ハンドル=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/0a3huolc_10_1_1 タグ=TAG20250216T152012 コメント=NONE
チャネルORA_DISK_1: バックアップ・セットが完了しました。経過時間: 00:00:15
backupを25-02-16で終了しました

backupを25-02-16で開始しています
現在のログがアーカイブされました。
チャネルORA_DISK_1の使用
チャネルORA_DISK_1: アーカイブ・ログ・バックアップ・セットを開始しています
チャネルORA_DISK_1: バックアップ・セットにアーカイブ・ログを指定しています
入力アーカイブ・ログ・スレッド=1 順序=15 レコードID=4 スタンプ=1193239228
チャネルORA_DISK_1: ピース1 (25-02-16)を起動します
チャネルORA_DISK_1: ピース1 (25-02-16)が完了しました
ピース・ハンドル=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/0b3huols_11_1_1 タグ=TAG20250216T152028 コメント=NONE
チャネルORA_DISK_1: バックアップ・セットが完了しました。経過時間: 00:00:01
backupを25-02-16で終了しました

Control File and SPFILE Autobackupを25-02-16で開始しています
ピース・ハンドル=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/c-2957249400-20250216-04 コメント=NONE
Control File and SPFILE Autobackupを25-02-16で終了しました

6. 増分バックアップ

増分バックアップを使用すると、変更があったブロックのみをバックアップし、時間とストレージを節約できます。

BACKUP INCREMENTAL LEVEL 1 DATABASE;
  • LEVEL 0 はフルバックアップ。
  • LEVEL 1 は差分バックアップ。

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

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

7. バックアップセットとしてのバックアップ

バックアップセットは、Oracleのデフォルトのバックアップ形式で、データを圧縮しながら格納します。

BACKUP AS BACKUPSET DATABASE;

バックアップセットを使用すると、

  • RMANが不要なブロックを自動的に除外し、バックアップサイズを削減。
  • マルチセクションバックアップが可能。

8. イメージコピーによるバックアップ

イメージコピーは、データファイルをそのままコピーするバックアップ方法です。

BACKUP AS COPY DATABASE;
  • AS COPY を指定すると、データファイルの物理的なコピーが作成されます。
  • データベースのクローン作成時などに有用です。
RMAN> BACKUP AS COPY DATABASE;

backupを25-02-16で開始しています
チャネルORA_DISK_1の使用
チャネルORA_DISK_1: データファイルのコピーを開始しています
入力データファイル ファイル番号=00001 名前=/u01/app/oracle/oradata/V19/system01.dbf
出力ファイル名=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/data_D-V19_I-2957249400_TS-SYSTEM_FNO-1_0h3huorp タグ=TAG20250216T152337 レコードID=1 スタンプ=1193239424
チャネルORA_DISK_1: データファイルのコピーが完了しました。経過時間: 00:00:07
チャネルORA_DISK_1: データファイルのコピーを開始しています
入力データファイル ファイル番号=00003 名前=/u01/app/oracle/oradata/V19/sysaux01.dbf
出力ファイル名=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/data_D-V19_I-2957249400_TS-SYSAUX_FNO-3_0i3huos1 タグ=TAG20250216T152337 レコードID=2 スタンプ=1193239428
チャネルORA_DISK_1: データファイルのコピーが完了しました。経過時間: 00:00:07
チャネルORA_DISK_1: データファイルのコピーを開始しています
入力データファイル ファイル番号=00004 名前=/u01/app/oracle/oradata/V19/undotbs01.dbf
出力ファイル名=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/data_D-V19_I-2957249400_TS-UNDOTBS1_FNO-4_0j3huos8 タグ=TAG20250216T152337 レコードID=3 スタンプ=1193239435
チャネルORA_DISK_1: データファイルのコピーが完了しました。経過時間: 00:00:07
チャネルORA_DISK_1: データファイルのコピーを開始しています
入力データファイル ファイル番号=00005 名前=/u01/app/oracle/oradata/V19/rctbs01.dbf
出力ファイル名=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/data_D-V19_I-2957249400_TS-RCTBS_FNO-5_0k3huosf タグ=TAG20250216T152337 レコードID=4 スタンプ=1193239441
チャネルORA_DISK_1: データファイルのコピーが完了しました。経過時間: 00:00:03
チャネルORA_DISK_1: データファイルのコピーを開始しています
入力データファイル ファイル番号=00007 名前=/u01/app/oracle/oradata/V19/users01.dbf
出力ファイル名=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/data_D-V19_I-2957249400_TS-USERS_FNO-7_0l3huosi タグ=TAG20250216T152337 レコードID=5 スタンプ=1193239442
チャネルORA_DISK_1: データファイルのコピーが完了しました。経過時間: 00:00:01
backupを25-02-16で終了しました

Control File and SPFILE Autobackupを25-02-16で開始しています
ピース・ハンドル=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/c-2957249400-20250216-06 コメント=NONE
Control File and SPFILE Autobackupを25-02-16で終了しました

9. バックアップファイルの確認

取得したバックアップの一覧を確認するには、以下のコマンドを使用します。

LIST BACKUP;
RMAN> list backup;


バックアップ・セットのリスト
===================


BSキー サイズ デバイス・タイプ経過時間終了時間
------- ---------- ----------- ------------ --------
13 189.08M DISK 00:00:01 25-02-16
BPキー: 13 ステータス: AVAILABLE 圧縮: NO タグ: TAG20250216T152204
ピース名: /u01/app/oracle/product/19.0.0/dbhome_1/dbs/0d3huoos_13_1_1

バックアップ・セット13のアーカイブ・ログのリスト
Thrd Seq Low SCN Low時間 Next SCN Next Time
---- ------- ---------- -------- ---------- ---------
1 12 2271248 23-11-28 2319046 25-02-16
1 13 2319046 25-02-16 2325175 25-02-16
1 14 2325175 25-02-16 2326536 25-02-16
1 15 2326536 25-02-16 2326565 25-02-16
1 16 2326565 25-02-16 2326756 25-02-16

BS Key Type LV Size Device Type Elapsed Time 終了時間
------- ---- -- ---------- ----------- ------------ --------
14 Full 2.31G DISK 00:00:11 25-02-16
BPキー: 14 ステータス: AVAILABLE 圧縮: NO タグ: TAG20250216T152205
ピース名: /u01/app/oracle/product/19.0.0/dbhome_1/dbs/0e3huoou_14_1_1
バックアップ・セット14のデータファイルのリスト
File LV Type Ckp SCN Ckp時間 Abs Fuz SCN Sparse Name
---- -- ---- ---------- -------- ----------- ------ ----
1 Full 2326770 25-02-16 NO /u01/app/oracle/oradata/V19/system01.dbf
3 Full 2326770 25-02-16 NO /u01/app/oracle/oradata/V19/sysaux01.dbf
4 Full 2326770 25-02-16 NO /u01/app/oracle/oradata/V19/undotbs01.dbf
5 Full 2326770 25-02-16 NO /u01/app/oracle/oradata/V19/rctbs01.dbf
7 Full 2326770 25-02-16 NO /u01/app/oracle/oradata/V19/users01.dbf

BSキー サイズ デバイス・タイプ経過時間終了時間
------- ---------- ----------- ------------ --------
15 5.00K DISK 00:00:00 25-02-16
BPキー: 15 ステータス: AVAILABLE 圧縮: NO タグ: TAG20250216T152221
ピース名: /u01/app/oracle/product/19.0.0/dbhome_1/dbs/0f3huopd_15_1_1

バックアップ・セット15のアーカイブ・ログのリスト
Thrd Seq Low SCN Low時間 Next SCN Next Time
---- ------- ---------- -------- ---------- ---------
1 17 2326756 25-02-16 2326781 25-02-16

BS Key Type LV Size Device Type Elapsed Time 終了時間
------- ---- -- ---------- ----------- ------------ --------
16 Full 10.20M DISK 00:00:01 25-02-16
BPキー: 16 ステータス: AVAILABLE 圧縮: NO タグ: TAG20250216T152222
ピース名: /u01/app/oracle/product/19.0.0/dbhome_1/dbs/c-2957249400-20250216-05
SPFILEも含まれます: 修正時間: 25-02-16
SPFILE db_unique_name: V19
含まれている制御ファイル: Ckp SCN: 2326797 Ckp時間: 25-02-16

また、データファイルのコピーを確認するには、

LIST COPY;
RMAN> LIST COPY;

指定がリポジトリ内のどの制御ファイル・コピーとも一致しません
指定がリポジトリ内のどのアーカイブ・ログとも一致しません
データファイル・コピーのリスト
=======================

Key File S 終了時間 Ckp SCN Ckp時間 Sparse
------- ---- - -------- ---------- -------- ------
6 1 A 25-02-16 2327048 25-02-16 NO
名前: /u01/app/oracle/product/19.0.0/dbhome_1/dbs/data_D-V19_I-2957249400_TS-SYSTEM_FNO-1_0n3huov5
タグ: TAG20250216T152525

7 3 A 25-02-16 2327056 25-02-16 NO
名前: /u01/app/oracle/product/19.0.0/dbhome_1/dbs/data_D-V19_I-2957249400_TS-SYSAUX_FNO-3_0o3huovc
タグ: TAG20250216T152525

8 4 A 25-02-16 2327060 25-02-16 NO
名前: /u01/app/oracle/product/19.0.0/dbhome_1/dbs/data_D-V19_I-2957249400_TS-UNDOTBS1_FNO-4_0p3huovj
タグ: TAG20250216T152525

9 5 A 25-02-16 2327065 25-02-16 NO
名前: /u01/app/oracle/product/19.0.0/dbhome_1/dbs/data_D-V19_I-2957249400_TS-RCTBS_FNO-5_0q3huovr
タグ: TAG20250216T152525

10 7 A 25-02-16 2327068 25-02-16 NO
名前: /u01/app/oracle/product/19.0.0/dbhome_1/dbs/data_D-V19_I-2957249400_TS-USERS_FNO-7_0r3huovu
タグ: TAG20250216T152525

10. バックアップの削除

不要になったバックアップを削除するには、以下のコマンドを使用します。

DELETE BACKUP;

11. まとめ

本記事では、RMANを使用した以下のバックアップ方法について解説しました。

  1. データベース全体のバックアップ
  2. 特定のデータファイルのバックアップ
  3. 表領域単位のバックアップ
  4. アーカイブログのバックアップ
  5. 増分バックアップ
  6. バックアップセットの利用
  7. イメージコピーによるバックアップ
  8. バックアップの確認と削除

これらを適切に組み合わせることで、効率的かつ安全なバックアップ運用を実現できます。

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

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

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

コメント

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