はじめに
Oracle Databaseでは、バックアップを取得する方法としてRMAN(Recovery Manager)が推奨されています。しかし、何らかの理由でRMANを使用できない環境では、手動でホットバックアップ(オンラインバックアップ)を取得する必要があります。本記事では、RMANを使用せずにホットバックアップを行う方法を解説します。
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?
ホットバックアップの前提条件
ホットバックアップを取得するには、データベースが アーカイブログモード(ARCHIVELOGモード) である必要があります。以下のSQLを実行して、アーカイブログモードが有効になっていることを確認してください。
SELECT log_mode FROM v$database;
結果:
ARCHIVELOG:ホットバックアップ可能NOARCHIVELOG:ホットバックアップ不可(アーカイブログモードに変更が必要)
アーカイブログモードに変更するには、以下の手順を実行してください。
アーカイブログモードへの変更手順
- データベースをマウントモードで起動
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
- アーカイブログモードに変更
ALTER DATABASE ARCHIVELOG;
- データベースをオープン
ALTER DATABASE OPEN;
- 設定の確認
SELECT log_mode FROM v$database;
アーカイブログモードが有効になっていることを確認したら、ホットバックアップの手順を進めてください。
ホットバックアップの手順
1. アーカイブログのスイッチ
データベースをホットバックアップモードに変更する前に、現在のREDOログをアーカイブするために以下のコマンドを実行します。
ALTER SYSTEM ARCHIVE LOG CURRENT;
2. データベースをホットバックアップモードに変更
バックアップ対象の表領域をバックアップモードに変更します。
ALTER TABLESPACE 表領域名 BEGIN BACKUP;
3. データファイルのコピー
表領域がバックアップモードの間に、OSコマンドを使用してデータファイルをバックアップします。
例(Linux環境):
cp /u01/app/oracle/oradata/ORCL/users01.dbf /backup/users01.dbf
すべてのデータファイルのパスは、以下のSQLで確認できます。
SELECT file_name FROM dba_data_files;
4. バックアップモードを終了
表領域をバックアップモードにすると、通常よりも多くのREDOログが生成されるため、バックアップが完了したら速やかにバックアップモードを終了することが重要です。 データファイルのコピーが完了したら、バックアップモードを終了します。
ALTER TABLESPACE 表領域名 END BACKUP;
5. 制御ファイルのバックアップ
制御ファイル(Control File)もバックアップする必要があります。以下のSQLを実行してバックアップを取得します。
ALTER DATABASE BACKUP CONTROLFILE TO '/backup/control01.ctl';
バイナリ形式ではなく、トレースファイル形式で取得する場合は以下のSQLを使用します。
ALTER DATABASE BACKUP CONTROLFILE TO TRACE;
6. アーカイブログのスイッチとバックアップ
アーカイブログのバックアップ前に、再度以下のコマンドを実行してアーカイブを確実に取得します。
ALTER SYSTEM ARCHIVE LOG CURRENT;
その後、アーカイブログをバックアップします。
cp /u01/app/oracle/archivelog/* /backup/archivelog/
すべてのアーカイブログのパスは、以下のSQLで確認できます。
SHOW PARAMETER log_archive_dest
7. 初期化パラメータファイルとパスワードファイルのバックアップ
データベースの初期化パラメータファイル(SPFILEまたはPFILE)およびパスワードファイルもバックアップしておくことが推奨されます。
SPFILEのバックアップ
CREATE PFILE='/backup/initORCL.ora' FROM SPFILE;
PFILEのバックアップ
cp $ORACLE_HOME/dbs/initORCL.ora /backup/initORCL.ora
パスワードファイルのバックアップ:
cp $ORACLE_HOME/dbs/orapwORCL /backup/orapwORCL
アーカイブログのバックアップ前に、再度以下のコマンドを実行してアーカイブを確実に取得します。
ALTER SYSTEM ARCHIVE LOG CURRENT;
その後、アーカイブログをバックアップします。
cp /u01/app/oracle/archivelog/* /backup/archivelog/
すべてのアーカイブログのパスは、以下のSQLで確認できます。
SHOW PARAMETER log_archive_dest
ホットバックアップのリストア・リカバリ方法
取得したホットバックアップを使用して、データベースを復旧する手順を簡単に説明します。
1. データファイルと制御ファイルのリストア
障害発生後、バックアップしたデータファイルと制御ファイルを元の場所にコピーします。
cp /backup/users01.dbf /u01/app/oracle/oradata/ORCL/users01.dbf
cp /backup/control01.ctl /u01/app/oracle/oradata/ORCL/control01.ctl
2. データベースのマウント
制御ファイルをリストアした後、データベースをマウントします。
STARTUP MOUNT
3. アーカイブログを適用(リカバリ)
アーカイブログを適用して、一貫性のある状態に戻します。
RECOVER DATABASE;
アーカイブログの適用が完了したら、データベースをオープンします。
ALTER DATABASE OPEN;
まとめ
RMANを使用せずにホットバックアップを取得する方法について解説しました。
- アーカイブログのスイッチ(
ALTER SYSTEM ARCHIVE LOG CURRENT;) - ホットバックアップモードの開始(
ALTER TABLESPACE BEGIN BACKUP;) - データファイルのコピー
- ホットバックアップモードの終了(
ALTER TABLESPACE END BACKUP;) - 制御ファイルのバックアップ
- アーカイブログのスイッチとバックアップ
この方法では、手作業が多くなるため、可能であれば RMANの使用を推奨 します。しかし、RMANが使用できない場合でも、手順を理解しておけば手動でホットバックアップを取得することができます。
[参考]
Oracle Database バックアップおよびリカバリ・ユーザーズ・ガイド 19c
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?




コメント