Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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 入力 論理データ構造

Slide 7

Slide 7 text

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 入力 論理データ構造 何を取り出すかの定義であって、どうやって 導出するかのアルゴリズムは記述されていない

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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のネットワーク接続

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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) 抽象化されたデータ操作を計画停止/非計画停止どちらがあっても継続する

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

Real Application Clusters Shared Everything Cluster

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

一時的にパッチ状態が異なる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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

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) 異常終了

Slide 34

Slide 34 text

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) サービス停止

Slide 35

Slide 35 text

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 アプリケーション・コンティニュイティ

Slide 36

Slide 36 text

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: 計画停止と非計画停止両方でコネクションを制御

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

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

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

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

Slide 45

Slide 45 text

ストレージ・デバイスが故障していなくても、格納されている ファイルのデータが破損している場合がある。 エラー・ログを出力するのは、その異常を検出した階層。 異常検出能力のない階層はエラー・ログを出力できない。 データを破損させた階層が破損させたことを直接ログに記 録していることは期待できない。 ストレージのデータを破損させる要因 • 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 ?

Slide 46

Slide 46 text

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自身しかない • ある階層から別の階層に移動させるとき検査される • 破損が次の階層に伝搬しない • データの複製がある場合は自動修復を試みる

Slide 47

Slide 47 text

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

Slide 48

Slide 48 text

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のデータ・プロテクション詳解 後半

Slide 49

Slide 49 text

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

Slide 50

Slide 50 text

どのファイルも冗長化して障害に対処する • ファイルを分割しミラーを用意する。 • ミラーは異なる障害グループ(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にある

Slide 51

Slide 51 text

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エクステント

Slide 52

Slide 52 text

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

Slide 53

Slide 53 text

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

Slide 54

Slide 54 text

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

Slide 55

Slide 55 text

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

Slide 56

Slide 56 text

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

Slide 57

Slide 57 text

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

Slide 58

Slide 58 text

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

Slide 59

Slide 59 text

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

Slide 60

Slide 60 text

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

Slide 61

Slide 61 text

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

Slide 62

Slide 62 text

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

Slide 63

Slide 63 text

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

Slide 64

Slide 64 text

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

Slide 65

Slide 65 text

推奨は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サーバー・ プロセス コピー元ボリューム バックアップ・ボリューム

Slide 66

Slide 66 text

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

Slide 67

Slide 67 text

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

Slide 68

Slide 68 text

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

Slide 69

Slide 69 text

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

Slide 70

Slide 70 text

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

Slide 71

Slide 71 text

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

Slide 72

Slide 72 text

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

Slide 73

Slide 73 text

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

Slide 74

Slide 74 text

(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転送

Slide 75

Slide 75 text

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

Slide 76

Slide 76 text

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

Slide 77

Slide 77 text

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

Slide 78

Slide 78 text

ポイント・イン・タイム・リカバリ 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

Slide 79

Slide 79 text

指定した時刻までデータベースの状態を戻す 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

Slide 80

Slide 80 text

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と組み合わせる。

Slide 81

Slide 81 text

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と組み合わせる。

Slide 82

Slide 82 text

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

Slide 83

Slide 83 text

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

Slide 84

Slide 84 text

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転送

Slide 85

Slide 85 text

プライマリ・データベース用ストレージが全損しても最新の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)モード

Slide 86

Slide 86 text

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

Slide 87

Slide 87 text

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

Slide 88

Slide 88 text

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

Slide 89

Slide 89 text

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

Slide 90

Slide 90 text

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

Slide 91

Slide 91 text

フルバックアップ相当の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ログ適用

Slide 92

Slide 92 text

最新の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 リストア (最新のバックアップ)

Slide 93

Slide 93 text

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と組み合わせる。

Slide 94

Slide 94 text

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: スナップショット

Slide 95

Slide 95 text

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

Slide 96

Slide 96 text

No content