Oracle Databaseのバックアップにおいて、最もシンプルで確実な手法がコールドバックアップ(オフライン・バックアップ)です。RMAN(Recovery Manager)を使用せず、OSのコピーコマンドだけで完結するため、初心者の方でも仕組みを理解しやすいのが特徴です。
この記事では、データベースを停止して一貫性を保ったままファイルを保護する、Oracle コールドバックアップの具体的な手順と注意点を解説します。
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?
結論:コールドバックアップの最短手順(3ステップ)
コールドバックアップの基本は「止める」「コピーする」「動かす」の3段階です。
- DB停止: SQL*Plusで
SHUTDOWN IMMEDIATEを実行(一貫性の確保)。 - OSコピー: データファイル、制御ファイル、ログファイル等を別ディレクトリへコピー。
- DB起動:
STARTUPで業務を再開。
背景と基礎:コールドバックアップの仕組み
コールドバックアップとは、データベースのインスタンスを完全に停止させ、データファイル間の整合性(SCN:システム変更番号)が一致した状態で取得するバックアップです。
- メリット: 手順が単純。リカバリ時に複雑なログ適用(RECOVER操作)が不要。
- デメリット: 作業中にデータベースを停止する必要がある(ダウンタイムの発生)。
手順・実装:ファイル確認からバックアップまで
1. バックアップ対象ファイルを確認する(起動中に行う)
停止後に「どのファイルをコピーすべきか」迷わないよう、稼働中にパスを確認しておきます。
-- 制御ファイルの確認
SELECT name FROM v$controlfile;
-- データファイルの確認
SELECT name FROM v$datafile;
-- REDOログファイルの確認
SELECT member FROM v$logfile;
-- パラメータファイル(spfile)の確認
SHOW PARAMETER spfile
SQL> SELECT name FROM v$controlfile;
NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/V19/control01.ctl
/u01/app/oracle/oradata/V19/control02.ctl
SQL> SELECT name FROM v$datafile;
NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/V19/system01.dbf
/u01/app/oracle/oradata/V19/sysaux01.dbf
/u01/app/oracle/oradata/V19/undotbs01.dbf
/u01/app/oracle/oradata/V19/users01.dbf
SQL> SELECT member FROM v$logfile;
MEMBER
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/V19/redo03.log
/u01/app/oracle/oradata/V19/redo02.log
/u01/app/oracle/oradata/V19/redo01.log
SQL> set lin 1000
SQL> SHOW PARAMETER spfile
NAME TYPE VALUE
------------------------------------ --------------------------------- ------------------------------
spfile string /u01/app/oracle/product/19.0.0
/dbhome_1/dbs/spfilev19.ora
注意: パスワードファイル(
orapw<SID>)もバックアップ対象ですが、V$ビューには表示されません。通常$ORACLE\_HOME/dbs(Linux) や%ORACLE\_HOME%\\database\(Windows) に配置されています。
2. データベースを正常停止する
未完了の処理をロールバックし、ファイルの状態を揃えるために IMMEDIATE オプションで停止します。
SQL> SHUTDOWN IMMEDIATE
-- 「データベースがクローズしました」「ディスマウントされました」を確認
3. OSコマンドでファイルをコピーする
OSのプロンプト(bashやコマンドプロンプト)に戻り、コピーを実行します。
Linux/Unix の場合
# -p オプションで権限やタイムスタンプを保持
cp -p /u01/app/oracle/oradata/V19/*.dbf /backup/v19/
cp -p /u01/app/oracle/oradata/V19/*.ctl /backup/v19/
cp -p /u01/app/oracle/oradata/V19/*.log /backup/v19/
cp -p $ORACLE_HOME/dbs/spfileV19.ora /backup/v19/
cp -p $ORACLE_HOME/dbs/orapwV19 /backup/v19/
Windows の場合
:: /Y は上書き確認の無効化
copy C:\oracle\oradata\V19\*.dbf D:\backup\v19\ /Y
copy C:\oracle\oradata\V19\*.ctl D:\backup\v19\ /Y
copy C:\oracle\oradata\V19\*.log D:\backup\v19\ /Y
copy C:\oracle\product\19.0.0\dbhome_1\dbs\spfileV19.ora D:\backup\v19\ /Y
copy C:\oracle\product\19.0.0\dbhome_1\database\PWDV19.ora D:\backup\v19\ /Y
4. データベースを再起動する
コピー完了後、SQL*Plusから起動します。
SQL> STARTUP
リストア手順:万が一の復旧方法
データが破損した際、バックアップ時点の状態に戻す手順です。
- DB停止:
SHUTDOWN IMMEDIATE;(起動不可ならABORTも検討) - ファイル書き戻し:
- Linux:
cp -p /backup/v19/* /u01/app/oracle/oradata/V19/ - Windows:
copy D:\backup\v19\* C:\oracle\oradata\V19\ /Y
- Linux:
- DB起動:
STARTUP
運用・セキュリティ上の注意点
- 一貫性の欠如:
SHUTDOWN ABORT(強制終了)直後にコピーしたファイルは、リストア時に起動できない場合があります。必ずIMMEDIATEで停止してください。 - ストレージ: バックアップ先は必ずDB稼働用とは別の物理ディスク、またはネットワークドライブを指定してください。
- 権限: Linuxの場合、コピー後のファイルの所有者が
oracleユーザーであり、権限(640等)が正しいことを確認してください。
FAQ:よくある質問
Q1. アーカイブログモードでもコールドバックアップは有効ですか?
はい、有効です。ただし、コールドバックアップは「その時点」の状態に戻すためのものです。最新の状態まで復旧したい場合は、RMANによるオンラインバックアップとアーカイブログの適用を組み合わせてください。
Q2. データベースが停止できない環境ではどうすればいいですか?
その場合はコールドバックアップは使用できません。ARCHIVELOGモードに設定した上で、RMANを使用した「ホットバックアップ(オンラインバックアップ)」を選択してください。
Q3. REDOログファイルも必ずコピーが必要ですか?
はい。コールドバックアップ(一貫性バックアップ)をそのまま起動させるためには、データファイルとセットになったREDOログファイルが必要です。
まとめ
- コールドバックアップは、データベース停止中に行う確実なバックアップ手法。
- RMANを使わずに OSコマンド(cpやcopy) だけで実行可能。
- 復旧時はファイルを書き戻して
STARTUPするだけのシンプルな運用。 - ダウンタイムが許容される開発・テスト環境や、小規模DBに最適。
本記事は Oracle Database 19c を対象に解説します(他バージョンは画面や既定値が異なる場合があります)。
[参考]
Oracle Database バックアップおよびリカバリ・ユーザーズ・ガイド 19c
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?



コメント