Oracle コールドバックアップとは?OSコマンドでの取得手順【Windows/Linux】

RMAN/バックアップ・リカバリ

Oracle Databaseのバックアップにおいて、最もシンプルで確実な手法がコールドバックアップ(オフライン・バックアップ)です。RMAN(Recovery Manager)を使用せず、OSのコピーコマンドだけで完結するため、初心者の方でも仕組みを理解しやすいのが特徴です。

この記事では、データベースを停止して一貫性を保ったままファイルを保護する、Oracle コールドバックアップの具体的な手順と注意点を解説します。

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

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


結論:コールドバックアップの最短手順(3ステップ)

コールドバックアップの基本は「止める」「コピーする」「動かす」の3段階です。

  1. DB停止: SQL*Plusで SHUTDOWN IMMEDIATE を実行(一貫性の確保)。
  2. OSコピー: データファイル、制御ファイル、ログファイル等を別ディレクトリへコピー。
  3. 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

リストア手順:万が一の復旧方法

データが破損した際、バックアップ時点の状態に戻す手順です。

  1. DB停止: SHUTDOWN IMMEDIATE;(起動不可なら ABORT も検討)
  2. ファイル書き戻し:
    • Linux: cp -p /backup/v19/* /u01/app/oracle/oradata/V19/
    • Windows: copy D:\backup\v19\* C:\oracle\oradata\V19\ /Y
  3. 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専門のエージェントで非公開求人をチェックしてみませんか?

コメント

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