Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Oracle Database入門 - バックアップおよびリカバリ編

Oracle Database入門 - バックアップおよびリカバリ編

2023年12月19日開催 Oracle DBaseCampで発表した資料です。
アーカイブ動画:https://youtu.be/mEMuvnfhb18

oracle4engineer

December 19, 2023
Tweet

More Decks by oracle4engineer

Other Decks in Education

Transcript

  1. 1. バックアップおよびリカバリ概要 n バックアップおよびリカバリについて n Oracle Databaseにおけるバックアップおよびリカバリ 2. Oracle Databaseの内部動作と発⽣する障害のタイプ

    n Oracle Databaseの内部動作と⽤語のおさらい n Oracle Databaseで発⽣する障害のタイプ 3. バックアップおよびリカバリの種類と対象ファイル n Oracle Databaseのファイル群のおさらい/バックアップ対象ファイルについて n バックアップおよびリカバリの種類と⽅法 4. Oracle Recovery Manager (RMAN)を利⽤したバックアップおよびリカバリ n RMANを利⽤するメリットとバックアップおよびリカバリ⽅法 n デモ 5. BaseDBのバックアップおよびリカバリ n ⾃動バックアップ機能 n Zero Data Loss Autonomous Recovery Service (ZRCV) Agenda Copyright © 2023, Oracle and/or its affiliates 2
  2. 1. バックアップおよびリカバリ概要 n バックアップおよびリカバリについて n Oracle Databaseにおけるバックアップおよびリカバリ 2. Oracle Databaseの内部動作と発⽣する障害のタイプ

    n Oracle Databaseの内部動作と⽤語のおさらい n Oracle Databaseで発⽣する障害のタイプ 3. バックアップおよびリカバリの種類と対象ファイル n Oracle Databaseのファイル群のおさらい/バックアップ対象ファイルについて n バックアップおよびリカバリの種類と⽅法 4. Oracle Recovery Manager (RMAN)を利⽤したバックアップおよびリカバリ n RMANを利⽤するメリットとバックアップおよびリカバリ⽅法 n デモ 5. BaseDBのバックアップおよびリカバリ n ⾃動バックアップ機能 n Zero Data Loss Autonomous Recovery Service (ZRCV) Agenda Copyright © 2023, Oracle and/or its affiliates 3
  3. Oracle Databaseにおけるバックアップおよびリカバリ バックアップおよびリカバリについて 4 • ⽤語の定義 • バックアップおよびリカバリの⽬的 障害等でデータを破損・損失してしまった場合に備え、データを別の場所に保管(バックアップ)しておき、いざという時に データを元に戻し、復旧(リストア+リカバリ)すること

    Copyright © 2023, Oracle and/or its affiliates 重要なのはあくまでもバックアップを取ることだけではなく、障害時に復旧できること コピー コピーを元に 復旧 バックアップ リストア リカバリ データのコピーを別の場所に 保存しておくこと データが破損した際にコピー (バックアップファイル)をデータ ベース本体に戻すこと バックアップ取得後に加えら れた変更ログをバックアップ ファイルに適⽤し、障害直 前まで復旧させること
  4. データベース⽤ ストレージ 物理バックアップ(本セミナーの内容) • データベースを構成するファイル群を物理的に別媒体へ コピーし、障害時に置き換える⽅法 • バックアップ専⽤のコマンドやツールを使⽤ • OSコマンド

    • バックアップ専⽤のコマンド(Recovery Manager: RMAN) • サードベンダー製のツール • 変更ログ(REDOログ)を保存しておくことによって、障害直前 の状態まで復元可能 ⽤途別に使⽤可能なバックアップおよびリカバリ⽅法 論理バックアップ • データのみ抽出し、障害時にデータを再ロードする⽅法 • Oracle Data Pumpを使⽤ • メディア・リカバリ(物理破損)には対応しない • データを抽出した時点までしか復旧できない • 物理バックアップの補助⼿段としては有効だが、データベース 全体の保護はできない Oracle Databaseにおけるバックアップおよびリカバリ Copyright © 2023, Oracle and/or its affiliates 5 バックアップ リストア 障害に備える仕組み バックアップ⽤ ストレージ expdp データベース間の データの移動で利⽤ impdp 100 ⽥中 101 佐藤 102 鈴⽊ ・・・ 100 ⽥中 101 佐藤 102 鈴⽊ ・・・ データ ベース 本体 バックアップ⽤ ストレージ データ ベースの コピー
  5. バックアップ→障害発⽣→リストア+リカバリの流れ Oracle Databaseにおけるバックアップおよびリカバリ Copyright © 2023, Oracle and/or its affiliates

    6 時間 データベース⽤ストレージ バックアップ⽤ストレージ データベース⽤ストレージ データベース⽤ストレージ データベース⽤ストレージ 【バックアップ】 データベースを構成する ファイルのコピーを保存 【リストア】 破損したファイルの代わりに バックアップファイルを定位置に戻す 変更ログ データベースの復旧 =リストア+リカバリ 12:00 12:20 破損直前(12:20)の状態を復旧 【リカバリ】 バックアップ時点から後におこなわれた 変更ログを反映 破損
  6. 1. バックアップおよびリカバリ概要 n バックアップおよびリカバリについて n Oracle Databaseにおけるバックアップおよびリカバリ 2. Oracle Databaseの内部動作と発⽣する障害のタイプ

    n Oracle Databaseの内部動作と⽤語のおさらい n Oracle Databaseで発⽣する障害のタイプ 3. バックアップおよびリカバリの種類と対象ファイル n Oracle Databaseのファイル群のおさらい/バックアップ対象ファイルについて n バックアップおよびリカバリの種類と⽅法 4. Oracle Recovery Manager (RMAN)を利⽤したバックアップおよびリカバリ n RMANを利⽤するメリットとバックアップおよびリカバリ⽅法 n デモ 5. BaseDBのバックアップおよびリカバリ n ⾃動バックアップ機能 n Zero Data Loss Autonomous Recovery Service (ZRCV) Agenda Copyright © 2023, Oracle and/or its affiliates 7
  7. • Oracle Databaseの内部動作と⽤語のおさらい • 2023/11/21開催「アーキテクチャ編」より再掲 • Oracle Databaseで発⽣する障害のタイプ • インスタンス障害

    • メディア障害 • メディア障害からのリカバリに必要な設定 Oracle Databaseの内部動作と発⽣する障害のタイプ Copyright © 2023, Oracle and/or its affiliates 8
  8. Oracle Databaseの処理の仕組み Copyright © 2023, Oracle and/or its affiliates 9

    Oracle Databaseの内部処理(〜更新処理からの継続) DBWn クライアント ユーザー プロセス 共有プール データベース・ バッファ・キャッシュ REDOログ・ バッファ 制御ファイル データ・ファイル REDOログ・ファイル CKPT SQL⽂ 解析情報 実⾏計画 データ・ディクショナリ A A SELECT A FROM 表1; UPDATE 表1 A⇒B︔ COMMIT︔ 変更履歴 A→B B 変更前データ A LGWR A→B SCN割り当て ※ SCN: システム変更番号 ※2023/11/21開催「アーキテクチャ編」より再掲 サーバー プロセス
  9. Oracle Databaseの処理の仕組み Copyright © 2023, Oracle and/or its affiliates 10

    バックグラウンド・プロセスが⾮同期で実⾏ クライアント ユーザー プロセス 共有プール データベース・ バッファ・キャッシュ REDOログ・ バッファ 制御ファイル データ・ファイル REDOログ・ファイル CKPT A B SELECT A FROM 表1; UPDATE 表1 A⇒B︔ COMMIT︔ B 変更前データ A LGWR A DBWn ファイル・ヘッダー の更新 サーバー プロセス A→B ※2023/11/21開催「アーキテクチャ編」より再掲
  10. Oracle Databaseの内部動作と発⽣する障害のタイプ Copyright © 2023, Oracle and/or its affiliates 11

    • Oracle Databaseの内部動作と⽤語のおさらい • 2023/11/21開催「アーキテクチャ編」より再掲 • Oracle Databaseで発⽣する障害のタイプ • インスタンス障害 • メディア障害 • メディア障害からのリカバリに必要な設定
  11. インスタンス障害 / メディア障害 インスタンス障害 • インスタンス(メモリー+プロセス)上の情報が失われる障害 メディア障害 • データベース構成ファイルが物理的に破損、損失する障害 Oracle

    Databaseで発⽣し得る障害のタイプ Copyright © 2023, Oracle and/or its affiliates 12 原因: 停電などによるハードウェア障害、プロセス障害などによ り、データベースが異常終了 問題: メモリー上の変更がファイルに反映されていない可能性 (不整合) 解決法: データベースの再起動(インスタンス・リカバリ) 原因: データベースのファイル群が含まれるディスクの障害や、 メンテナンス時の誤操作(削除)等 問題: 特定のデータへのアクセス・エラー、またはデータベースの 停⽌ 解決法: バックアップからのリストア+リカバリ(メディア・リカバリ) データベース・ バッファ・キャッシュ REDOログ・ バッファ 制御ファイル データ・ファイル REDOログ・ファイル A A 変更履歴 A→B B 変更前データ A A→B SMON データベース・ バッファ・キャッシュ REDOログ・ バッファ 制御ファイル データ・ファイル REDOログ・ファイル A A→B B 消失 A バックアップ A ①リストア 管理者 ユーザー プロセス サーバー プロセス B ②リカバリ
  12. 障害直前の状態まで復旧するためにはREDOログ情報が必要 ARCHIVELOGモード • REDOログ・ファイルのコピーを残しておくモード • 障害直前までの復旧が可能(リカバリ) NOARCHIVELOGモード • REDOログ・ファイルを上書きして運⽤するモード •

    バックアップを取得した時点までしか復旧できない(リストア) メディア障害からのリカバリのためにARCHIVELOGモードを設定 Copyright © 2023, Oracle and/or its affiliates 13 A⇒B ⇒C⇒D A A⇒B ⇒C⇒D データ・ファイル REDOログ・ ファイル A⇒B B⇒C アーカイブ REDOログ・ ファイル A⇒B C⇒D ARCn A時点の バックアップ バックアップ ①リストア ②リカバリ A⇒B ⇒C⇒D A A データ・ファイル REDOログ・ ファイル A⇒B B⇒C C⇒D A時点の バックアップ バックアップ リストア
  13. 障害直前の状態まで復旧するためにはREDOログ情報が必要 ARCHIVELOGモード • REDOログ・ファイルのコピーを残しておくモード • 障害直前までの復旧が可能(リカバリ) NOARCHIVELOGモード • REDOログ・ファイルを上書きして運⽤するモード •

    バックアップを取得した時点までしか復旧できない(リストア) メディア障害からのリカバリのためにARCHIVELOGモードを設定 Copyright © 2023, Oracle and/or its affiliates 14 A⇒B ⇒C⇒D A A⇒B ⇒C⇒D データ・ファイル REDOログ・ ファイル A⇒B B⇒C アーカイブ REDOログ・ ファイル A⇒B C⇒D ARCn A時点の バックアップ バックアップ ①リストア ②リカバリ A⇒B ⇒C⇒D A A データ・ファイル REDOログ・ ファイル A⇒B B⇒C C⇒D A時点の バックアップ バックアップ リストア 本番環境の推奨
  14. 1. バックアップおよびリカバリ概要 n バックアップおよびリカバリについて n Oracle Databaseにおけるバックアップおよびリカバリ 2. Oracle Databaseの内部動作と発⽣する障害のタイプ

    n Oracle Databaseの内部動作と⽤語のおさらい n Oracle Databaseで発⽣する障害のタイプ 3. バックアップおよびリカバリの種類と対象ファイル n Oracle Databaseのファイル群のおさらい/バックアップ対象ファイルについて n バックアップおよびリカバリの種類と⽅法 4. Oracle Recovery Manager (RMAN)を利⽤したバックアップおよびリカバリ n RMANを利⽤するメリットとバックアップおよびリカバリ⽅法 n デモ 5. BaseDBのバックアップおよびリカバリ n ⾃動バックアップ機能 n Zero Data Loss Autonomous Recovery Service (ZRCV) Agenda Copyright © 2023, Oracle and/or its affiliates 15
  15. • データベース・ファイルの種類 • データ・ファイル: ユーザが利⽤するデータ(表など)を格納 • REDOログ・ファイル: 変更履歴(DML,DDLなど)を格納 • 制御ファイル:

    データベース構造、変更反映状況などの制御情報を格納 Oracle Databaseのファイル群とバックアップ対象 Copyright © 2023, Oracle and/or its affiliates 17 17 SGA ファイル群 PGA サーバー プロセス PGA サーバー プロセス PGA PGA サーバー プロセス サーバー プロセス 初期化 パラメータ・ファイル ※2 アーカイブREDO ログ・ファイル アラート・ ログファイル 制御ファイル データ・ファイル REDOログ・ ファイル ※1 PGA バックグラウンド・ プロセス PGA バックグラウンド・ プロセス PGA バックグラウンド・ プロセス PGA バックグラウンド・ プロセス ⾚字: バックアップ対象ファイル ※1 後述のオフライン(コールド)・バックアップではバックアップ対象。 オンライン(ホット)・バックアップではログ・スイッチを実施し、アーカイブREDOログを⽣成した上でアーカイブREDOログを取得 ⽣成 ※2023/11/21開催「アーキテクチャ編」より抜粋 ※2 設定変更時に必要に応じて取得
  16. 障害がおきないようにするための対策 制御ファイル • 多重化が推奨 (⼀つでも壊れるとデータベースは停⽌する) • 各ファイルを異なるディスクに配置 REDOログ・ファイル • 多重化が推奨

    (⼀つでも正常なファイルがあればデータベースは運⽤可能) • 各ファイルを異なるディスクに配置 データ・ファイル • 定期的なバックアップの取得 • 変更ログ(REDOログ情報)の保存 (アーカイブREDOログ・ファイル) 【補⾜】ファイルごとの障害対策 Copyright © 2023, Oracle and/or its affiliates 18 データベース⽤ストレージ バックアップ⽤ストレージ 制御 ファイル データ・ファイル REDOログ・ ファイル 制御 ファイル REDOログ・ ファイル バックアップ アーカイブ REDOログ・ ファイル 2つのディスクを使った配置例 多重化したファイルは 別ディスクに配置 データ・ファイルとバックアップは 別ディスクに配置
  17. オフライン(コールド)バックアップ • データベースを正常に停⽌した状態でバックアップを取 得 • すべてのファイルをリストアした場合、リストア直後に データベースをオープンできる オンライン(ホット)バックアップ • データベースを運⽤しながら(停⽌せずに)バックアップを

    取得 • リストア後にリカバリ操作をする必要がある • ARCHIVELOGモード運⽤時のみ(推奨) Copyright © 2023, Oracle and/or its affiliates 20 バックアップ 停⽌状態 更新 起動状態 バックアップ 代表的なバックアップ⽅法
  18. バックアップ⽤ ストレージ データベース⽤ ストレージ オンラインバックアップ⼿法: Recovery Manager (RMAN) と ユーザー管理バックアップ

    Recovery Manager (RMAN) • Oracle Databaseで物理バックアップおよびリカバリを 実⾏するための標準ツール • プラットフォームを問わず、同じコマンドで対処可能 • データのコピー時にデータ・ブロックの破損検査を⾏う (詳細は後述) • Oracle推奨 ユーザー管理バックアップ • RMAN以外の以下の⽅法を使⽤しておこなわれる バックアップ ex) ストレージ機能のスナップ・ショット OSコマンドによるファイルコピーなど • 破損領域がそのままコピーされる可能性や、バックアッ プも破損している場合がある 代表的なバックアップ⽅法 Copyright © 2023, Oracle and/or its affiliates 21 SQLコマンド例 • バックアップの開始 • バックアップの終了 ※ バックアップの開始と終了のSQLコマンドの間において OSコマンドでデータ・ファイルのコピーを取得 ALTER DATABASE BEGIN BACKUP; ALTER DATABASE END BACKUP; RMANコマンド例 • バックアップの実施例 RMAN> backup database; RMAN> backup database plus archivelog; サーバー プロセス RMAN クライアント
  19. データベースの復旧状態 バックアップ時点に復旧(リストアのみ) • バックアップ時点の状態に戻す復旧 ⽅法 • オフライン・バックアップ(⼀貫性のとれた バックアップ)が必要 • NOARCHIVELOGモードでの唯⼀の復

    旧⽅法 最新の状態に復旧(完全リカバリ) • バックアップ以降の全ての変更ログを 適⽤し、障害直前の状態に復旧す る⽅法 過去の時点に復旧(不完全リカバリ) • バックアップ以降の変更ログを途中ま で適⽤し、過去のある状態に復旧す る⽅法 • REDOログ・ファイルやアーカイブ・ログ・ ファイルの損失により最新の変更履歴が 失われた場合 • 誤操作を取り消すため、操作前の状態 に戻したい場合 代表的なリカバリ⽅法(メディア・リカバリ) 22 時間 データベース ⽤ストレージ バックアップ⽤ ストレージ データベース ⽤ストレージ データベース ⽤ストレージ 破損 変更ログ 時間 データベース ⽤ストレージ バックアップ⽤ ストレージ データベース ⽤ストレージ データベース ⽤ストレージ データベース ⽤ストレージ 破損 変更ログ 時間 データベース ⽤ストレージ バックアップ⽤ ストレージ データベース ⽤ストレージ データベース ⽤ストレージ データベース ⽤ストレージ 破損 変更ログ 変更ログを 途中まで適⽤ 全ての変更ログを 適⽤ リストアのみ オフライン・ バックアップ Copyright © 2023, Oracle and/or its affiliates
  20. データベースを最新の状態に復旧(完全リカバリ) 代表的なリカバリ⽅法 Copyright © 2023, Oracle and/or its affiliates 23

    時間 データベース⽤ストレージ バックアップ⽤ストレージ データ・ファイルの バックアップ アーカイブREDOログ データ ファイル 制御ファイル REDO ログ ファイル ⽣成 コピー #101 #101 #102 #103 #105 #108 #104 #106 #107 #100 #110 A #110 #110 #109 #101 A #101 #101 #100 .... #110 A #101 #110 #109 A #101 ①リストア #110 A #110 #110 #109 ②リカバリ 障害の発⽣したデータ・ファイルの バックアップのみをリストア 変更履歴を適⽤ B #101 B #101 B #110 B #110 B #110 ※数字はREDOログ・ファイルの番号で、時間の経過を表します。 #110の時点で AのDisk障害 復旧作業中も Bは利⽤可能
  21. データベースを過去の状態に復旧(不完全リカバリ) 代表的なリカバリ⽅法 Copyright © 2023, Oracle and/or its affiliates 24

    時間 データベース⽤ストレージ バックアップ⽤ストレージ データ・ファイルの バックアップ アーカイブREDOログ データ ファイル 制御ファイル REDO ログ ファイル ⽣成 コピー #101 #101 #102 #103 #105 #108 #104 #106 #107 #100 #110 A #110 #110 #109 #101 A #101 #101 #100 .... #110 A #101 #110 #109 A #101 ①リストア #110 A #105 #110 #109 ②リカバリ 全てのデータ・ファイルの バックアップをリストア 変更履歴を適⽤ B #101 B #101 B #110 B #101 B #105 ※数字はREDOログ・ファイルの番号で、時間の経過を表します。 バッチ処理でミス︕ #105まで戻したい ③ログ情報のリセット #105
  22. 1. バックアップおよびリカバリ概要 n バックアップおよびリカバリについて n Oracle Databaseにおけるバックアップおよびリカバリ 2. Oracle Databaseの内部動作と発⽣する障害のタイプ

    n Oracle Databaseの内部動作と⽤語のおさらい n Oracle Databaseで発⽣する障害のタイプ 3. バックアップおよびリカバリの種類と対象ファイル n Oracle Databaseのファイル群のおさらい/バックアップ対象ファイルについて n バックアップおよびリカバリの種類と⽅法 4. Oracle Recovery Manager (RMAN)を利⽤したバックアップおよびリカバリ n RMANを利⽤するメリットとバックアップおよびリカバリ⽅法 n デモ 5. BaseDBのバックアップおよびリカバリ n ⾃動バックアップ機能 n Zero Data Loss Autonomous Recovery Service (ZRCV) Agenda Copyright © 2023, Oracle and/or its affiliates 25
  23. • RMANを利⽤するメリット • バックアップの⾃動管理 • 様々なバックアップが取得可能 • RMANのバックアップおよびリカバリ⽅法 • RMANの構成

    • バックアップ形式 • フルバックアップ/増分バックアップ • RMANデモ Oracle Recovery Manager (RMAN)を利⽤したバックアップおよびリカバリ Copyright © 2023, Oracle and/or its affiliates 26 バックアップ⽤ ストレージ データベース⽤ ストレージ サーバー プロセス RMAN クライアント
  24. バックアップの⾃動管理 バックアップ管理をOracle Database⾃⾝で︕ • Oracle Databaseがバックアップに必要な設定を管理 • Oracle Databaseがバックアップすべきデータを認識 •

    Oracle Databaseがバックアップ保存期間を認識 • Oracle Databaseがバックアップ領域を管理 • ⾼速リカバリ領域 (FAST RECOVERY AREA)利⽤ バックアップ時に⾃動で破損ブロック検査 • バックアップ実⾏時の⾃動破損ブロック検査 • データベース/バックアップ両⽅に対する破損検査が可能 RMANを利⽤するメリット① Copyright © 2023, Oracle and/or its affiliates 27 1週間前 2週間前 3週間前 どこにバックアップを取得するか︖ どのファイルをバックアップするか︖ いつまで保存するか︖ 領域は⼗分にあるか︖ ※ RMANを利⽤しない場合はDBAの仕事 RMAN> VALIDATE DATABASE; 破損領域がある場合、バックアップ時にエラー出⼒ RMAN> backup database; ・・・・・・ RMAN-06169: could not read file header for datafile 12 error reason 4 データベースの破損検査 RMAN> VALIDATE BACKUPSET 3871, 3890; バックアップの破損検査
  25. 様々なバックアップが取得可能 操作の⾃動化 ⇒ 運⽤ミスを減らす • バックアップ・およびリカバリのコマンドがシンプルに • OSコマンド(複雑なShell)と組み合わせなくても良い • コマンド・スクリプトの可読性・メンテナンス性が⾼まる

    Oracle Databaseの仕組みを最⼤限に利⽤ • ホット・バックアップ・モード不要 • alter database begin backup; / alter database end backup; • データブロック単位での読み書き • 破損ブロックの検証 • 増分バックアップ • ⾼速増分バックアップ(EE) • 未使⽤データの圧縮(スキップ)(EE) • バイナリ圧縮 (Advanced Compression Opt.) • BASICアルゴリズムでの圧縮は標準機能 • ブロック・メディア・リカバリ(EE) RMANを利⽤するメリット② Copyright © 2023, Oracle and/or its affiliates 28 Oracle Databaseでバックアップすべき全データを保存 • データファイル(バックアップ・セット) • 制御ファイル(configureで設定) • 初期化パラメータ・ファイル(SPFILEのみ。Configureで設定) RMAN> BACKUP DATABASE; RMAN> BACKUP DATABASE PLUS ARCHIVELOG; 上記に加えて、アーカイブREDOログ・ファイルもバックアップ 対象にする バックアップおよびリカバリ単位がファイルからブロックへ
  26. RMANではデータ・ブロックのバックアップ/リストア/リカバリが可能 基本的にはファイル単位 • バックアップ • リストア/リカバリ ファイルよりも⼩さな粒度(データ・ブロック単位) • バックアップ •

    リストア/リカバリ 参考)バックアップ・リストアの単位 Copyright © 2023, Oracle and/or its affiliates 29 データベース⽤ ストレージ バックアップ⽤ ストレージ 表領域 データ・ファイル 単位のコピー データ・ファイル 単位の リストア データベース⽤ ストレージ バックアップ⽤ ストレージ 表領域 (オフライン) データベース⽤ ストレージ バックアップ⽤ ストレージ 表領域 データ・ブロック 単位のコピー データ・ブロック 単位の リストア および リカバリ データベース⽤ ストレージ バックアップ⽤ ストレージ 表領域 (オンライン) 増分バックアップ ブロック・メディア・ リカバリ
  27. • RMANを利⽤するメリット • バックアップの⾃動管理 • 様々なバックアップが取得可能 • RMANのバックアップおよびリカバリ⽅法 • RMANの構成

    • バックアップ形式 • フルバックアップ/増分バックアップ • RMANデモ Oracle Recovery Manager (RMAN)を利⽤したバックアップおよびリカバリ Copyright © 2023, Oracle and/or its affiliates 30 バックアップ⽤ ストレージ データベース⽤ ストレージ サーバー プロセス RMAN クライアント
  28. RMANの構成 Copyright © 2023, Oracle and/or its affiliates 31 データベース⽤ストレージ

    バックアップ⽤ストレージ サーバー プロセス ⾼速リカバリ領域 データファイル 制御ファイル REDOログ・ ファイル RMAN クライアント アーカイブ REDOログ・ ファイル データファイルの バックアップ 制御 ファイル (バックアップ) SPFILE SPFILE Read テープ チャネル(SBT) (サーバープロセス) チャネル(DISK) (サーバープロセス) ARCn (バックグラウンド・ プロセス) Write Read Write コマンドのコンパイルなど ※ SBT: System Backup to Tape メディア・ マネージャ (3rdパーティ製含む) 取得した バックアップ情報は ターゲット・データベース内の 制御ファイルに保存 ターゲット・データベース ※ チャネル経由の読み書きはバッファ・キャッシュを経由しない
  29. ⾼速リカバリ領域とは • RMANによるバックアップ管理を簡素化するために利⽤ • Oracle Databaseはこの記憶域を⾃動的に管理し、不要になったファイルを削除 • RMANにより取得されたバックアップを格納(バックアップ・セット、およびイメージ・コピー) • *フラッシュバック・データベース機能で利⽤するフラッシュバック・ログの格納先として利⽤

    • アーカイブ・ログの格納先として利⽤(⾼速リカバリ領域を構成し、ローカル・アーカイブ先を指定しない 場合、Oracle Databaseによって⾃動的に利⽤) 次のコマンドを使⽤して、⾼速リカバリ領域のサイズを指定します。 次のコマンドを使⽤して、⾼速リカバリ領域の場所を指定します。 Copyright © 2023, Oracle and/or its affiliates 32 【補⾜】⾼速リカバリ領域 ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE = 10G; ALTER SYSTEM SET DB_RECOVERY_FILE_DEST = '/u02/oracle/fra'; ※2023/10/24開催「構築編」より再掲 リカバリに関連するすべてのOracle Databaseファイルの統合的な記憶域の場所 *フラッシュバック・データベース機能…後述
  30. リカバリ・カタログ RMANのオプション構成 Copyright © 2023, Oracle and/or its affiliates 33

    ターゲット・データベース 制御 ファイル カタログ・データベース 制御 ファイル RMAN情報 リカバリ・ カタログ RMAN情報 RMAN クライアント RMAN情報を制御ファイル内のみに保存する場合 • 保存期間の制限 • デフォルト7⽇: 初期化パラメータ CONTROL_FILE_RECORD_KEEP_TIME • 制御ファイルが全損した場合の復旧が難しい • 常に最新の制御ファイルのバックアップを取得することを推奨 リカバリ・カタログを利⽤する場合 • ⻑期間(無制限)のバックアップ履歴を保持 • ターゲット・データベースの制御ファイルが全損しても、 バックアップ情報はリカバリ・カタログに存在するため 復旧が容易 • 複数のターゲット・データベースの情報を⼀元管理可能 • カタログ・データベース⽤途のライセンスは無償 (独⽴した単⼀インスタンス分のみ) RESYNC (制御ファイルの情報を書き込む)
  31. 管理者の指定した「保存⽅針」に従い、RMANは必要なバックアップを識別できる • 保存⽅針と照らし合わせ、バックアップが必要なファイルをレポート • 保存⽅針と照らし合わせ、不要な(リカバリに必要なくなった)バックアップを⼀括削除 「保存⽅針」は以下のいずれかで指定 • バックアップ冗⻑性(例: 2世代) •

    リカバリ期間(例: 3⽇前に戻れるように) 【補⾜】バックアップの保存⽅針 Copyright © 2023, Oracle and/or its affiliates 34 2世代 3⽇前の状態に戻すためには、7⽇前のバックアップ+アーカイブ(3⽇前-6⽇前)が必要 アーカイブREDOログ・ファイル 時間 アーカイブREDOログ・ファイル 1世代 今⽇ 14⽇前 13⽇前 12⽇前 11⽇前 10⽇前 9⽇前 8⽇前 7⽇前 6⽇前 5⽇前 4⽇前 3⽇前 2⽇前 1⽇前
  32. RMANクライアントの起動とターゲットデータベース接続 • RMANクライアントの起動 • RMANクライアントの起動と同時にターゲットデータベースに接続する場合 バックアップを実⾏可能な権限 • SYSDBA権限: すべてのデータを参照する権限を持つ •

    SYSBACKUP権限: バックアップの実⾏するのみの権限を持つ(12c以降〜導⼊) • ⇒SYSBACKUP権限はデータを参照する権限が含まれないため、データの悪⽤を防ぐ RMANコマンド Copyright © 2023, Oracle and/or its affiliates 35 rman rman target /
  33. バックアップ・セット / イメージ・コピー バックアップ・セット(RMANのデフォルト) • RMANバックアップの最⼩単位 • RMANの「BACKUP」コマンドで取得 • RMANによってのみ作成またはリストアできる独⾃形式ファイ

    ル(バックアップ・ピース)を1つ以上含む • 複数のデータ・ファイルのバックアップを1つのバックアップ・ピースに含 めることができる • 複数チャネルを使ったマルチセクション・バックアップではチャネル単 位でバックアップ・ピースを作成 • 使⽤されていないデータ・ファイルのブロックはスキップ イメージ・コピー • バックアップ対象ファイルのビット単位のコピー • RMANの「BACKUP AS COPY」コマンドで取得 • OSコマンド(UNIXのcpなど)によって⽣成されたものと同等 • OSコマンドでリストア可能 • 未使⽤ブロックもバックアップに含まれるため、データ・ファイルと同じ サイズの領域が必要 RMANで取得できるバックアップ形式 Copyright © 2023, Oracle and/or its affiliates 36 データベース⽤ストレージ バックアップ⽤ストレージ イメージ・コピー データベース⽤ストレージ バックアップ⽤ストレージ バックアップ・ピース (ぞれぞれのファイル) バックアップ・セット
  34. フルバックアップと増分バックアップ フルバックアップ • ファイル内の全てのブロックを対象とするバックアップ • 1回のバックアップ・サイズが⼤きくなる 増分バックアップ • 以前のバックアップアップ以降に変更されたブロック のみを対象とするバックアップ

    • 1回のバックアップ・サイズが⼩さい • リストアの際に、差分を適⽤する必要がある RMANを利⽤したバックアップ Copyright © 2023, Oracle and/or its affiliates 37 ⽇ ⽉ ⽕ ⽔ ⽊ ⾦ ⼟ ⽇ ⽉ ⽕ ⽔ ⽊ ⾦ ⼟ レベル0 レベル1 レベル1 レベル1 レベル1 レベル1 レベル1
  35. マルチレベル増分バックアップ レベル0増分バックアップ • バックアップ対象のデータ・ファイル全体(変更されてい ないデータ・ブロック+変更されたデータ・ブロック)が バックアップされる • 増分バックアップ計画の開始点 • ⇒後続のレベル1の増分バックアップの基本となる、レ

    ベルが0より⼤きい増分バックアップの親 レベル1増分バックアップ • 変更されたブロックのみがバックアップされる • レベル1の増分バックアップは、次のいずれかのタイプ • 差分増分バックアップ: レベル1またはレベル0の最新の増分バックアップ以降に 変更されたすべてのブロックをバックアップ • 累積増分バックアップ: レベル0の最新の増分バックアップ以降にに変更された すべてのブロックをバックアップ RMANを利⽤したバックアップ Copyright © 2023, Oracle and/or its affiliates 38 BACKUP INCREMENTAL LEVEL 0 DATABASE; レベル0の増分バックアップ取得コマンド BACKUP INCREMENTAL LEVEL 1 CUMULATIVE DATABASE; BACKUP INCREMENTAL LEVEL 1 DATABASE; 差分増分バックアップ取得コマンド 累積増分バックアップ取得コマンド
  36. 差分増分バックアップ / 累積増分バックアップ 差分増分バックアップ • レベル1またはレベル0の最新の増分バックアップ以降に変更 されたすべてのブロックをバックアップ • リカバリの際、リストアされたバックアップ以降のすべてのレベル 1の差分増分バックアップを適⽤する必要がある

    累積増分バックアップ • レベル0の最新の増分バックアップ以降にに変更されたすべ てのブロックをバックアップ • リカバリの際、レベル0の増分バックアップと最新の累積増分 バックアップを1つのみ適⽤する必要がある RMANを利⽤したバックアップ Copyright © 2023, Oracle and/or its affiliates 39 ⽇ ⽉ ⽕ レベル0 レベル1 レベル1 ⽇ ⽉ ⽕ レベル0 レベル1 レベル1 リストア リストア
  37. ⾼速増分バックアップ バックアップ時間の短縮: ⾼速増分バックアップ • データ・ファイル全体にアクセスせず、変更されたデータ・ブロックのみにアクセスする仕組み • 変更されたデータ・ブロックを追跡するブロック・チェンジ・トラッキングを有効にすることで利⽤可能 【補⾜】効率的にバックアップおよびリカバリを⾏うための⼿法① Copyright ©

    2023, Oracle and/or its affiliates 40 ▪⾼速増分バックアップ データ・ブロック 全体にアクセス 変更済ブロック のみにアクセス データベース⽤ストレージ バックアップ⽤ストレージ ▪通常の増分バックアップ データベース⽤ストレージ バックアップ⽤ストレージ RMAN CTWR (バックグラウンド・ プロセス) RMAN 変更箇所を 把握 ブロック・チェンジ トラッキング・ファイル
  38. リストア時間の短縮: 増分更新バックアップ • フルバックアップ(レベル0の増分バックアップ)に対してあらかじめ増分バックアップ(レベル1の差分増分または累積増分 バックアップ)を適⽤ • 復旧作業の際に増分を適⽤する⼿間がなく、復旧に必要となる時間を短縮可能 Copyright © 2023,

    Oracle and/or its affiliates 41 増分更新バックアップ 【補⾜】効率的にバックアップおよびリカバリを⾏うための⼿法② ⽇ ⽉ ⽕ レベル0 レベル1 レベル1 リストア ▪増分更新バックアップを利⽤したリストア ▪通常のリストア ⽇ ⽉ ⽕ レベル0 レベル1 レベル1 リストア 増分適⽤
  39. • RMANを利⽤するメリット • バックアップの⾃動管理 • 様々なバックアップが取得可能 • RMANのバックアップおよびリカバリ⽅法 • RMANの構成

    • バックアップ形式 • フルバックアップ/増分バックアップ • RMANデモ Oracle Recovery Manager (RMAN)を利⽤したバックアップおよびリカバリ Copyright © 2023, Oracle and/or its affiliates 42 バックアップ⽤ ストレージ データベース⽤ ストレージ サーバー プロセス RMAN クライアント
  40. RMANによる障害からの復旧 前提 • RMANバックアップ取得済のPDB環境(ORCLPDB1) でデータファイル破損が発⽣ デモの流れ • ORCLPDB1内の1つのデータファイル(users01.dbf) を削除し、データ破損を再現 •

    RMAN> backup databaseを実⾏すると、エラーに なることを確認(破損個所はコピーされない仕組み) • RMAN> validate databaseで破損チェックを実⾏し た場合もファイル⽋損でエラーが出る • リストアおよびリカバリを実⾏ • ⽋損していたデータファイルが正常にリカバリされたかの 確認 RMANデモ データベース⽤ ストレージ バックアップ⽤ ストレージ バックアップ済 RMAN クライアント データファイル (users01.dbf) が破損 データベース⽤ ストレージ 【前提】 破損 バックアップ⽤ ストレージ VALIDATE DATABASE; 破損チェック RESTORE DATAFILE#; データファイル#のリストア RECOVER DATAFILE#; データファイル#リカバリ データベース⽤ ストレージ 修復 【デモの内容】 Copyright © 2023, Oracle and/or its affiliates 43
  41. 44 [oracle@demo-trnt ~]$ sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0

    - Production on Mon Dec 18 13:30:03 2023 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.3.0.0.0 デモ⼿順① Copyright © 2023, Oracle and/or its affiliates SQL*Plusを使ってデータベースに接続
  42. Copyright © 2023, Oracle and/or its affiliates 45 SQL> select

    name from v$datafile; NAME -------------------------------------------------------------------------------- /opt/oracle/oradata/ORCLCDB/system01.dbf /opt/oracle/oradata/ORCLCDB/sysaux01.dbf /opt/oracle/oradata/ORCLCDB/undotbs01.dbf /opt/oracle/oradata/ORCLCDB/pdbseed/system01.dbf /opt/oracle/oradata/ORCLCDB/pdbseed/sysaux01.dbf /opt/oracle/oradata/ORCLCDB/users01.dbf /opt/oracle/oradata/ORCLCDB/pdbseed/undotbs01.dbf /opt/oracle/oradata/ORCLCDB/ORCLPDB1/system01.dbf /opt/oracle/oradata/ORCLCDB/ORCLPDB1/sysaux01.dbf /opt/oracle/oradata/ORCLCDB/ORCLPDB1/undotbs01.dbf /opt/oracle/oradata/ORCLCDB/ORCLPDB1/users01.dbf デモ⼿順② 今回削除対象とするPDB内のusers01.dbf ・v$datafileでデータファイルの情報を確認 データファイル情報を確認
  43. Copyright © 2023, Oracle and/or its affiliates 46 デモ⼿順③ ・SQL*Plusを終了し、データファイルの存在するディレクトリ(/opt/oracle/oradata/ORCLCDB/ORCLPDB1)に移動

    SQL> exit Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.3.0.0.0 [oracle@demo-trnt ~]$ cd /opt/oracle/oradata/ORCLCDB/ORCLPDB1 [oracle@demo-trnt ORCLPDB1]$ ディレクトリ移動 ・データファイルを確認 [oracle@demo-trnt ORCLPDB1]$ ls -l total 753248 -rw-r-----. 1 oracle oinstall 367009792 Dec 18 13:25 sysaux01.dbf -rw-r-----. 1 oracle oinstall 293609472 Dec 18 13:30 system01.dbf -rw-r-----. 1 oracle oinstall 37756928 Dec 17 15:19 temp01.dbf -rw-r-----. 1 oracle oinstall 104865792 Dec 18 13:25 undotbs01.dbf -rw-r-----. 1 oracle oinstall 5251072 Dec 18 13:20 users01.dbf
  44. Copyright © 2023, Oracle and/or its affiliates 47 [oracle@demo-trnt ORCLPDB1]$

    rm -i users01.dbf rm: remove regular file ‘users01.dbf'? y ・system01.dbfを削除 削除を実⾏するか確認されるので、yで実⾏ デモ⼿順④ データファイル削除(データファイル破損を再現) [oracle@demo-trnt ORCLPDB1]$ ls -l total 748120 -rw-r-----. 1 oracle oinstall 367009792 Dec 18 13:25 sysaux01.dbf -rw-r-----. 1 oracle oinstall 293609472 Dec 18 13:30 system01.dbf -rw-r-----. 1 oracle oinstall 37756928 Dec 17 15:19 temp01.dbf -rw-r-----. 1 oracle oinstall 104865792 Dec 18 13:25 undotbs01.dbf ・データファイルの削除状況の確認 users01.dbfが存在しないため、削除されている
  45. Copyright © 2023, Oracle and/or its affiliates 48 デモ⼿順⑤ RMAN>

    backup database; Starting backup at 18-DEC-23 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=284 device type=DISK RMAN-06169: could not read file header for datafile 12 error reason 5 RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: failure of backup command at 12/18/2023 13:30:47 RMAN-06056: could not access datafile 12 • この状態でRMANバックアップを取ろうとすると、データファイルの⽋損でエラーになる データファイルにアクセスできない旨のエラーが表⽰される RMANバックアップを試す
  46. Copyright © 2023, Oracle and/or its affiliates 49 RMAN> validate

    database; Starting validate at 18-DEC-23 using channel ORA_DISK_1 RMAN-06169: could not read file header for datafile 12 error reason 5 RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: failure of validate command at 12/18/2023 13:30:56 RMAN-06056: could not access datafile 12 • validate databaseで破損チェックを実⾏ デモ⼿順⑥ データファイルの破損チェック データファイルにアクセスできない旨のエラーが表⽰される(先ほどと同様)
  47. リストア前にデータファイルをオフラインに変更 デモ⼿順⑦ Copyright © 2023, Oracle and/or its affiliates 50

    SQL> alter session set container = ORCLPDB1; Session altered. • ORCLPDB1に切り替え [oracle@demo-trnt ~]$ sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Mon Dec 19 00:08:56 2023 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.3.0.0.0 SQL> alter session set container = ORCLPDB1; Session altered. • SQL*Plusに接続
  48. リストア前にデータファイルをオフラインに変更 デモ⼿順⑦(続き) Copyright © 2023, Oracle and/or its affiliates 51

    SQL> alter database datafile 12 offline; Database altered. • datafile 12をオフラインに変更 SQL> select file#, status, enabled from v$datafile where file#=12; FILE# STATUS ENABLED ---------- ------- ---------- 12 ONLINE READ WRITE • datafile 12のステータスを確認 データファイルを削除しただけではONLINEのまま SQL> select file#, status, enabled from v$datafile where file#=12; FILE# STATUS ENABLED ---------- ------- ---------- 12 RECOVER READ WRITE • 再度datafile 12のステータスを確認 ステータスがRECOVERに変わる
  49. Copyright © 2023, Oracle and/or its affiliates 52 RMAN> restore

    datafile 12; Starting restore at 19-DEC-23 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=279 device type=DISK channel ORA_DISK_1: starting datafile backup set restore channel ORA_DISK_1: specifying datafile(s) to restore from backup set channel ORA_DISK_1: restoring datafile 00012 to /opt/oracle/oradata/ORCLCDB/ORCLPDB1/users01.dbf channel ORA_DISK_1: reading from backup piece ・・・・・・ channel ORA_DISK_1: restored backup piece 1 channel ORA_DISK_1: restore complete, elapsed time: 00:00:01 Finished restore at 19-DEC-23 デモ⼿順⑧ • RMANに接続し、restore datafileを実⾏ リストアを実⾏ リストア完了
  50. デモ⼿順⑨ Copyright © 2023, Oracle and/or its affiliates 53 RMAN>

    recover datafile 12; Starting recover at 19-DEC-23 using channel ORA_DISK_1 starting media recovery archived log for thread 1 with sequence 41 is already on disk as file /bkup/oracle/flash_recovery_area/OR CLCDB/archivelog/2023_12_18/o1_mf_1_41_lr0bz04j_.arc archived log for thread 1 with sequence 42 is already on disk as file /bkup/oracle/flash_recovery_area/OR CLCDB/archivelog/2023_12_18/o1_mf_1_42_lr0kg6rt_.arc archived log for thread 1 with sequence 43 is already on disk as file /bkup/oracle/flash_recovery_area/OR CLCDB/archivelog/2023_12_18/o1_mf_1_43_lr0krxs1_.arc archived log file name=/bkup/oracle/flash_recovery_area/ORCLCDB/archivelog/2023_12_18/o1_mf_1_41_lr0bz04j _.arc thread=1 sequence=41 media recovery complete, elapsed time: 00:00:00 Finished recover at 19-DEC-23 リカバリ完了 • recover datafileを実⾏ リカバリを実⾏
  51. リカバリ後にデータファイルをオンラインに戻す デモ⼿順⑩ Copyright © 2023, Oracle and/or its affiliates 54

    [oracle@demo-trnt ~]$ sqlplus / as sysdba ・・・・・・ Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 – Production Version 19.3.0.0.0 SQL> alter session set container = ORCLPDB1; Session altered. • SQL*Plusに接続後、 ORCLPDB1に切り替え • datafile 12のステータスを再度確認し、オンラインに変更 SQL> select file#, status, enabled from v$datafile where file#=12; FILE# STATUS ENABLED ---------- ------- ---------- 12 OFFLINE READ WRITE SQL> alter database datafile 12 online; Database altered. ステータスがOFFLINEになっている
  52. Copyright © 2023, Oracle and/or its affiliates 55 データファイルが復旧されたことを確認 デモ⼿順⑪

    メディア・リカバリの実⾏ SQL> select name from v$datafile; NAME -------------------------------------------------------------------------------- /opt/oracle/oradata/ORCLCDB/system01.dbf /opt/oracle/oradata/ORCLCDB/sysaux01.dbf /opt/oracle/oradata/ORCLCDB/undotbs01.dbf /opt/oracle/oradata/ORCLCDB/pdbseed/system01.dbf /opt/oracle/oradata/ORCLCDB/pdbseed/sysaux01.dbf /opt/oracle/oradata/ORCLCDB/users01.dbf /opt/oracle/oradata/ORCLCDB/pdbseed/undotbs01.dbf /opt/oracle/oradata/ORCLCDB/ORCLPDB1/system01.dbf /opt/oracle/oradata/ORCLCDB/ORCLPDB1/sysaux01.dbf /opt/oracle/oradata/ORCLCDB/ORCLPDB1/undotbs01.dbf /opt/oracle/oradata/ORCLCDB/ORCLPDB1/users01.dbf 11 rows selected. users01.dbfが復旧
  53. Copyright © 2023, Oracle and/or its affiliates 56 RMANで破損チェックを再度実⾏ デモ⼿順⑫

    RMAN> validate database ORCLPDB1; Starting validate at 18-DEC-23 using channel ORA_DISK_1 channel ORA_DISK_1: starting validation of datafile channel ORA_DISK_1: specifying datafile(s) for validation input datafile file number=00010 name=/opt/oracle/oradata/ORCLCDB/ORCLPDB1/sysaux01.dbf input datafile file number=00009 name=/opt/oracle/oradata/ORCLCDB/ORCLPDB1/system01.dbf input datafile file number=00011 name=/opt/oracle/oradata/ORCLCDB/ORCLPDB1/undotbs01.db f input datafile file number=00012 name=/opt/oracle/oradata/ORCLCDB/ORCLPDB1/users01.dbf channel ORA_DISK_1: validation complete, elapsed time: 00:00:01 List of Datafiles ================= ・・・・・・ File Status Marked Corrupt Empty Blocks Blocks Examined High SCN ---- ------ -------------- ------------ ------------ --- ---------- 12 OK 0 1 641 2154353 File Name: /opt/oracle/oradata/ORCLCDB/ORCLPDB1/users01.dbf Block Type Blocks Failing Blocks Processed ---------- -------------- ---------------- Data 0 0 Index 0 0 Other 0 639 Finished validate at 18-DEC-23 失敗しているブロックが0になっていることを確認 正常にリストアとリカバリが完了している状態
  54. 前提 • RMANバックアップ取得済のPDB環境(ORCLPDB1) でデータファイル破損が発⽣ デモの流れ • ORCLPDB1内の1つのデータファイル(users01.dbf) を削除し、データ破損を再現 • RMAN>

    backup databaseを実⾏すると、エラーに なることを確認(破損個所はコピーされない仕組み) • RMAN> validate databaseで破損チェックを実⾏し た場合もファイル⽋損でエラーが出る • リストアおよびリカバリを実⾏ • ⽋損していたデータファイルが正常にリカバリされたかの 確認 RMANデモ データベース⽤ ストレージ バックアップ⽤ ストレージ バックアップ済 RMAN クライアント データファイル (users01.dbf) が破損 データベース⽤ ストレージ 【前提】 破損 バックアップ⽤ ストレージ VALIDATE DATABASE; 破損チェック RESTORE DATAFILE#; データファイル#のリストア RECOVER DATAFILE#; データファイル#リカバリ データベース⽤ ストレージ 修復 【デモの内容】 Copyright © 2023, Oracle and/or its affiliates 57 RMANによる障害からの復旧
  55. 不完全リカバリを使わずにある時点に戻す⽅法 従来(Oracle 9iまで)はデータを過去の状態に戻すには 不完全リカバリで対処 フラッシュバック機能 • Enterprise Editionの機能 【補⾜】Oracle Flashback

    Technology Copyright © 2023, Oracle and/or its affiliates 58 詳細ドキュメント • Oracle Flashback Technologyの使⽤ • フラッシュバック・データベースおよびリストア・ポイントの使⽤ 種類 機能名 使⽤場⾯ 使⽤する情報 参照 Oracle Flashback Query 過去のデータの問合せ UNDO情報 Oracle Flashback Version Query どういう経緯で現在の値に⾄った のか トランザクションの確認 UNDO情報 Oracle Flashback Transaction Query 特定のトランザクションの追跡+ UNDO SQLの取得 UNDO情報 フラッシュバック・タイ ム・トラベル 特定の表に対する⻑期間の 履歴保 存 フラッシュバック・ アーカイブ領域 リカバリ フラッシュバック・トラン ザクション 誤って実⾏したトランザクション の取り 消し REDO情報 フラッシュバック表 誤って実⾏したDML⽂の取り消し UNDO情報 フラッシュバック・ドロッ プ 誤って実⾏したDROP TABLEの取り 消し もとの表の領域を 残す フラッシュバック・データ ベース ⼤量の誤操作、表のTRUNCATE、 ユーザーの削除 フラッシュバック・ データベース・ログ 現在 #101 #102 #103 #105 #108 #104 #106 #107 #110 A #110 #110 #109 バッチ処理でミス︕ #105まで戻したい #110 A #105 #110 #109 B #110 B #105 #105 A #101 B #101 アーカイブREDOログ データ・ファイルの バックアップ リストア リカバリ RESETLOGS OPEN この時点から運⽤ 現在 #110 A #110 #110 #109 B #110 #105 A #105 B #105 巻き戻し 現在はフラッシュバック・データベースでデータを過去の状態に 戻すことができる
  56. フラッシュバック表 / フラッシュバック・データベース / フラッシュバック・タイム・トラベル フラッシュバック表 • 特定のテーブルのデータだけを指定時点の状態に戻す機能 • 誤って実⾏したDML⽂の取り消し

    • UNDO情報を利⽤するため以下を調整 • UNDO表領域のサイズ • 初期化パラメータUNDO_RETENTION フラッシュバック・データベース • データベース全体を指定時点の状態に戻す機能 • 従来の不完全リカバリに代わる機能 • データベース構成ファイルの物理破損には対応できない • フラッシュバック・ログを取得するように設定が必要 • ⾼速リカバリ領域を使⽤ • フラッシュバック・データベース・ログの 保持期間の設定(初期化パラメータ) • DB_FLASHBACK_RETENTION_TARGET • フラッシュバック・データベースの有効化 • MOUNT状態で 【補⾜】Oracle Flashback Technology Copyright © 2023, Oracle and/or its affiliates 59 SQL> FLASHBACK TABLE hr.employees TO TIMESTAMP 時間; SQL> FLASHBACK DATABASE TO TIMESTAMP 時間; SQL> ALTER DATABASE FLASHBACK ON; SQL> FLASHBACK TABLE hr.employees TO RESTORE POINT employees_update; ※上記のRESTORE POINTとは、タイムスタンプまたはデータベースの SCNに関連付けられた名前のこと
  57. 1. バックアップおよびリカバリ概要 n バックアップおよびリカバリについて n Oracle Databaseにおけるバックアップおよびリカバリ 2. Oracle Databaseの内部動作と発⽣する障害のタイプ

    n Oracle Databaseの内部動作と⽤語のおさらい n Oracle Databaseで発⽣する障害のタイプ 3. バックアップおよびリカバリの種類と対象ファイル n Oracle Databaseのファイル群のおさらい/バックアップ対象ファイルについて n バックアップおよびリカバリの種類と⽅法 4. Oracle Recovery Manager (RMAN)を利⽤したバックアップおよびリカバリ n RMANを利⽤するメリットとバックアップおよびリカバリ⽅法 n デモ 5. BaseDBのバックアップおよびリカバリ n ⾃動バックアップ機能 n Zero Data Loss Autonomous Recovery Service (ZRCV) Agenda Copyright © 2023, Oracle and/or its affiliates 60
  58. ⾃動バックアップ機能(推奨) OCIで提供しているPaaSデータベースの場合、データベース・バックアップの⾃動取得が可能 • RMANでバックアップを取得 • 設定に基づき、特定の時間に⽇次で⾃動で取得される • 取得先は、OCI Object Storageまたは⾃律型リカバリ・サービスを選択

    • バックアップは全て暗号化 • バックアップ・ジョブの開始時間帯(UTC)や完全バックアップの曜⽇を指定可能 • 最初のバックアップは即時作成することを推奨 • ⾃律型リカバリサービスを利⽤時はスタンバイ・ロールでは⾃動取得されない(プライマリ・ロールに 切り替わると⾃動取得) OCI Base Databaseのバックアップ Copyright © 2023, Oracle and/or its affiliates 61 取得先 頻度と種類 保持期間 ⾃律型リカバリ・サービス (Autonomous Recovery Service) 初回フル(Level 0) 永久差分増分(Level 1) Oracle定義(14/35/65/95⽇)もしくはユーザー定義の 保護ポリシーを指定(デフォルトSilver 35⽇) Object Storage (オラクル管理バケット内) 週次フル(Level 0) ⽇次差分増分(Level 1) 7/15/30/45/60⽇から選択(デフォルト30⽇) OCI Documentation Exadata Cloud Service > Managing Exadata Database Backups OTN連載 : もしもみなみんがDBをクラウドで動かしてみたら 第20回
  59. ⾃律型リカバリ・サービス(Autonomous Recovery Service(RCV)) • リアルタイム・データ保護機能(ZRCV)を有効にすることで、REDOログをほぼリアルタイムに転送するため、 データ損失を限りなくゼロにすることが可能 • 保護ポリシー: 14⽇間から95⽇間で設定可能 •

    対象バージョン: DB 19.18 or 21.8 以上 • リアルタイム・データ保護を利⽤しない場合: DB 19.16 or 21.7 以上 • Object Storageに設定していた⾃動バックアップの宛先を 途中から変更することも可能 ⾃動データベース・バックアップ Copyright © 2023, Oracle and/or its affiliates 62 OCI Documentation Database Autonomous Recovery
  60. ランサムウェアへの耐性を究極に⾼めるフルマネージド型データ保護サービス Oracle Database Zero Data Loss Autonomous Recovery Service 63

    ランサムウェアに対する耐性を⾼めます • ファイルを不可視化し、盗難を防⽌ • リアルタイムバックアップにより、感染直前までのリカバリーを可能 • 完全性が担保されたバックアップにより、確実に復旧可能 バックアップにおける、本番環境への影響を極⼩化します • 差分増分バックアップの断⽚を合成し最新のフル・バックアップ相当ファイルを⽣成 • フル・バックアップ相当のファイルをリストアするため、リストア時間が短縮 • 差分増分バックアップ取得のみになるため、週次フル・バックアップは不要 • すべてのバックアップ・ファイルに対する検証をリカバリ・サービス内で実施 クラウドにより、低コストかつシンプルな運⽤管理を実現します • 保護データ量のみに⽐例する価格体系 • ⼤規模なデータベース保護環境を、数クリックで構成可能 • データ保護に関する詳細なインサイトを取得するダッシュボードを提供 暗号化コーはデータベースによって 所有され、データベースによって 管理されます 永久増分バックアップ Zero Data Loss Autonomous Recovery Service ⾃動化 圧縮済 暗号化済 OCI native administration 実績のあるRecovery Applianceの技術を採⽤ リアルタイムの データ保護オプション ExaDB-D BaseDB Copyright © 2023, Oracle and/or its affiliates
  61. • Oracle Databaseにおけるバックアップおよびリカバリ Ø バックアップおよびリストアとリカバリ Ø Oracle Databaseで発⽣する障害タイプおよびリカバリ⽅法 • Oracle

    Recovery Manager (RMAN)を利⽤したバックアップおよびリカバリ Ø フルバックアップ、増分バックアップ Ø 破損検査 • RMANを利⽤するメリット Ø バックアップの⾃動管理 Ø 様々なバックアップ取得が可能 まとめ Copyright © 2023, Oracle and/or its affiliates 64 RMANを使ってバックアップ、リストア およびリカバリの操作を簡単に︕