保証付きリストアポイントを使ったフラッシュバック・データベースの実行手順

Oracle Master Gold

Oracleには、一時的に安全な復元ポイントを作成し、その時点にいつでも巻き戻せる「保証付きリストアポイント(Guaranteed Restore Point)」という便利な機能があります。

この記事では、実際に保証付きリストアポイントを使って、安全にフラッシュバック・データベースを行う手順と、運用上の注意点を初心者向けに解説します。


🔰 保証付きリストアポイントとは?

リストアポイントとは、Oracleデータベースの特定の時点をマークしておく機能です。
その中でも「保証付きリストアポイント」は、FRAにあるフラッシュバックログをOracleが削除しないよう保護するため、確実にその時点まで戻すことができます。


✅ 主な利用シーン

  • パッチやアップグレードの前に戻れるようにしたい
  • テスト中に何か問題があった場合、安全に巻き戻したい
  • 一時的なデータ変更後、すぐに元に戻す予定がある

🗂 全体の流れ(図)

┌────────────────────────────┐
│ Step1:アーカイブログ+FRAの構成 │ ← 構成済み前提
└────────────┬────────────┘

┌────────────────────────────┐
│ Step2:保証付きリストアポイント作成 │ ← 戻したい時点をマーク
└────────────┬────────────┘

┌────────────────────────────┐
│ Step3:任意の操作や変更 │ ← パッチ適用・テストなど
└────────────┬────────────┘

┌────────────────────────────┐
│ Step4:フラッシュバックで巻き戻す │ ← リストアポイント指定
└────────────┬────────────┘

┌────────────────────────────┐
│ Step5:RESETLOGSでオープン │
└────────────────────────────┘

🔧 Step1:事前構成(前提)

以下が既に構成されていることを前提とします:

  • アーカイブログモードが有効
  • FRA(Fast Recovery Area)の設定済み
  • フラッシュバック・データベースが有効

構成方法は以下の記事を参考にしてください:
👉 Oracle初心者向け:フラッシュバック・データベースの構成手順と注意点


🛠 Step2:保証付きリストアポイントを作成する

-- SYSDBAユーザーで
CREATE RESTORE POINT before_test GUARANTEE FLASHBACK DATABASE;

GUARANTEE FLASHBACK DATABASE がポイント!
この指定があると、Oracleはこのポイントに戻すために必要なログをFRAから削除しません。


🧪 Step3:任意の操作(例:パッチ適用やテスト)

-- この間に行われた操作が問題あれば、リストアポイントに戻せます
-- 例:データ更新・パッチ適用・一時的なテーブルDROPなど

🔁 Step4:保証付きリストアポイントへフラッシュバック実行

① インスタンスをMOUNTモードで起動

SHUTDOWN IMMEDIATE
STARTUP MOUNT

② RMANでフラッシュバック実行

rman target /

FLASHBACK DATABASE TO RESTORE POINT before_test;

🔓 Step5:RESETLOGSでオープン

-- SQL*Plusなどで
ALTER DATABASE OPEN RESETLOGS;

📝 RESETLOGSを忘れると、以降の操作ができなくなるため必ず実行します。


❌ 不要になったらリストアポイントを削除

DROP RESTORE POINT before_patch;

フラッシュバックログが無駄にFRAを圧迫しないよう、使用後は削除しましょう。

SQL> SELECT * FROM scott.sales;

ID ITEM AMOUNT
---------- ---------- ----------
1 ノートPC 150000
2 マウス 2000

SQL> CREATE RESTORE POINT before_test GUARANTEE FLASHBACK DATABASE; ★保証付きリストアポイントを作成

リストア・ポイントが作成されました。

SQL> DROP TABLE scott.sales; ★テーブルを削除

表が削除されました。

SQL> SELECT * FROM test1.sales;
SELECT * FROM test1.sales
*
行1でエラーが発生しました。:
ORA-00942: 表またはビューが存在しません。


SQL> SHUTDOWN IMMEDIATE
データベースがクローズされました。
データベースがディスマウントされました。
ORACLEインスタンスがシャットダウンされました。
SQL> STARTUP MOUNT
ORACLEインスタンスが起動しました。

Total System Global Area 1543500120 bytes
Fixed Size 8925528 bytes
Variable Size 889192448 bytes
Database Buffers 637534208 bytes
Redo Buffers 7847936 bytes
データベースがマウントされました。
SQL> exit
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.21.0.0.0との接続が切断されました。
[oracle@v19single ~]$ rman target /

Recovery Manager: Release 19.0.0.0.0 - Production on 土 3月 29 17:15:22 2025
Version 19.21.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.

ターゲット・データベース: V19 (DBID=2957249400、未オープン)に接続されました

RMAN> FLASHBACK DATABASE TO RESTORE POINT before_test; ★保証付きリストアポイントにフラッシュバックデータベースを実行

flashbackを25-03-29で開始しています
リカバリ・カタログのかわりにターゲット・データベース制御ファイルを使用しています
チャネル: ORA_DISK_1が割り当てられました
チャネルORA_DISK_1: SID=44 デバイス・タイプ=DISK


メディア・リカバリを開始しています
メディア・リカバリが完了しました。経過時間: 00:00:01

flashbackを25-03-29で終了しました

RMAN> ALTER DATABASE OPEN RESETLOGS;

文が処理されました

RMAN> exit


Recovery Managerが完了しました。
[oracle@v19single ~]$ sqlplus scott/tiger

SQL*Plus: Release 19.0.0.0.0 - Production on 土 3月 29 17:16:06 2025
Version 19.21.0.0.0

Copyright (c) 1982, 2022, Oracle. All rights reserved.

最終正常ログイン時間: 土 3月 29 2025 16:49:10 +09:00


Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.21.0.0.0
に接続されました。
SQL> col item for a10
SQL> SELECT * FROM scott.sales; ★表が元に戻っている

ID ITEM AMOUNT
---------- ---------- ----------
1 ノートPC 150000
2 マウス 2000

⚠ 注意点まとめ

注意点内容
FRAの容量に注意保証付きリストアポイントがある間、ログが削除されず増え続ける
必ずRESETLOGSを実行フラッシュバック後の再利用にはRESETLOGSが必須
使用後はDROPを忘れずに使い終わったらログ圧迫防止のため削除を推奨
構成後の時点にしか戻れない機能がONになって以降の時点にしか戻れない点は通常のフラッシュバックと同様

✅ まとめ

ステップ内容
Step1フラッシュバック構成済みであることを確認
Step2GUARANTEEDリストアポイント作成
Step3任意の操作(パッチなど)
Step4フラッシュバックで戻す
Step5RESETLOGSで通常運用に戻す
注意使用後はDROPを忘れずに!

🔚 おわりに

保証付きリストアポイントは、Oracleの中でも特に安全性の高い巻き戻し手段です。
「必ず戻したい」操作の前に作成しておくことで、想定外のトラブルにも安心して対応できます。

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

コメント

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