Oracleデータベースのバックアップは、データの保護と障害発生時の迅速なリカバリのために不可欠です。今回は、RMAN(Recovery Manager)を使用してデータベースをバックアップする方法を紹介します。特にノーアーカイブログモードとアーカイブログモードの違いに焦点を当て、どのファイルがバックアップされるかについても説明します。
ノーアーカイブログモードでのバックアップ
ノーアーカイブログモードは、データベースがアーカイブログを生成しないモードです。このモードでは、オンラインのバックアップが取れず、データベースを停止している状態でバックアップを行う必要があります。
バックアップ手順(ノーアーカイブログモード)
- RMANに接続
rman target /
- データベースを停止する
SHUTDOWN IMMEDIATE;
- データベースをマウント状態にする
STARTUP MOUNT;
- バックアップを実行
BACKUP DATABASE;
- データベースをオープン状態へ移行
ALTER DATABASE OPEN;
このモードでは、アーカイブログが生成されないため、バックアップ中に変更されたデータがリカバリできないリスクがあります。そのため、頻繁にデータベース全体のバックアップを取ることが重要です。
[oracle@v19single ~]$ rman target /
Recovery Manager: Release 19.0.0.0.0 - Production on 土 10月 19 20:46:02 2024
Version 19.21.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
ターゲット・データベース: V19 (DBID=2957249400)に接続されました
RMAN> select log_mode from v$database;
LOG_MODE
------------
NOARCHIVELOG ★ノーアーカイブログモード
RMAN> SHUTDOWN IMMEDIATE; ★停止
リカバリ・カタログのかわりにターゲット・データベース制御ファイルを使用しています
データベースがクローズしました
データベースがディスマウントされました。
Oracleインスタンスがシャットダウンしました
RMAN> STARTUP MOUNT; ★マウントで起動
ターゲット・データベースに接続しました(起動していません)。
Oracleインスタンスが起動しました
データベースがマウントされました。
システム・グローバル領域の合計は、 1543500120バイトです。
Fixed Size 8925528バイト
Variable Size 889192448バイト
Database Buffers 637534208バイト
Redo Buffers 7847936バイト
RMAN> BACKUP DATABASE; ★バックアップ
backupを24-10-19で開始しています
チャネル: ORA_DISK_1が割り当てられました
チャネルORA_DISK_1: SID=37 デバイス・タイプ=DISK
チャネルORA_DISK_1: フル・データファイル・バックアップ・セットを開始しています
チャネルORA_DISK_1: バックアップ・セットにデータファイルを指定しています
入力データファイル ファイル番号=00001 名前=/u01/app/oracle/oradata/V19/system01.dbf
入力データファイル ファイル番号=00004 名前=/u01/app/oracle/oradata/V19/undotbs01.dbf
入力データファイル ファイル番号=00003 名前=/u01/app/oracle/oradata/V19/sysaux01.dbf
入力データファイル ファイル番号=00007 名前=/u01/app/oracle/oradata/V19/users01.dbf
チャネルORA_DISK_1: ピース1 (24-10-19)を起動します
チャネルORA_DISK_1: ピース1 (24-10-19)が完了しました
ピース・ハンドル=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/01380afi_1_1_1 タグ=TAG20241019T204746 コメント=NONE
チャネルORA_DISK_1: バックアップ・セットが完了しました。経過時間: 00:00:15
backupを24-10-19で終了しました
Control File and SPFILE Autobackupを24-10-19で開始しています
ピース・ハンドル=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/c-2957249400-20241019-00 コメント=NONE
Control File and SPFILE Autobackupを24-10-19で終了しました
RMAN> ALTER DATABASE OPEN;
文が処理されました
バックアップ対象のファイル(ノーアーカイブログモード)
- データファイル:データベース内のすべての表やインデックス、その他のオブジェクトを含むファイル
- 制御ファイル:データベースの構造や状態を管理するファイル
- パラメータファイル:初期化パラメータが格納されているファイル(必要に応じて)
なお、ノーアーカイブログモードではアーカイブログファイルが存在しないため、これらはバックアップ対象に含まれません。
アーカイブログモードでのバックアップ
通常、Oracleデータベースはアーカイブログモードで運用されることが推奨されており、多くの環境でこのモードが使用されています。アーカイブログモードでは、データベースのトランザクションログ(REDOログ)がアーカイブされます。このため、データベースを停止せずに、オンライン状態のままバックアップを取ることができます。また、障害発生時にはバックアップとアーカイブログを使用して、より詳細なリカバリが可能です。
バックアップ手順(アーカイブログモード)
- RMANに接続
rman target /
- バックアップを実行
BACKUP DATABASE PLUS ARCHIVELOG;
このコマンドは、データベース全体とアーカイブログを同時にバックアップするため、バックアップ中に生成された変更も保存されます。
[oracle@v19single ~]$ rman target /
Recovery Manager: Release 19.0.0.0.0 - Production on 土 10月 19 20:53:49 2024
Version 19.21.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
ターゲット・データベース: V19 (DBID=2957249400)に接続されました
RMAN> select log_mode from v$database;
リカバリ・カタログのかわりにターゲット・データベース制御ファイルを使用しています
LOG_MODE
------------
ARCHIVELOG ★アーカイブログモード
RMAN> select status from v$instance;
STATUS
------------
OPEN ★オープンの状態
RMAN> BACKUP DATABASE PLUS ARCHIVELOG; ★バックアップ
backupを24-10-19で開始しています
現在のログがアーカイブされました。
チャネル: ORA_DISK_1が割り当てられました
チャネルORA_DISK_1: SID=65 デバイス・タイプ=DISK
チャネルORA_DISK_1: アーカイブ・ログ・バックアップ・セットを開始しています
チャネルORA_DISK_1: バックアップ・セットにアーカイブ・ログを指定しています
入力アーカイブ・ログ・スレッド=1 順序=12 レコードID=1 スタンプ=1182804871
チャネルORA_DISK_1: ピース1 (24-10-19)を起動します
チャネルORA_DISK_1: ピース1 (24-10-19)が完了しました
ピース・ハンドル=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/01380as7_1_1_1 タグ=TAG20241019T205431 コメント=NONE
チャネルORA_DISK_1: バックアップ・セットが完了しました。経過時間: 00:00:02
backupを24-10-19で終了しました
backupを24-10-19で開始しています
チャネルORA_DISK_1の使用
チャネルORA_DISK_1: フル・データファイル・バックアップ・セットを開始しています
チャネルORA_DISK_1: バックアップ・セットにデータファイルを指定しています
入力データファイル ファイル番号=00001 名前=/u01/app/oracle/oradata/V19/system01.dbf
入力データファイル ファイル番号=00004 名前=/u01/app/oracle/oradata/V19/undotbs01.dbf
入力データファイル ファイル番号=00003 名前=/u01/app/oracle/oradata/V19/sysaux01.dbf
入力データファイル ファイル番号=00007 名前=/u01/app/oracle/oradata/V19/users01.dbf
チャネルORA_DISK_1: ピース1 (24-10-19)を起動します
チャネルORA_DISK_1: ピース1 (24-10-19)が完了しました
ピース・ハンドル=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/02380as9_2_1_1 タグ=TAG20241019T205433 コメント=NONE
チャネルORA_DISK_1: バックアップ・セットが完了しました。経過時間: 00:00:15
backupを24-10-19で終了しました
backupを24-10-19で開始しています
現在のログがアーカイブされました。
チャネルORA_DISK_1の使用
チャネルORA_DISK_1: アーカイブ・ログ・バックアップ・セットを開始しています
チャネルORA_DISK_1: バックアップ・セットにアーカイブ・ログを指定しています
入力アーカイブ・ログ・スレッド=1 順序=13 レコードID=2 スタンプ=1182804888
チャネルORA_DISK_1: ピース1 (24-10-19)を起動します
チャネルORA_DISK_1: ピース1 (24-10-19)が完了しました
ピース・ハンドル=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/03380aso_3_1_1 タグ=TAG20241019T205448 コメント=NONE
チャネルORA_DISK_1: バックアップ・セットが完了しました。経過時間: 00:00:01
backupを24-10-19で終了しました
Control File and SPFILE Autobackupを24-10-19で開始しています
ピース・ハンドル=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/c-2957249400-20241019-00 コメント=NONE
Control File and SPFILE Autobackupを24-10-19で終了しました
バックアップ対象のファイル(アーカイブログモード)
- データファイル:すべてのデータベースオブジェクトが保存されているファイル
- 制御ファイル:データベースの状態を記録するファイル
- アーカイブログファイル:データベースのトランザクションを記録するログファイル
- パラメータファイル:データベースの起動に必要な初期化パラメータ
アーカイブログモードでは、バックアップ中にデータベースが変更されても、アーカイブログを使ってその変更をリカバリすることが可能です。
取得したバックアップの確認方法
RMANを使って取得したバックアップが正しく作成されたかどうかを確認することは非常に重要です。バックアップの内容を確認するためには、以下のコマンドを使用します。
バックアップリストの確認
- RMANを起動
rman target /
- バックアップリストの表示
LIST BACKUP;
このコマンドを実行すると、RMANによって取得されたバックアップの詳細情報が表示されます。バックアップセットやイメージコピー、バックアップ対象のデータファイル、アーカイブログファイルなどが一覧として確認できます。
[oracle@v19single ~]$ rman target /
Recovery Manager: Release 19.0.0.0.0 - Production on 土 10月 19 20:59:07 2024
Version 19.21.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
ターゲット・データベース: V19 (DBID=2957249400)に接続されました
RMAN> LIST BACKUP;
リカバリ・カタログのかわりにターゲット・データベース制御ファイルを使用しています
バックアップ・セットのリスト
===================
BSキー サイズ デバイス・タイプ経過時間終了時間
------- ---------- ----------- ------------ --------
1 22.99M DISK 00:00:01 24-10-19
BPキー: 1 ステータス: AVAILABLE 圧縮: NO タグ: TAG20241019T205431
ピース名: /u01/app/oracle/product/19.0.0/dbhome_1/dbs/01380as7_1_1_1
バックアップ・セット1のアーカイブ・ログのリスト
Thrd Seq Low SCN Low時間 Next SCN Next Time
---- ------- ---------- -------- ---------- ---------
1 12 2271248 23-11-28 2273384 24-10-19
BS Key Type LV Size Device Type Elapsed Time 終了時間
------- ---- -- ---------- ----------- ------------ --------
2 Full 2.25G DISK 00:00:07 24-10-19
BPキー: 2 ステータス: AVAILABLE 圧縮: NO タグ: TAG20241019T205433
ピース名: /u01/app/oracle/product/19.0.0/dbhome_1/dbs/02380as9_2_1_1
バックアップ・セット2のデータファイルのリスト
File LV Type Ckp SCN Ckp時間 Abs Fuz SCN Sparse Name
---- -- ---- ---------- -------- ----------- ------ ----
1 Full 2273404 24-10-19 NO /u01/app/oracle/oradata/V19/system01.dbf
3 Full 2273404 24-10-19 NO /u01/app/oracle/oradata/V19/sysaux01.dbf
4 Full 2273404 24-10-19 NO /u01/app/oracle/oradata/V19/undotbs01.dbf
7 Full 2273404 24-10-19 NO /u01/app/oracle/oradata/V19/users01.dbf
BSキー サイズ デバイス・タイプ経過時間終了時間
------- ---------- ----------- ------------ --------
3 9.50K DISK 00:00:00 24-10-19
BPキー: 3 ステータス: AVAILABLE 圧縮: NO タグ: TAG20241019T205448
ピース名: /u01/app/oracle/product/19.0.0/dbhome_1/dbs/03380aso_3_1_1
バックアップ・セット3のアーカイブ・ログのリスト
Thrd Seq Low SCN Low時間 Next SCN Next Time
---- ------- ---------- -------- ---------- ---------
1 13 2273384 24-10-19 2273416 24-10-19
BS Key Type LV Size Device Type Elapsed Time 終了時間
------- ---- -- ---------- ----------- ------------ --------
4 Full 10.20M DISK 00:00:00 24-10-19
BPキー: 4 ステータス: AVAILABLE 圧縮: NO タグ: TAG20241019T205449
ピース名: /u01/app/oracle/product/19.0.0/dbhome_1/dbs/c-2957249400-20241019-00
SPFILEも含まれます: 修正時間: 24-10-19
SPFILE db_unique_name: V19
含まれている制御ファイル: Ckp SCN: 2273432 Ckp時間: 24-10-19
まとめ
ノーアーカイブログモードとアーカイブログモードの違いは、バックアップを取る際にデータベースを停止する必要があるかどうか、そしてアーカイブログを使用するかどうかです。通常、Oracleデータベースはアーカイブログモードで運用されており、バックアップやリカバリの柔軟性が高くなるため、こちらのモードが推奨されます。ノーアーカイブログモードは、一部の限定された用途や状況で使用されます。
RMANを使ったバックアップの基本的な操作方法を理解して、データ保護をしっかりと行いましょう。
[参考]
バックアップおよびリカバリ・ユーザーズ・ガイド – 2 RMANの概要
コメント