GAGA LIFE.

インフラエンジニアブログ

スポンサーリンク

Oracle データベース アーキテクチャ(SGA)

f:id:undercovergeek:20200706212241p:plain

システム・グローバル領域(SGA)は、1つのOracleデータベース・インスタンスのデータおよび制御情報を含むメモリー領域。
すべてのサーバープロセスとバックグラウンドプロセスがSGAを共有する。
データベースインスタンスを開始すると、SGAに割り当てられたメモリの量が表示される。
SGAには、以下のデータ構造が含まれている。

共有プール

ユーザー間で共有できるさまざまな構成をキャッシュする。例えば、共有プールには、解析されたSQL、PL/SQLコード、システムパラメータ、およびデータディクショナリ情報が格納される。
共有プールは、データベースで発生するほとんどすべての操作に関与している。例えば、ユーザーがSQL文を実行すると、Oracle Databaseは共有プールにアクセスする。

フラッシュバック・バッファ

SGAのオプションのコンポーネント。フラッシュバックデータベースを有効にすると、リカバリライタープロセス(RVWR)と呼ばれるバックグラウンドプロセスが開始される。
RVWRは、変更されたブロックを定期的にバッファキャッシュからフラッシュバックバッファにコピーし、フラッシュバックデータベースデータをフラッシュバックバッファからフラッシュバックデータベースログに順次書き込む。

データベースバッファキャッシュ

データファイルから読み取られたデータブロックのコピーを格納するメモリ領域。
バッファは、バッファマネージャが現在または最近使用されたデータブロックを一時的にキャッシュするメインメモリアドレス。
データベースインスタンスに同時に接続されているすべてのユーザーは、バッファキャッシュへのアクセスを共有する。

データベーススマートフラッシュキャッシュ

SolarisまたはOracle Linuxで実行されているデータベースのデータベースバッファーキャッシュのオプションのメモリ拡張。
データベースブロックにレベル2キャッシュを提供する。データウェアハウス(DW)環境での読み取り集中型オンライントランザクション処理(OLTP)ワークロードとアドホッククエリおよび一括データ変更の両方で、応答時間と全体的なスループットを向上させることができる。
データベーススマートフラッシュキャッシュは、フラッシュメモリを使用するソリッドステートストレージデバイスである1つ以上のフラッシュディスクデバイスに存在する。
データベーススマートフラッシュキャッシュは、通常、追加のメインメモリよりも経済的で、ディスクドライブより1桁高速。

REDOログ・バッファ

データベースに加えられた変更に関する情報を保持するSGAの循環バッファ。
この情報は、REDOエントリに格納される。
REDOエントリーには、データ操作言語(DML)、データ定義言語(DDL)、または内部操作によってデータベースに加えられた変更を再構築(またはREDO)するために必要な情報が含まれている。
REDOエントリーは、必要に応じてデータベースのリカバリーに使用される。

ラージプール

共有プールに適切なサイズよりも大きいメモリ割り当て用のオプションのメモリ領域。
ラージプールは、共有サーバーのユーザーグローバル領域(UGA)とOracle XAインターフェース(トランザクションが複数のデータベースとやり取りする場合に使用)、ステートメントの並列実行で使用されるメッセージバッファー、Recovery Managerのバッファー(RMAN)I/Oスレーブにに大きなメモリ割り当てを提供できる。

インメモリ領域

オプションのコンポーネントであり、オブジェクト(テーブル、パーティション、およびその他のタイプ)を、列形式と呼ばれる新しい形式でメモリに格納できる。
この形式では、スキャン、結合、および集計を従来のディスク上の形式よりもはるかに高速に実行できるため、OLTP環境とDW環境の両方に高速なレポートとDMLパフォーマンスを提供する。
この機能は、多くの列を返す少数の行を操作するOLTPではなく、多くの行を返す少数の列を操作する分析アプリケーションに特に役立つ。

Memoptimizeプール

キーベースのクエリに高いパフォーマンスとスケーラビリティを提供するオプションのコンポーネント。
Memoptimizeプールには、memoptimizeバッファー領域とハッシュインデックスの2つの部分がある。
高速ルックアップはmemoptimizeプールのハッシュインデックス構造を使用して、バッファーキャッシュに永続的に固定された特定のテーブル(MEMOPTIMIZE FOR READに対して有効)のブロックへの高速アクセスを提供し、ディスクI/Oを回避する。
memoptimizeプール内のバッファーは、データベースバッファーキャッシュから完全に分離されている。
ハッシュインデックスは、Memoptimized Rowstoreの構成時に作成され、Oracleデータベースによって自動的に維持される。

Shared I/Oプール(SecureFiles)

SecureFileラージオブジェクト(LOB)での大規模なI / O操作に使用される。
LOBは、大量のデータを保持するように設計された一連のデータ型。 SecureFileは、重複排除、暗号化、および圧縮を可能にするLOBストレージパラメータ。

Streamsプール

Oracle Streams、Data Pump、GoldenGateの統合された取得および適用プロセスで使用される。
Streamsプールは、バッファリングされたキューメッセージを格納し、Oracle Streamsのキャプチャプロセスと適用プロセスにメモリを提供する。
特に構成しない限り、Streamsプールのサイズはゼロから始まる。
Oracle Streamsを使用すると、プール・サイズは必要に応じて動的に増加する。

Javaプール

Java仮想マシン(JVM)内のすべてのセッション固有のJavaコードおよびデータに使用される。
Javaプール・メモリーは、Oracle Databaseが実行されているモードに応じて、様々な方法で使用される。

固定SGA

データベースとデータベースインスタンスの状態に関する一般的な情報、およびプロセス間で通信される情報を含む内部のハウスキーピングエリア。

スポンサーリンク