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

Oracle Database Technology Night #67 Oracle Database High Availability concept

Oracle Database Technology Night #67 Oracle Database High Availability concept

2023年5月25日開催
Oracle Database Technology Night #67
ミッションクリティカルなデータベースに必須となる高可用性の考え方とは

SQLはデータアクセスを抽象化する
Oracle Databaseへのアクセスは「サービス」で抽象化されている
コンピュート・ノードの可用性はクラスタ構成
Real Application Clusters(RAC)はどのノードに接続しても全データにアクセス可能
コネクションを積極的に制御するFast Application NotificationとTransparent Application Continuityで計画停止/非計画停止両方のデータベース・サーバーの停止の影響を極小化する

ストレージの可用性はデータの複製を作成する
ミラー/バックアップ/レプリケーション
Oracle Databaseはなぜストレージの機能でデータを複製せずに自前のソフトウェアでやろうとするのか

oracle4engineer
PRO

May 25, 2023
Tweet

More Decks by oracle4engineer

Other Decks in Technology

Transcript

  1. Oracle Database Technology Night #67
    ミッションクリティカルなデータベースに
    必須となる高可用性の考え方とは
    日下部明
    日本オラクル株式会社
    2023年5月25日

    View Slide

  2. Copyright © 2023, Oracle and/or its affiliates
    2
    「Oracleインスタンス」と「データベース」
    「CPU+メモリー」と「ストレージ」をわけて考える
    データベース
    ストレージ上のファイルの集合
    不揮発性デバイスに永続化
    (データの本体なのでなくなると困る)
    データベース・サーバー
    (Computeノード)
    ストレージ
    Oracleインスタンス
    データベース・サーバー上のOracleプロセスとメモリーの集合
    揮発性メモリーに一時的に格納(キャッシュ)
    (再起動などでなくなることを想定)

    View Slide

  3. Copyright © 2023, Oracle and/or its affiliates
    3
    高可用性を実装する手段
    各階層で冗長性を持たせる
    データベース
    ストレージ上のファイルの集合
    Oracleインスタンス
    データベース・サーバー上のOracleプロセスとメモリーの集合
    揮発性メモリーに一時的に格納(キャッシュ)
    (再起動などでなくなることを想定)
    不揮発性デバイスに永続化
    (データの本体なのでなくなると困る)
    プロセスとメモリーが起動できるOS環境を用意
    データベース・サーバーのクラスタ構成
    データの複製を用意
    ミラー / バックアップ / レプリケーション
    データベース・サーバー
    (Computeノード)
    ストレージ
    後半
    前半

    View Slide

  4. 前半
    Oracle Database高可用性アーキテクチャ
    コンピュート・ノードの可用性

    View Slide

  5. Relational DatabaseとSQLのコンセプト
    • データ操作の抽象化
    • Converged Database
    Oracleクライアントは「サービス」に接続する
    • サービスという抽象概念が物理構成を隠蔽
    Real Application Clustersアーキテクチャ
    • Shared Everything
    データベース・コネクションの制御
    • Fast Application Notification / 高速アプリケーション通知
    • (Transparent) Application Continuity / (透過的)アプリケーション・コンティニュイティ
    Oracle Database高可用性アーキテクチャ - コンピュート・ノードの可用性
    Copyright © 2023, Oracle and/or its affiliates
    5

    View Slide

  6. Copyright © 2023, Oracle and/or its affiliates
    6
    入力と出力の対応関係の定義
    SQL
    出力
    SELECT ename, dname, job, empno, hiredate, loc
    FROM emp, dept
    WHERE emp.deptno = dept.deptno
    ORDER BY ename
    入力
    論理データ構造

    View Slide

  7. Copyright © 2023, Oracle and/or its affiliates
    7
    入力と出力の対応関係の定義
    SQL
    出力
    SELECT ename, dname, job, empno, hiredate, loc
    FROM emp, dept
    WHERE emp.deptno = dept.deptno
    ORDER BY ename
    入力
    論理データ構造
    何を取り出すかの定義であって、どうやって
    導出するかのアルゴリズムは記述されていない

    View Slide

  8. Copyright © 2023, Oracle and/or its affiliates
    8
    インターフェースとアルゴリズム実装の分離
    SQLの結果集合を導出するアルゴリズムは自動生成される
    入力
    出力
    対応関係の定義
    インターフェース
    SQL実行計画
    SQL実行計画探索
    アルゴリズム
    全体最適化問題
    値の分布統計 物理データ構造 ハードウェア・リソース
    論理データ構造

    View Slide

  9. Copyright © 2023, Oracle and/or its affiliates
    9
    入力
    論理データ構造
    インターフェースとアルゴリズム実装の分離
    SQLの結果集合を導出するアルゴリズムは自動生成される
    出力
    対応関係の定義
    インターフェース
    SQL実行計画
    SQL実行計画探索
    アルゴリズム
    全体最適化問題
    値の分布統計 物理データ構造 ハードウェア・リソース
    アプリケーション開発で
    注力すべきところ
    • 論理データ構造
    • クエリー

    View Slide

  10. Copyright © 2023, Oracle and/or its affiliates
    10
    インターフェースとアルゴリズム実装の分離
    データベース・エンジン実装が目指すところ
    出力
    対応関係の定義
    インターフェース
    SQL実行計画
    SQL実行計画探索
    アルゴリズム
    全体最適化問題
    値の分布統計 物理データ構造 ハードウェア・リソース
    入力
    論理データ構造
    論理データ構造の定義と
    インターフェース(SQL)を変更せずに
    アルゴリズム実装が改良される

    View Slide

  11. Copyright © 2023, Oracle and/or its affiliates
    11
    リレーショナル・モデルの操作からはじまったが、他のモデルでも使用されるようになった
    SQL - 抽象化されたデータ操作
    データ・モデル
    • Relational
    • Text Search
    • Object Relational
    • XML
    • JSON
    • Spatial
    • Network
    • ...
    ワークロード
    • オンライン・トランザクション
    • 分析・集計
    • 機械学習
    • ...

    View Slide

  12. Copyright © 2023, Oracle and/or its affiliates
    12
    リレーショナル・モデルの操作からはじまったが、他のモデルでも使用されるようになった
    SQL - 抽象化されたデータ操作
    データ・モデル
    • Relational
    • Text Search
    • Object Relational
    • XML
    • JSON
    • Spatial
    • Network
    • ...
    ワークロード
    • オンライン・トランザクション
    • 分析・集計
    • 機械学習
    • ...
    SQLは抽象データ操作

    異なる種類のデータ・モデルを操作する実装
    異なる種類のワークロードに最適化する実装

    Converged Database

    View Slide

  13. Copyright © 2023, Oracle and/or its affiliates
    13
    抽象化されたデータ操作
    論理データ構造
    user-Bの所有するスキーマ
    service-A
    SQL
    どういうデータを取り出したいかの記述
    (「どうやって」の手続き的アルゴリズムの記述ではない)
    CONNECT user-B/password@host:port/service-A
    データベース・クライアントは「サービス」に接続する
    サービス
    データベースのワークロードを抽象化した概念
    「サービス」の解説
    Oracle Database Technology Night #52
    Oracle Databaseのネットワーク接続

    View Slide

  14. Copyright © 2023, Oracle and/or its affiliates
    14
    抽象化されたデータ操作
    SQL
    どういうデータを取り出したいかの記述
    (「どうやって」の手続き的アルゴリズムの記述ではない)
    CONNECT user-B/password@host:port/service-A
    データベース・クライアントは「サービス」に接続する
    サービス
    データベースのワークロードを抽象化した概念
    service-A
    データベース
    ストレージ上のファイルの集合
    Oracleインスタンス
    データベース・サーバー上のOracleプロセスとメモリーの集合

    View Slide

  15. Copyright © 2023, Oracle and/or its affiliates
    15
    抽象化されたデータ操作
    SQL
    どういうデータを取り出したいかの記述
    (「どうやって」の手続き的アルゴリズムの記述ではない)
    CONNECT user-B/password@host:port/service-A
    データベース・クライアントは「サービス」に接続する
    サービス
    データベースのワークロードを抽象化した概念
    service-A
    データベース
    ストレージ上のファイルの集合
    Oracleインスタンス
    データベース・サーバー上のOracleプロセスとメモリーの集合
    データベース・クライアントは「サービス」に接続

    サービス(抽象)がデータベース・サーバー側の物理構成(具象)を隠蔽

    View Slide

  16. Copyright © 2023, Oracle and/or its affiliates
    16
    SQL
    どういうデータを取り出したいかの記述
    (「どうやって」の手続き的アルゴリズムの記述ではない)
    CONNECT user-B/password@host:port/service-A
    データベース・クライアントは「サービス」に接続する
    サービス
    データベースのワークロードを抽象化した概念
    service-A
    データベース
    ストレージ上のファイルの集合
    Oracleインスタンス
    データベース・サーバー上のOracleプロセスとメモリーの集合
    Maximum Availability Architecture
    • サービスが具象レイヤーの構成を隠蔽
    • サービスへのアクセスを継続
    Maximum Availability Architecture (MAA)
    抽象化されたデータ操作を計画停止/非計画停止どちらがあっても継続する

    View Slide

  17. Copyright © 2023, Oracle and/or its affiliates
    17
    高可用性を実装する手段
    各階層で冗長性を持たせる
    データベース
    ストレージ上のファイルの集合
    Oracleインスタンス
    データベース・サーバー上のOracleプロセスとメモリーの集合
    揮発性メモリーに一時的に格納(キャッシュ)
    (再起動などでなくなることを想定)
    不揮発性デバイスに永続化
    (データの本体なのでなくなると困る)
    プロセスとメモリーが起動できるOS環境を用意
    データベース・サーバーのクラスタ構成
    データの複製を用意
    ミラー / バックアップ / レプリケーション
    データベース・サーバー
    (Computeノード)
    ストレージ

    View Slide

  18. Copyright © 2023, Oracle and/or its affiliates
    18
    文脈によって意味が異なる用語
    サービス / インスタンス / データベース
    データベース・サーバー
    (Computeノード)
    ストレージ
    サービス
    クラウドが用意する機能のメニュー
    データベース
    データの集合
    インスタンス
    サービスを実体化したもの
    service
    Oracleインスタンス
    データベース・サーバー上の
    Oracleプロセスとメモリーの集合
    データベース
    ストレージ上のファイルの集合
    サービス
    データベースのワークロードを抽
    象化した概念
    Oracle Databaseの文脈 クラウドの文脈
    例: Oracle Base Database Service

    View Slide

  19. Real Application Clusters
    Shared Everything Cluster

    View Slide

  20. Copyright © 2023, Oracle and/or its affiliates
    20
    全ノードが全データにアクセス可能
    RACの物理構成
    ストレージ・ネットワーク
    インターコネクト・ネットワーク
    パブリック・ネットワーク
    データベース・クライアント
    クライアントとの通信
    ストレージ・ノード
    • ストレージ・デバイス
    コンピュート・ノード
    • CPU+メモリー
    • 全ノードが対等な関係
    コンピュート・ノード間の通信
    全コンピュート・ノードは全ストレージにアクセス可能

    View Slide

  21. Copyright © 2023, Oracle and/or its affiliates
    21
    ユーザーからは透過的に複数CPUで処理可能
    共有メモリー型マルチ・プロセッサ
    RACは共有メモリー型マルチ・プロセッサと同じくキャッシュ一貫性を維持
    キャッシュ・メモリー キャッシュ・メモリー
    キャッシュ一貫性
    CPU 1 CPU 2
    SGA
    DRAM (メイン・メモリー)

    View Slide

  22. Copyright © 2023, Oracle and/or its affiliates
    22
    Oracle Real Application Clusters
    DRAM
    (キャッシュ・メモリー)
    ユーザーからは透過的に複数CPUで処理可能
    共有メモリー型マルチ・プロセッサ
    RACは共有メモリー型マルチ・プロセッサと同じくキャッシュ一貫性を維持
    ノード1
    (キャッシュ)
    ノード2
    (キャッシュ)
    データベース (ストレージ上のファイル群)
    DRAM
    (キャッシュ・メモリー)
    キャッシュ一貫性
    キャッシュ・メモリー キャッシュ・メモリー
    キャッシュ一貫性
    CPU 1 CPU 2
    SGA
    DRAM (メイン・メモリー)

    View Slide

  23. Copyright © 2023, Oracle and/or its affiliates
    23
    データ・モデル(スキーマ構造)、トランザクション分離レベルの挙動も同じ
    クライアントはどのノードに接続してもシングル・インスタンス構成と同じアクセスが可能
    ストレージ・ノード
    • ストレージ・デバイス
    コンピュート・ノード
    • CPU+メモリー
    • 全ノードが対等な関係
    インターコネクト・ネットワーク コンピュート・ノード間の通信
    全コンピュート・ノードは全ストレージにアクセス可能
    パブリック・ネットワーク
    データベース・クライアント
    クライアントとの通信
    ストレージ・ネットワーク
    メモリー一貫性を全自
    動で維持
    oracle
    クライアントが接続した
    ノードのプロセスがSQL
    処理

    View Slide

  24. Copyright © 2023, Oracle and/or its affiliates
    24
    どのノードからも全データに同じようにアクセス可能 - クライアントから見るとシングル・インスタンス構成と同じ
    RAC におけるデータアクセス
    データベース・クライアント
    クライアントはどのサーバーに接続しても
    同じデータの見え方、シングルインスタンス
    と同じトランザクション分離レベル
    サーバー・ノード間のメモリー
    一貫性を全自動で維持
    シングル・インスタンス構成と同じアクセスが可能
    • データ・モデル(スキーマ構造)、トランザクション分離レベルの挙動も同じ
    並列実行プロセスがデータを
    分割して並列処理
    PX PX PX PX PX PX
    データベース・クライアント
    全ノードを使用した1つのSQL処理の並列化が可能
    • アプリからは巨大な一つのデータベースインスタンスに見える

    View Slide

  25. Copyright © 2023, Oracle and/or its affiliates
    25
    データ・モデルとクラスタ・ノード構成が分離されている
    現実にあるほとんどのアプリケーション・スキーマは完全には
    パーティショニングできない。
    RACはデータの配置がデータベース・サーバーと結びつい
    ていない。
    シェアード・ナッシング・クラスタはデータがパーティショニング
    できることを暗黙の前提にしている。
    →ユーザーが自分のデータしか操作しない局所参照性
    パーティショニングできないアプリケーション・スキーマでも動
    作できるようにしたのが”Real Application” Clusters
    Oracle Real Application Clusters
    データ・モデル/SQL
    抽象
    実装
    データ構造/クラスタ構成

    View Slide

  26. Copyright © 2023, Oracle and/or its affiliates
    26
    Oracle Autonomous Database
    Exadataをベースにして高度な抽象化がなされた自律型データベース・サービス
    Exadata上のプラガブル・データベース
    • 指定する変数はOCPU数とストレージ容量のみ
    • RACノード数はユーザーが指定する変数ではない
    Oracle Computing Unit (OCPU)
    • スケールアップかつスケールアウトを抽象化
    • OCPU数に比例したCPU時間
    • OCPU数に比例したメモリー容量
    • OCPU数に比例したストレージ性能
    • 1 OCPUは1CPU物理コアに相当
    • 無停止でOCPU数(リソース割り当て)を変更
    service

    View Slide

  27. Copyright © 2023, Oracle and/or its affiliates
    27
    Oracle Autonomous Database
    Oracle Computing Unit(OCPU) の1変数にハードウェア・リソースを抽象化
    DBサーバー
    ストレージ
    Oracle Computing Unit (OCPU)
    • 1 OCPUは1CPU物理コアに相当
    • スケール・アップかつスケール・アウトを抽象化
    • OCPU数に比例したCPU時間
    • OCPU数に比例したメモリー容量
    • OCPU数に比例したストレージ性能
    • 無停止でOCPU数(リソース割り当て)を変更
    CPU
    メモリー
    Autonomous Databaseインスタンス
    • 1つのプラガブル・データベースのこと
    • OCPUに抽象化されたリソース割り当て
    • サービスでリソース制御
    スケール・アップ
    スケール・アウト
    サービス
    • データベースのワークロードを抽象化
    service

    View Slide

  28. Copyright © 2023, Oracle and/or its affiliates
    28
    サーバーがクラッシュしてもクライアントは別ノードに接続すると全データにアクセス可能
    クライアントはどのノードに接続してもシングル・インスタンス構成と同じアクセスが可能
    ストレージ・ノード
    • ストレージ・デバイス
    コンピュート・ノード
    • CPU+メモリー
    • 全ノードが対等な関係
    全コンピュート・ノードは全ストレージにアクセス可能
    パブリック・ネットワーク
    データベース・クライアント
    クライアントとの通信
    ストレージ・ネットワーク
    メモリー一貫性を全自
    動で維持
    oracle
    クライアントが接続した
    ノードのプロセスがSQL
    処理
    oracle

    View Slide

  29. 一時的にパッチ状態が異なるOracleバイナリでRACを稼働させられる
    RACはローリング・パッチ適用可能 - 全体としてはデータベース・アクセスを維持
    Copyright © 2023, Oracle and/or its affiliates
    29
    RU 19.17 RU 19.17 RU 19.17
    ノード 1 ノード 2 ノード 3
    RU: Release Update 3か月ごとに提供される集積パッチ
    shutdown
    (1) ノード1にパッチを適用するためプロセス停止
    他のノードがデータベース・アクセスを維持
    RU 19.18 RU 19.17 RU 19.17
    ノード 1 ノード 2 ノード 3
    (2) ノード1にパッチを適用したバイナリでプロセス起動
    一時的にパッチ状態が異なるバイナリで稼働可能
    startup

    View Slide

  30. 定期的に提供される集積パッチ(Release Update, Monthly Recommended Patches)はRACローリング適用可能
    RACローリング適用可能なパッチ - READMEに記載がある
    Copyright © 2023, Oracle and/or its affiliates
    30
    can be applied in a rolling fashion.

    View Slide

  31. Fast Application Notification (FAN) と Transparent Application Continuity (TAC)
    データベース・コネクションを積極的に制御する
    Copyright © 2023, Oracle and/or its affiliates
    31
    RU 19.17 RU 19.17 RU 19.17
    ノード 1 ノード 2 ノード 3
    shutdown
    Fast Application Notification
    コネクション・プールが物理コネクションを制御する
    • 計画停止 - Oracleインスタンスshutdown前に物理
    コネクションをアプリケーションから返却されたら切断す

    • 非計画停止 - コネクション・プールから該当物理コネク
    ションを即時破棄
    • サービス起動 - 物理コネクションのリバランス
    Transparent Application Continuity
    接続ドライバによる自動再実行
    • 非計画停止 - 物理コネクションが異常切断されたら
    自動再接続して自動再実行
    startup
    Connection
    Pool

    View Slide

  32. Copyright © 2023, Oracle and/or its affiliates
    32
    Fast Application Notification: FAN / 高速アプリケーション通知
    Oracle ClusterwareからOracleクライアントにメッセージ通知する仕組み
    Fast Application Notification (FAN)
    • Oracle Clusterwareからクライアントにイベント通知
    Oracle製コネクション・プールがFAN対応
    • Universal Connection Pool for Java (UCP)
    • Oracle Call Interface(OCI) Session Pool
    • ODP.NET Unmanaged Driver
    Fast Connection Failover
    • DOWNイベントによるコネクション破棄
    • 計画停止/非計画停止を区別
    • UPイベントによるコネクション作成(UCP)
    Runtime Connection Load Balancing
    • リクエストを発行するOracleインスタンスを制御
    • 物理コネクションのリバランス
    Connection
    Pool
    ノード 1 ノード 2
    アプリケーション・サーバー
    Clusterware Clusterware
    FANイベント
    FANイベント
    service service

    View Slide

  33. Copyright © 2023, Oracle and/or its affiliates
    33
    Oracleインスタンスの異常停止を検出したらそのインスタンスとの物理コネクションを即時破棄
    1. OS即時停止 2. 物理コネクションの破棄
    FAN対応クライアントと組み合わせたOracleインスタンスの非計画停止
    Oracle
    instance1
    Oracle
    instance2
    service1 service1
    Oracleクライアント
    Clusterware Clusterware
    FANイベント
    Oracle
    instance1
    Oracle
    instance2
    service1
    Clusterware Clusterware
    Pool
    Oracleクライアント
    (3) インスタンス2との物理コ
    ネクションを即時破棄
    (2) DOWN通知
    Pool
    TCPタイムアウトを待たない
    (1) 異常終了

    View Slide

  34. Copyright © 2023, Oracle and/or its affiliates
    34
    コマンドでサービス停止が発生する場合プールに論理コネクションが返却されてから物理コネクションを切断
    1. srvctl relocate service発行 2. 物理コネクションの新規接続と排出
    FAN対応クライアントと組み合わせたOracleインスタンスの計画停止
    Oracle
    instance1
    Oracle
    instance2
    service1 service1
    Oracleクライアント
    Clusterware Clusterware
    FANイベント Pool
    (2) UP通知
    Oracle
    instance1
    Oracle
    instance2
    service1
    Clusterware Clusterware
    Pool
    Oracleクライアント
    (6) インスタンス1との物理
    コネクションはアプリケー
    ションがプールに返却し
    たら切断
    (1) サービス起動
    (4) DOWN通知
    (5) 新規の物理コネク
    ションはインスタンス
    2に接続される
    (3) サービス停止

    View Slide

  35. Copyright © 2023, Oracle and/or its affiliates
    35
    物理コネクションが異常切断されても更新トランザクションを安全に自動再実行
    アプリケーション・コンティニュイティ対応接続ドライバは
    Oracleサーバーに発行した処理を記憶している。
    Oracle接続ドライバがセッション切断を検出すると
    (1) 再接続
    (2) トランザクション状態の確認
    (3) トランザクション再実行
    まで自動で行う。
    アプリケーションから見るとエラーを検出せずにトランザ
    クションが完了する。
    Oracle製コネクション・プールからコネクションを取り出
    してCOMMITしたら返却するコードならコード改修は
    (ほぼ)不要。
    (Transparent) Application Continuity
    (透過的)アプリケーション・コンティニュイティ
    (1) 再接続
    (2) 状態確認
    (3) 再実行
    Oracleクライアント
    RAC
    SELECT
    INSERT
    UPDATE
    COMMIT
    Application Continuityの解説
    Oracle Database Technology Night #39
    アプリケーション・コンティニュイティ

    View Slide

  36. Copyright © 2023, Oracle and/or its affiliates
    36
    抽象化されたデータ操作
    SQL
    どういうデータを取り出したいかの記述
    (「どうやって」の手続き的アルゴリズムの記述ではない)
    CONNECT user-B/password@host:port/service-A
    データベース・クライアントは「サービス」に接続する
    サービス
    データベースのワークロードを抽象化した概念
    service-A
    データベース
    ストレージ上のファイルの集合
    Oracleインスタンス
    データベース・サーバー上のOracleプロセスとメモリーの集合
    Oracleインスタンスの可用性
    • RAC: 全ノードが全データにアクセス可能
    • FAN & TAC: 計画停止と非計画停止両方でコネクションを制御

    View Slide

  37. 後半
    Oracle Database 高可用性アーキテクチャ
    データ保護

    View Slide

  38. ストレージ上のデータの複製手段
    • ミラー
    • バックアップ
    • レプリケーション
    • (スナップショット)
    Oracle Database 高可用性アーキテクチャ - データ保護
    Copyright © 2023, Oracle and/or its affiliates
    38
    Oracle Databaseはなぜ自前で複製しようとするのか
    • ミラー ASM
    • バックアップ RMAN
    • (スナップショット) Flashback
    • レプリケーション (Active) Data Guard
    • バックアップ+レプリケーション Zero Data Loss
    Recovery Appliance

    View Slide

  39. 「バックアップ」という言葉はあいまいに使われている
    • 「複製されたデータ」を指す
    • 「データの複製を作る操作」を指す
    ここではバックアップとは「データの複製を作る操作」を指す
    データを複製する手段
    • バックアップ: バックアップ操作をした時点のデータの複製
    • ミラー: 継続的なデータの複製 (ローカル・ストレージ)
    • レプリケーション: 継続的なデータの複製 (リモート・ストレージ)
    • (スナップショット)
    データの複製手段
    Copyright © 2023, Oracle and/or its affiliates
    39

    View Slide

  40. ミラー/レプリケーション/バックアップ
    ストレージ機能でのデータの複製
    Copyright © 2023, Oracle and/or its affiliates
    40
    ストレージ・コントローラ ストレージ・コントローラ
    リモート・レプリケーション (レプリケーション)
    • 別のストレージ筐体に書き込みを複製
    RAID (ミラー)
    • 複数のストレージ・デバイスに書き込みを複製
    スプリット・ミラー (バックアップ)
    • ミラーを一時的に解除することで
    その時点のストレージの状態を保持
    データ

    View Slide

  41. スナップショット - 過去の部分更新を保持して全体イメージを合成
    Copyright © 2023, Oracle and/or its affiliates
    41
    最新データ 過去データ
    更新前の過去データを複製して保持
    最新データと過去データを合成
    アプリケーションに見せる仮想ストレージ・イメージ
    物理ストレージ
    最新イメージ 過去イメージ

    View Slide

  42. 物理ストレージが破損すると全イメージが破損する - バックアップに非ず
    スナップショット - 過去の部分更新を保持して全体イメージを合成
    Copyright © 2023, Oracle and/or its affiliates
    42
    最新データ 過去データ
    更新前の過去データを複製して保持
    最新イメージ 過去イメージ
    最新データと過去データを合成
    アプリケーションに見せる仮想ストレージ・イメージ
    物理ストレージ

    View Slide

  43. 書き込むデータが意味的に正常なのかはストレージは判別できないのでデータ破損が伝搬する
    ストレージ機能でのデータの複製
    Copyright © 2023, Oracle and/or its affiliates
    43
    ストレージ・コントローラ ストレージ・コントローラ
    リモート・レプリケーション (レプリケーション)
    • 別のストレージ筐体に書き込みを複製
    RAID (ミラー)
    • 複数のストレージ・デバイスに書き込みを複製
    スプリット・ミラー (バックアップ)
    • ミラーを一時的に解除することで
    その時点のストレージの状態を保持
    破損データ

    View Slide

  44. Oracle Databaseはなぜデータの複製を
    Oracleソフトウェアでやろうとするのか

    View Slide

  45. ストレージ・デバイスが故障していなくても、格納されている
    ファイルのデータが破損している場合がある。
    エラー・ログを出力するのは、その異常を検出した階層。
    異常検出能力のない階層はエラー・ログを出力できない。
    データを破損させた階層が破損させたことを直接ログに記
    録していることは期待できない。
    ストレージのデータを破損させる要因
    • CPU/メモリー故障
    • レーザー出力不安定
    • 電源障害
    • ランサムウェア
    • ...
    データを失う要因はストレージ・デバイスの故障以外にもある
    Copyright © 2023, Oracle and/or its affiliates
    45
    Oracle Database
    OS
    Multipath Driver
    Device Driver
    Host Bus Adapter
    Storage Controller
    Network
    CPU/Memory
    ?
    ERROR
    ?

    View Slide

  46. Oracle Databaseの歴史はデータ破損との闘い
    Oracle Databaseはなぜデータの複製をOracleソフトウェアでやろうとするのか
    Copyright © 2023, Oracle and/or its affiliates
    46
    Oracleインスタンス 破損検査

    破損伝搬の抑止

    自動修復
    実装バージョン 機能名 機能
    Oracle8 RMAN バックアップ・リストア・リカバリ
    Oracle9i Database Data Guard REDO情報を別サーバーに転送
    Oracle Database 10g ASM ストレージの冗長化+自動修復
    Oracle Database 11g Exadata Oracle専用ストレージがデータ構造を検査
    Oracle Database 11g Active Data Guard Data Guard+自動修復
    (Oracle Database 12c) ZDLRA RMANバックアップ+REDO転送を備えたOracle
    専用バックアップ・アプライアンス
    • データ構造がOracle Databaseとして正しいかを検査できるのは
    Oracle自身しかない
    • ある階層から別の階層に移動させるとき検査される
    • 破損が次の階層に伝搬しない
    • データの複製がある場合は自動修復を試みる

    View Slide

  47. Automatic Storage Management (ASM)
    データベース・ストレージのストライプ&ミラー

    View Slide

  48. Oracle Database専用のクラスタ・ボリューム・マネージャ兼クラスタ・ファイルシステム
    Oracle Automatic Storage Management
    Copyright © 2023, Oracle and/or its affiliates
    48
    デバイス・
    ファイル
    ファイル構造
    Oracle構造
    POSIXファイルシステム
    ボリューム・マネージャ
    ファイルシステム
    表、索引
    表領域
    ファイル
    ASM
    ASM
    表、索引
    表領域
    ボリューム・マネージャ
    ファイルシステム
    ファイル
    管理者から見た操作の階層はどちらもディレクトリ・ツリーとファイルで同じ
    RAIDとは異なる実装で
    • ストレージ・デバイスの障害に対処可能
    • データ破損を検出すると自動修復
    「ASM」の解説
    Oracle Database Technology Night #40
    Oracle Databaseのデータ・プロテクション詳解 後半

    View Slide

  49. どのファイルへのアクセスもストレージの性能を最大限引き出す
    ファイルを分割し、すべてのストレージ・デバイスに均等に分散する。
    ストレージ・デバイスが増減しても、再配置して均等を維持する。
    ASMのファイル配置コンセプト1
    Copyright © 2023, Oracle and/or its affiliates
    49
    ASM上のファイル
    extent extent extent
    ASMエクステント

    View Slide

  50. どのファイルも冗長化して障害に対処する
    • ファイルを分割しミラーを用意する。
    • ミラーは異なる障害グループ(FAILGROUP)のストレージ・デバイスに配置する。
    • ストレージ・デバイスが増減しても、再配置して冗長構成を維持する。
    ASMのファイル配置コンセプト2
    Copyright © 2023, Oracle and/or its affiliates
    50
    ASM上のファイル
    extent extent extent
    FAILGROUP 1 FAILGROUP 2 FAILGROUP 3 FAILGROUP n
    プライマリ・エクステント セカンダリ・エクステント セカンダリ・エクステント
    FAILGROUP ≒ 1つのストレージ筐体
    ASMエクステント
    1つのFAILGROUPが停止してもそのエクステントのミラーが他のFAILGROUPにある

    View Slide

  51. Stripe And Mirror Everything (S.A.M.E.)
    ファイルを分割し、
    • すべてのストレージ・デバイスに均等に分散する ⇒Stripe
    • ミラーは異なる障害グループ(FAILGROUP)のストレージ・デバイスに配置する ⇒Mirror
    そしてストレージ・デバイスが増減してもリバランスすることでStripeとMirrorを維持する
    ASMのファイル配置コンセプト
    Copyright © 2023, Oracle and/or its affiliates
    51
    1 2 3 4
    3 6 1 7
    5 6 7 8
    4 2 8 5
    異なるデバイスに
    ミラーリング
    すべてのデバイスにストライピング
    プライマリ・エクステント
    ASM上のファイル
    extent extent extent
    セカンダリ・エクステント
    ASMエクステント

    View Slide

  52. ストレージ・デバイスが増減してもStripe And Mirror Everything (S.A.M.E.)を維持する
    ストレージ・デバイスが故障して使用できなくなったらASMディスク・グループから削除
    ⇒エクステントを失うので既存ストレージ・デバイスにエクステントを追加して冗長性(2重化および3重化)を回復
    ASMディスク・グループにストレージ・デバイスを追加
    ⇒既存ストレージ・デバイスのエクステントを追加ストレージ・デバイスに移し替えてストライプ性能向上
    動的リバランス
    Copyright © 2023, Oracle and/or its affiliates
    52
    α
    β
    追加
    β
    α
    α
    β
    削除
    α
    β
    α β

    View Slide

  53. ASMファイルの破損が検出されるとセカンダリ・エクステントから読み取って処理継続および自動修復
    ファイルの破損検出と自動修復
    Copyright © 2023, Oracle and/or its affiliates
    53
    oracle
    Oracleサーバー・プロセス
    SGA
    1. プライマリ・エクステントの
    破損を検出した
    2. セカンダリ・エクステントから読
    み取りエラーを返さず処理継続
    1 2 3
    3 1 1
    プライマリ・
    エクステント
    セカンダリ・
    エクステント
    3. 正常エクステントのデータで
    破損個所を修復
    ASMディスク・グループ

    View Slide

  54. データベースのバックアップ・リストア・リカバリ

    View Slide

  55. 「Oracleインスタンス」と「データベース」
    Copyright © 2023, Oracle and/or its affiliates
    55
    アーカイブREDOログ・ファイル
    • オンラインREDOログ・ファイルの
    バックアップ
    オンラインREDOログ・ファイル
    • 更新の履歴
    • 1本書き込み完了したら複製
    データファイル
    • 表データの本体
    Oracleインスタンス
    データベース・サーバー上の
    プロセスとメモリーの集合
    データベース
    ストレージ上のファイルの集合

    View Slide

  56. Copyright © 2023, Oracle and/or its affiliates
    56
    Oracleサーバー・プロセスがメモリを更新しバックグラウンド・プロセスがファイルに永続化
    Oracle Databaseアーキテクチャ
    REDOログ・バッファ
    (REDOレコード用の書き込みバッファ・メモリー)
    オンラインREDOログ・ファイル
    LGWR
    oracle oracle
    Oracleサーバー・プロセス
    ログ・ライター・プロセス
    データベース・バッファ・キャッシュ
    (データブロック用のキャッシュ・メモリー)
    DBWn データベース・ライター・プロセス
    データファイル
    SGA
    oracle
    Oracleサーバー・プロセスによる
    SQL処理はメモリーを更新
    バックグラウンド・プロセスが
    ファイルに永続化 OS
    REDO

    View Slide

  57. データファイルのコピーとREDOログの適用
    バックアップおよびリストア・リカバリ
    Copyright © 2023, Oracle and/or its affiliates
    57
    REDOログ・ファイル
    • 更新の履歴
    データファイル
    • データの本体
    用語 意味
    バックアップ (主にデータファイル) ファイルのコピーを取得すること
    リストア バックアップ・ファイルから書き戻すこと
    リカバリ REDOログをデータ・ブロックに適用すること
    Oracle Databaseではリストアとリカバリはセット
    REDOログ・ファイルの情報でデータファイルの内容を破損直前までもどす

    View Slide

  58. バックアップおよびリストア・リカバリ
    Copyright © 2023, Oracle and/or its affiliates
    58
    INSERT
    UPDATE
    DELETE
    オンラインREDOログ
    時間
    データベースの更新はオンラインREDOログ・
    ファイルに記録される。
    時間

    View Slide

  59. バックアップおよびリストア・リカバリ
    Copyright © 2023, Oracle and/or its affiliates
    59
    INSERT
    UPDATE
    DELETE
    オンラインREDOログ
    時間
    アーカイブ・REDOログ
    オンラインREDOログ・ファイルは固定長循環
    型なので、書き込み完了したファイルはアーカ
    イブREDOログ・ファイルにコピーされる。
    時間

    View Slide

  60. バックアップおよびリストア・リカバリ
    Copyright © 2023, Oracle and/or its affiliates
    60
    INSERT
    UPDATE
    DELETE
    時間
    時刻t0
    バックアップ
    (データファイルのコピー)
    時間
    時刻t0に取得したデータ・ファイルのバックアッ
    プには最新でも時刻t0までの情報しか含ま
    れていない。
    INSERT
    UPDATE
    DELETE

    View Slide

  61. バックアップおよびリストア・リカバリ
    Copyright © 2023, Oracle and/or its affiliates
    61
    INSERT
    UPDATE
    DELETE
    オンラインREDOログ
    アーカイブREDOログ
    時間
    時刻t0 時刻t1
    INSERT
    UPDATE
    DELETE
    INSERT
    UPDATE
    DELETE
    バックアップ
    (データファイルのコピー)
    時間
    時刻t1にデータファイルの破損を検出した。

    View Slide

  62. バックアップおよびリストア・リカバリ
    Copyright © 2023, Oracle and/or its affiliates
    62
    INSERT
    UPDATE
    DELETE
    オンラインREDOログ
    アーカイブREDOログ
    時間
    時刻t0 時刻t1
    データファイル障害発生
    INSERT
    UPDATE
    DELETE
    INSERT
    UPDATE
    DELETE
    バックアップ
    (データファイルのコピー)
    リストア
    (データファイルの書き戻し)
    時刻t0に取得したデータ・ファイルのバックアッ
    プには最新でも時刻t0までの情報しか含ま
    れていない。

    View Slide

  63. バックアップおよびリストア・リカバリ
    Copyright © 2023, Oracle and/or its affiliates
    63
    INSERT
    UPDATE
    DELETE
    オンラインREDOログ
    アーカイブREDOログ
    時間
    時刻t0 時刻t1
    データファイル障害発生
    INSERT
    UPDATE
    DELETE
    INSERT
    UPDATE
    DELETE
    リカバリ
    (REDOログの適用)
    バックアップ
    (データファイルのコピー)
    リストア
    (データファイルの書き戻し)
    データファイルの状態が
    時刻t1まで復元される。

    View Slide

  64. Recovery Manager (RMAN)
    破損検査付きバックアップおよびリストア・リカバリ

    View Slide

  65. 推奨はRMAN
    • Oracle付属のバックアップ・ツール
    • Oracleサーバー・プロセスがデータベースのファイルにア
    クセスする仕組みを使ってファイルをコピー
    • Oracleインスタンス管理下で行われる操作
    • RMAN以外の方法でコピーするすべての手法
    • Oracleインスタンスがコピーを関知しない
    • OSのファイル・コピー・コマンド
    • ストレージ機能のスナップショットやスプリット・ミラー
    Oracle Databaseの2種類の物理バックアップ手法
    Copyright © 2023, Oracle and/or its affiliates
    65
    oracle
    rman
    データファイル
    (コピー元)
    バックアップ
    (コピー先)
    スナップショット
    スプリット・ミラー
    Recovery Manager (RMAN) ユーザー管理バックアップ
    RMANクライアント
    Oracleサーバー・
    プロセス
    コピー元ボリューム バックアップ・ボリューム

    View Slide

  66. 確実にリカバリするための"Recovery" Manager
    • コピー時に破損検査が行われる
    • 破損が伝搬しない
    • バックアップしたファイルの破損検査も可能
    • 破損領域がそのままコピーされる
    • バックアップも破損している場合がある
    • 誤った単位でボリュームをコピーしているとリカバリ時に
    なってはじめてリカバリ不能に気付く
    ファイル・コピー中のブロック破損検査
    Copyright © 2023, Oracle and/or its affiliates
    66
    oracle
    rman
    データファイル
    (コピー元)
    バックアップ
    (コピー先)
    スナップショット
    スプリット・ミラー
    Recovery Manager (RMAN) ユーザー管理バックアップ
    RMANクライアント
    Oracleサーバー・
    プロセス
    コピー元ボリューム バックアップ・ボリューム

    View Slide

  67. データベース本体の破損に備えるためのバックアップ
    データベース本体とバックアップ用ストレージは分ける
    Copyright © 2023, Oracle and/or its affiliates
    67
    オンラインREDOログ・ファイル
    • 更新の履歴
    データファイル
    • データの本体
    アーカイブREDOログ・ファイル
    • オンラインREDOログ・ファイルの
    バックアップ
    データファイル
    • データファイルの
    バックアップ
    データベース本体用ストレージ バックアップ用ストレージ
    データベース・サーバー
    ストレージ・ネットワーク

    View Slide

  68. 最新の更新情報はオンラインREDOログ・ファイルにしかない
    Copyright © 2023, Oracle and/or its affiliates
    68
    アーカイブREDOログ・ファイル
    • オンラインREDOログ・ファイルの
    バックアップ データファイル
    • 表データの本体
    Oracleインスタンス
    データベース・サーバー上の
    プロセスとメモリーの集合
    データベース
    ストレージ上のファイルの集合
    最新の更新情報
    オンラインREDOログ・ファイル
    • 更新の履歴
    • 1本書き込み完了したら複製

    View Slide

  69. 書き込み真っ最中のオンラインREDOログ・ファイルは複製できない
    「バックアップ」操作で複製できる範囲
    Copyright © 2023, Oracle and/or its affiliates
    69
    Oracleインスタンス
    データベース・サーバー上の
    プロセスとメモリーの集合
    データベース
    ストレージ上のファイルの集合
    「バックアップ」操作で複製できる範囲
    オンラインREDOログ・ファイル
    • 更新の履歴
    • 1本分書き込み完了したら複製
    アーカイブREDOログ・ファイル
    • オンラインREDOログ・ファイルの
    バックアップ データファイル
    • 表データの本体
    追記中のオンラインREDOログ・
    ファイルは複製できない

    View Slide

  70. データベース本体用ストレージ
    オンラインREDOログ・ファイルが格納されているストレージが全損すると
    Copyright © 2023, Oracle and/or its affiliates
    70
    INSERT
    UPDATE
    DELETE
    オンラインREDOログ
    アーカイブREDOログ
    時間
    時刻t0 時刻t1
    ストレージ障害発生
    INSERT
    UPDATE
    DELETE
    INSERT
    UPDATE
    DELETE
    リカバリ
    (REDOログの適用)
    バックアップ
    (データファイルのコピー)
    リストア
    (データファイルの書き戻し)
    最新のトランザクション
    情報を失う

    View Slide

  71. (Active) Data Guard
    最新のREDOの情報をリモート・データベースに転送

    View Slide

  72. プライマリ・データベース用ストレージが全損しても最新のREDO情報が別の場所にある
    REDO情報が生成されたら即時に別のサーバーに転送:(Active) Data Guard
    Copyright © 2023, Oracle and/or its affiliates
    72
    オンラインREDOログ・ファイル
    • 更新の履歴
    プライマリ・データベース用ストレージ スタンバイ・データベース用ストレージ
    プライマリ・データベース・サーバー
    ネットワーク
    メモリー(REDOログ・バッファ)上
    にREDO情報が生成されたら
    転送開始
    スタンバイREDOログ・ファイル
    • プライマリのREDO情報の受信
    REDOログ・バッファ
    スタンバイ・データベース・サーバー

    View Slide

  73. プライマリ・データベースのREDO情報でデータファイルをリカバリし続ける
    (Active) Data Guard:プライマリ・データベースと全く同じ内容になる
    Copyright © 2023, Oracle and/or its affiliates
    73
    オンラインREDOログ・ファイル
    • 更新の履歴
    プライマリ・データベース用ストレージ スタンバイ・データベース用ストレージ
    プライマリ・データベース・サーバー
    ネットワーク
    リカバリ継続
    スタンバイ・データベース・サーバー
    REDOログ・バッファ
    データファイル
    プライマリと同一内容

    View Slide

  74. (Active) Data Guard:リモートでリストア&リカバリを継続
    Copyright © 2023, Oracle and/or its affiliates
    74
    INSERT
    UPDATE
    DELETE
    オンラインREDOログ
    時間
    時刻t0
    INSERT
    UPDATE
    DELETE
    INSERT
    UPDATE
    DELETE
    バックアップ
    (データファイルのコピー)
    リストア
    (データファイルの書き戻し)
    スタンバイ・データベース
    プライマリ・データベース
    REDO転送
    リカバリ
    (REDOログの適用) 最新のトランザクション
    情報が複製される
    REDO転送

    View Slide

  75. データ・ブロックの破損が検出されると対向データベースから正常ブロックを取り寄せてリカバリ
    Active Data Guard自動ブロック・メディア・リカバリ
    オンライン
    REDOログ・
    ファイル
    oracle
    Oracleサーバー・プロセス
    データファイル
    SGA
    1. データ・ブロックの破損を
    検出した
    データベース・
    バッファ・
    キャッシュ
    データファイル
    SGA
    プライマリ・データベース スタンバイ・データベース
    2. 該当データ・ブロックを
    取り寄せる
    3. リカバリ
    4. SQL処理は
    エラーなく継続
    ※スタンバイ・データベースでブロック破損が検出されるとプライマリ・
    データベースから該当ブロックを取り寄せてリカバリ
    Copyright © 2023, Oracle and/or its affiliates
    75

    View Slide

  76. Flashback Database
    過去のある時点のデータにもどしたい

    View Slide

  77. ファイルの破損ではなく、SQLが正常に実行されていった後での話
    ポイント・イン・タイム・リカバリ
    1. 該当データファイルのフル・バックアップからリストアする。
    2. リカバリを途中で止める。
    ⇒データファイルのサイズが大きいとリストアにかなり時間がかかる。
    Flashback
    1. 変更前データ・ブロック(UNDO表領域)の情報のバックアップをFast Recovery Areaに取り意図的に長時間保持。
    2. 変更前データ・ブロックの情報をリストアして過去のデータにアクセスする。
    ⇒ポイント・イン・タイムリカバリよりも早い。
    過去のある時点のデータにもどしたい
    Copyright © 2023, Oracle and/or its affiliates
    77

    View Slide

  78. ポイント・イン・タイム・リカバリ
    0. 戻したい時刻(t1)より前の時刻のフル・バックアップがあることが前提
    1. 戻したい時刻(時刻t1)より前(時刻t0)のフル・バックアップからリストアする。
    2. リカバリを途中(時刻t1まで)で止める。
    ⇒データファイルのサイズが大きいとリストアにかなり時間がかかる。
    過去のある時点のデータにアクセスしたい
    Copyright © 2023, Oracle and/or its affiliates
    78
    オンラインREDOログ
    アーカイブREDOログ
    時間
    時刻t0 時刻t2
    2.リカバリ
    (REDOログの適用)
    0.バックアップ
    (データファイルのコピー)
    1.リストア
    (データファイルの書き戻し)
    時刻t1
    リカバリを時刻t1までで止める 最新データの時刻はt2

    View Slide

  79. 指定した時刻までデータベースの状態を戻す
    Flashback Database
    0. Flashback Databaseを有効にすると、UNDOブロックのバックアップがFast Recovery Areaに取られる
    1. 戻したい指定時刻(時刻t1)より前のUNDOブロックをリストア
    2. リカバリを途中(時刻t1まで)で止める。
    ⇒データファイル全体をリストアするポイント・イン・タイムリカバリより速いし簡単
    Flashback Database
    Copyright © 2023, Oracle and/or its affiliates
    79
    オンラインREDOログ
    アーカイブREDOログ
    時間
    時刻t0 時刻t2
    2.リカバリ
    (REDOログの適用)
    0.Flashback Log
    (UNDOブロックのバックアップ)
    1.リストア
    (UNDOブロックの書き戻し)
    時刻t1
    リカバリを時刻t1までで止める 最新データの時刻はt2

    View Slide

  80. Flashback Database/Data Guard/バックアップがカバーする範囲は異なる
    Copyright © 2023, Oracle and/or its affiliates
    80
    INSERT
    UPDATE
    DELETE
    時刻t1
    バックアップ
    (長期間の過去状態の保存)
    時間
    INSERT
    UPDATE
    DELETE
    欠損
    (Active) Data Guard
    (最新状態のデータベースに短時間で切り替え)
    Flashback Database
    (比較的短期間の過去に戻す)
    ~数日
    数百~数十日
    一般的な「バックアップ」はバックアップ操作をしたときに存在してい
    たファイルを複製するので最新のREDO情報が複製できない。
    アーカイブREDOログ・ファイルと同じ領域にUNDOブロックのバック
    アップを取得するので容量的にバックアップほどの長期間保持する
    のは難しい。データベースのファイルが破損していないことが前提。
    Data Guardは転送されたREDOでリカバリを継続するので最新
    に近い状態のデータベースを維持する。時刻t1より前に戻すには
    Flashback Databaseと組み合わせる。

    View Slide

  81. Flashback Database/Data Guard/バックアップがカバーする範囲は異なる
    Copyright © 2023, Oracle and/or its affiliates
    81
    INSERT
    UPDATE
    DELETE
    時刻t1
    バックアップ
    (長期間の過去状態の保存)
    時間
    INSERT
    UPDATE
    DELETE
    欠損
    (Active) Data Guard
    (最新状態のデータベースに短時間で切り替え)
    Flashback Database
    (比較的短期間の過去に戻す)
    ~数日
    数百~数十日
    バックアップ
    (長期間の過去状態の保存)
    REDO転送
    (最新のREDO)
    一般的な「バックアップ」はバックアップ操作をしたときに存在してい
    たファイルを複製するので最新のREDO情報が複製できない。
    Zero Data Loss Recovery Applianceはバックアップ+REDO
    転送で最新のREDO情報まで複製できる。
    アーカイブREDOログ・ファイルと同じ領域にUNDOブロックのバック
    アップを取得するので容量的にバックアップほどの長期間保持する
    のは難しい。データベースのファイルが破損していないことが前提。
    Data Guardは転送されたREDOでリカバリを継続するので最新
    に近い状態のデータベースを維持する。時刻t1より前に戻すには
    Flashback Databaseと組み合わせる。

    View Slide

  82. Zero Data Loss Recovery Appliance (ZDLRA)
    Zero Data Loss Autonomous Recovery Service (ZRCV)
    REDO転送を流用したOracle Database専用バックアップ・アプライアンス

    View Slide

  83. REDO転送の仕組みを流用することで最新の状態までリカバリ可能(Zero Data Loss)
    Zero Data Loss Recovery Appliance (ZDLRA または RA)
    • Exadataのハードウェアを流用したバックアップ・アプライアンス
    • Data GuardのREDO転送の仕組みを流用
    • バックアップ+REDO転送のOracle Database専用バックアップ・アプライアンス
    • 最新のREDO情報の複製を持っているため最新の状態までリカバリ可能(Zero Data Loss)
    • 差分増分Level 1バックアップの断片をつなぎ合わせて最新のフルバックアップ相当をリストア
    Zero Data Loss Autonomous Recovery Service (ZRCV)
    • ZDLRAをOracle Cloud Infrastructureのサービスとして提供
    • バックアップの容量に比例する課金体系
    • REDO転送なし(RCV)
    • REDO転送あり(ZRCV)
    • BaseDBとExaDB-Dが対象
    • Standard EditionはREDO転送の対象外
    • (Autonomous Databaseは今のところ対象外)
    Oracle Database専用のバックアップ・アプライアンス
    Copyright © 2023, Oracle and/or its affiliates
    83

    View Slide

  84. BaseDBとExa DB-DはZero Data Loss Autonomous Recovery Service (ZRCV)も選択可能
    OCI Oracle Database関連インスタンスのRMAN自動バックアップ
    Copyright © 2023, Oracle and/or its affiliates
    84
    Exadata
    Database
    Base Database
    Autonomous
    Database
    Object Storage
    ※ RMAN自動バックアップを構成する前に
    Object Storageのbucketを定義する
    RMAN
    Zero Data Loss Autonomous Recovery Service
    RMAN+REDO転送

    View Slide

  85. プライマリ・データベース用ストレージが全損しても最新のREDO情報が別の場所にある
    REDO転送の仕組みをバックアップ用サーバーにも実装:ZDLRA
    Copyright © 2023, Oracle and/or its affiliates
    85
    オンラインREDOログ・ファイル
    • 更新の履歴
    プライマリ・データベース用ストレージ Zero Data Loss Recovery Appliance
    RMANバックアップ+Data Guard REDO転送
    プライマリ・データベース・サーバー
    ネットワーク
    メモリー(REDOログ・バッファ)上
    にREDO情報が生成されたら
    転送開始
    アーカイブREDOログ・ファイル
    • プライマリのREDO情報の受信
    REDOログ・バッファ
    ※ZDLRAでのREDO転送は非同期(ASYNC)モード

    View Slide

  86. Zero Data Loss Recovery Appliance:データファイルのバックアップ+REDO転送
    Copyright © 2023, Oracle and/or its affiliates
    86
    INSERT
    UPDATE
    DELETE
    オンラインREDOログ
    時間
    時刻t0
    INSERT
    UPDATE
    DELETE
    INSERT
    UPDATE
    DELETE
    バックアップ
    (データファイルのコピー)
    ZDLRA
    プライマリ・データベース
    REDO転送
    アーカイブREDOログ
    通常のバックアップがカバーできる範囲
    (データファイルとアーカイブREDOログ・ファイルのコピー)
    REDO転送
    REDO転送
    最新のトランザクション
    情報が複製される
    Zero Data Loss

    View Slide

  87. データファイルのバックアップは1週間が1セット
    BaseDBとExaDB-DのObject StorageへのRMAN自動バックアップ
    Copyright © 2023, Oracle and/or its affiliates
    87
    日曜
    月曜
    火曜
    水曜
    木曜
    金曜
    土曜
    日曜
    月曜
    日曜日 増分Level 0
    (フルバックアップ相当)

    View Slide

  88. データファイルのバックアップは1週間が1セット
    BaseDBとExaDB-DのObject StorageへのRMAN自動バックアップ
    Copyright © 2023, Oracle and/or its affiliates
    88
    日曜
    月曜
    火曜
    水曜
    木曜
    金曜
    土曜
    日曜
    月曜
    日曜日 増分Level 0
    (フルバックアップ相当)
    日曜日以外 差分増分Level 1
    (前回のバックアップから更新があったデータブロック)

    View Slide

  89. データファイルのバックアップは1週間が1セット
    BaseDBとExaDB-DのObject StorageへのRMAN自動バックアップ
    Copyright © 2023, Oracle and/or its affiliates
    89
    日曜
    月曜
    火曜
    水曜
    木曜
    金曜
    土曜
    日曜
    月曜
    日曜日 増分Level 0
    (フルバックアップ相当)
    日曜日以外 差分増分Level 1
    (前回のバックアップから更新があったデータブロック)
    日曜日 増分Level 0
    (フルバックアップ相当)

    View Slide

  90. データファイルのバックアップは1週間が1セット
    BaseDBとExaDB-DのObject StorageへのRMAN自動バックアップ
    Copyright © 2023, Oracle and/or its affiliates
    90
    日曜
    月曜
    火曜
    水曜
    木曜
    金曜
    土曜
    日曜
    月曜
    日曜日 増分Level 0
    (フルバックアップ相当)
    日曜日以外 差分増分Level 1
    (前回のバックアップから更新があったデータブロック)
    日曜日 増分Level 0
    (フルバックアップ相当)

    View Slide

  91. フルバックアップ相当のLevel 0をリストアした後差分増分Level 1を順次リストア
    差分増分バックアップからのリストア
    Copyright © 2023, Oracle and/or its affiliates
    91
    日曜
    月曜
    火曜
    水曜
    木曜
    Level 0 リストア
    差分増分Level 1 リストア
    差分増分Level 1 リストア
    差分増分Level 1 リストア
    差分増分Level 1 リストア
    (最新のバックアップ)
    最新のLevel 1をリストアした状態からREDOログ適用

    View Slide

  92. 最新のLevel 0相当の仮想フルバックアップを生成して1回のリストア
    Zero Data Loss Recovery Appliance (ZDLRA)からのリストア
    Copyright © 2023, Oracle and/or its affiliates
    92
    日曜
    月曜
    火曜
    水曜
    木曜
    最新のLevel 1をリストアした状態からREDOログ適用
    ※Zero Data Loss Autonomous Recovery Service (ZRCV)を
    使用する場合はバックアップは常に差分増分Level 1
    差分Level 1のデータブロックの断片をつなぎ合わせて最新のフル
    バックアップLevel 0相当のデータファイルをZDLRA内で合成
    Level 0 リストア
    (最新のバックアップ)

    View Slide

  93. Flashback Database/Data Guard/バックアップがカバーする範囲は異なる(再掲)
    Copyright © 2023, Oracle and/or its affiliates
    93
    INSERT
    UPDATE
    DELETE
    時刻t1
    バックアップ
    (長期間の過去状態の保存)
    時間
    INSERT
    UPDATE
    DELETE
    欠損
    (Active) Data Guard
    (最新状態のデータベースに短時間で切り替え)
    Flashback Database
    (比較的短期間の過去に戻す)
    ~数日
    数百~数十日
    バックアップ
    (長期間の過去状態の保存)
    REDO転送
    (最新のREDO)
    一般的な「バックアップ」はバックアップ操作をしたときに存在してい
    たファイルを複製するので最新のREDO情報が複製できない。
    Zero Data Loss Recovery Applianceはバックアップ+REDO
    転送で最新のREDO情報まで複製できる。
    アーカイブREDOログ・ファイルと同じ領域にUNDOブロックのバック
    アップを取得するので容量的にバックアップほどの長期間保持する
    のは難しい。データベースのファイルが破損していないことが前提。
    Data Guardは転送されたREDOでリカバリを継続するので最新
    に近い状態のデータベースを維持する。時刻t1より前に戻すには
    Flashback Databaseと組み合わせる。

    View Slide

  94. Copyright © 2023, Oracle and/or its affiliates
    94
    抽象化されたデータ操作
    SQL
    どういうデータを取り出したいかの記述
    (「どうやって」の手続き的アルゴリズムの記述ではない)
    CONNECT user-B/password@host:port/service-A
    データベース・クライアントは「サービス」に接続する
    サービス
    データベースのワークロードを抽象化した概念
    service-A
    データベース
    ストレージ上のファイルの集合
    Oracleインスタンス
    データベース・サーバー上のOracleプロセスとメモリーの集合
    ストレージ上のデータの可用性
    • ASM: ミラー
    • Active Data Guard: レプリケーション
    • RMAN: バックアップ
    • Flashback Database: スナップショット

    View Slide

  95. Copyright © 2023, Oracle and/or its affiliates
    95
    抽象化されたデータ操作
    SQL
    どういうデータを取り出したいかの記述
    (「どうやって」の手続き的アルゴリズムの記述ではない)
    CONNECT user-B/password@host:port/service-A
    データベース・クライアントは「サービス」に接続する
    サービス
    データベースのワークロードを抽象化した概念
    service-A
    データベース
    ストレージ上のファイルの集合
    Oracleインスタンス
    データベース・サーバー上のOracleプロセスとメモリーの集合
    データベース・クライアントは「サービス」に接続

    サービス(抽象)がデータベース・サーバー側の物理構成(具象)を隠蔽

    View Slide

  96. View Slide