データベース管理者の概念
このページのスクリプト・コンテンツはナビゲーションのみを目的としており、いかなる方法においても内容を変更するものではありません。
この部では、データベース管理者の業務、ツールおよび不可欠な知識について説明します。
-
データベース管理者の業務データベース管理者(DBA)の主な役割は、企業データをユーザーに対して利用可能にすることです。
-
データベース管理者向けのツール Oracleでは、データベースを管理するためのいくつかのツールを提供しています。
-
データベース管理者のためのトピックこの項では、他の箇所で説明されていないDBAに不可欠なトピックでは、マニュアルで不可欠な項目について説明します。
データベース管理者の業務
データベース管理者(DBA)の主要な役割は、企業データをユーザーに対して利用可能にすることです。
DBAは、アプリケーションがデータベースを効率よく使用できるよう、開発者と緊密に連携する必要があり、また、物理リソースを適切に保ち、効率よく使用できるよう、システム管理者と緊密に連携する必要があります。
Oracle DBAは、Oracle AI Databaseアーキテクチャおよびデータベースの機能を理解している必要があります。DBAは、次のタスクを実行します。
-
Oracle AI Databaseソフトウェアのインストール、アップグレードおよびパッチ適用
-
要件の確認、論理設計(概念モデル)の作成および物理データベース設計を含む、データベースの設計
-
Oracleデータベースの作成
-
バックアップやリカバリ計画の開発およびテスト、Oracle Databaseの定期バックアップ、障害発生時のリカバリ
-
クライアントがデータベースに接続するためのネットワーク環境の構成
-
データベースの起動および停止
-
データベースの記憶域の管理
-
ユーザーおよびセキュリティの管理
-
表、索引、ビューなどのデータベース・オブジェクトの管理
-
データベースのパフォーマンスの監視およびチューニング
-
重大なデータベース・エラーが発生した場合の調査、データの収集、Oracleサポート・サービスへの報告
-
新しいデータベース機能の評価およびテスト
ユーザーのタイプ、ロール、および責任は、データベース環境によって決まります。小規模なデータベースでは、DBAが1人の場合があります。一方、非常に大規模なデータベースでは、セキュリティ管理者、バックアップ・オペレータ、アプリケーション管理者など、複数のスペシャリストがDBAの仕事を分担する場合があります。
関連情報:
-
DBAタスクの概要は、『Oracle AI Database 2日でデータベース管理者に』を参照
-
DBAの概念とタスクの詳細説明は、『Oracle AI Database管理者ガイド』を参照してください。
データベース管理者向けのツール
Oracleでは、データベースを管理するためのいくつかのツールを提供しています。
この項では、一般的に使用されるいくつかのツールについて説明します。
-
Oracle Enterprise Manager (Enterprise Manager)は、Oracleデータベース、Exadataデータベース・マシン、Fusion Middleware、Oracle applications、サーバー、ストレージおよびOracle以外のハードウェアおよびソフトウェアの管理を提供するWebベースのシステム管理ツールです。
-
SQL*Plusは、Oracle AI Databaseのすべてのインストール時に含まれる、対話型のバッチ問合せツールです。
-
データベースのインストールおよび構成ツールOracleには、Oracle AI Databaseソフトウェアのインストール・タスクおよび構成タスクを簡単にするためのいくつかのツールが用意されています。
-
Oracle Netの構成および管理ツールOracle Net Servicesにより、分散、異機種間コンピューティング環境において、企業全体の接続性が確保される。Oracle NetはOracle Net Servicesのコンポーネントであり、クライアント・アプリケーションからデータベースへのネットワーク・セッションも確立できます。
-
データの移動および分析ツールOracle AI Databaseでは、データの移動および分析を支援するいくつかのユーティリティを提供しています。
Oracle Enterprise Manager
Oracle Enterprise Manager (Enterprise Manager)は、Oracleデータベース、Exadataデータベース・マシン、Fusion Middleware、Oracle applications、サーバー、ストレージおよびOracle以外のハードウェアおよびソフトウェアの管理を提供するWebベースのシステム管理ツールです。
-
Oracle Enterprise Manager Cloud Control Oracle Enterprise Manager Cloud Control(Cloud Control)は、Webベースのインタフェースで、これにより管理者は、Oracleテクノロジ・スタックおよびOracle以外のコンポーネント全体を完全に監視することができます。
-
Oracle Enterprise Manager Database Express 12c Oracle Enterprise Manager Database Express(EM Express)は、Oracleデータベース内に組み込まれたWeb管理製品である。特別なインストールまたは管理は必要ありません。
Oracle Enterprise Manager Cloud Control
Oracle Enterprise Manager Cloud Control (Cloud Control)は、Webベースのインタフェースで、これにより管理者は、Oracleテクノロジ・スタックおよび非Oracleコンポーネント全体を完全に監視できます。
高速アプリケーション通知(FAN)のコンポーネントが使用できなくなったり、パフォーマンスの問題が発生したりする場合があります。この場合、Cloud Controlに自動生成されたアラートが表示されるため、管理者が適切なリカバリ・アクションを実行できます。
Cloud Controlのコンポーネントには、次のものがあります。
-
Oracle Management Service (OMS)
OMS機能は、Cloud Controlのインタフェースを提供するJ2EEアプリケーションのセットで、すべてのOracle管理エージェントと連係して監視情報を処理し、Enterprise Managerリポジトリを永続的なデータ・ストアとして使用します。
-
Oracle Management Agent
これらのエージェントは、各監視対象ホストにデプロイされているプロセスで、ホスト上のすべてのターゲットを監視し、この情報をOMSに送信し、ホストおよびターゲットのメンテナンスを行います。
-
Oracle Management Repository
リポジトリは、Oracleデータベース内のスキーマで、Cloud Controlによって管理される管理者、ターゲットおよびアプリケーションに関するあらゆる情報が格納されています。
関連情報:
-
Cloud Controlを使用してデータベースを管理する方法を学習するには、『Oracle AI Database管理者ガイド』を参照
-
Cloud Controlのオンライン・ヘルプを参照してください。
Oracle Enterprise Manager Database Express 12c
Oracle Enterprise Manager Database Express (EM Express)は、Oracleデータベース内に組み込まれたWeb管理製品です。特別なインストールまたは管理は必要ありません。
EM Expressには、Cloud Controlの主要なパフォーマンス管理および基本管理のページが含まれます。これらのページには、次のものがあります。
-
データベース・ホームページ
-
リアルタイムSQLモニタリング
-
ASH分析
これらの機能には、オンラインではEM Expressコンソールを介してアクセスでき、オフラインではActive Reportsテクノロジを介してアクセスできます。アーキテクチャ上の観点から見ると、EM Expressには中間層またはミドルウェア・コンポーネントがなく、データベース・サーバーでのオーバーヘッドはごくわずかになることは確実です。
EM Expressを使用すると、ユーザー・セキュリティの管理、データベース・メモリーおよび記憶域の管理など、管理タスクを実行できます。また、データベースのパフォーマンスおよびステータス情報を表示できます。
関連項目: EM Expressを使用したデータベースの管理方法を学習するには、『Oracle AI Databaseパフォーマンス・チューニング・スタート・ガイド』を参照
SQL*Plus
SQL*Plusは、Oracle AI Databaseのすべてのインストール時に含まれる、対話型のバッチ問合せツールです。
これには、データベースへの接続時にクライアントとして機能するコマンドライン・ユーザー・インタフェースが備わっています。SQL*Plusには独自のコマンドと環境があります。ここでは、SQL、PL/SQL、SQL*Plus、オペレーティング・システム・コマンドを入力および実行し、次のタスクを実行できます。
-
問合せ結果の書式設定、計算の実行、保存および印刷
-
表とオブジェクト定義の確認
-
バッチ・スクリプトの開発と実行
-
データベースの管理
SQL*Plusを使用してレポートを対話形式で作成したり、バッチ・プロセスとしてレポートを生成したり、結果をテキスト・ファイル、画面、HTMLファイルに出力してインターネットで閲覧できます。HTML出力機能を使用して動的にレポートを生成できます。
関連項目: SQL*Plusについてさらに学習するには、『SQL*Plusユーザーズ・ガイドおよびリファレンス』を参照してください
データベースのインストールおよび構成ツール
Oracleでは、Oracle AI Databaseソフトウェアのインストール・タスクおよび構成タスクを簡単にするためのいくつかのツールを提供しています。
次の表に、サポートされているツールを示します。
表1データベースのインストールおよび構成ツール
| ツール | 摘要 | 詳細を表示するには |
|---|---|---|
| Oracle Universal Installer (OUI) | OUIは、Oracle AI Databaseソフトウェアを表示、インストールおよびアンインストールできるGUIユーティリティであります。オンライン・ヘルプがあり、ガイドに従ってインストールできます。 | インストールをガイドするオンライン・ヘルプ |
| Database Upgrade Assistant(DBUA) | DBUAを使用すると、対話形式のガイドに従ってデータベースをアップグレードし、新規リリースに応じてデータベースを構成できます。DBUAでは、通常は手動で実行されるタスクをすべて実行することによって、アップグレードを自動化します。DBUAでは、表領域やオンラインREDOログなどの構成オプションに対して推奨を作成します。 | DBUAを使用したデータベースのアップグレード方法を学習するには、『Oracle AI Database 2日でデータベース管理者』を参照してください |
| Database Configuration Assistant (DBCA) | DBCAには、データベースを作成し、構成するためのグラフィカル・インタフェースおよびガイド付きワークフローが用意されています。このツールを使用すると、Oracle提供のテンプレートからデータベースを作成したり、独自のデータベースやテンプレートを作成できます。 | DBCAを使用したデータベースの作成方法を学習するには、『Oracle AI Database管理者ガイド』を参照 |
Oracle Netの構成および管理ツール
Oracle Net Servicesは、分散型異機種間コンピューティング環境において、企業全体の接続性ソリューションを提供します。Oracle NetはOracle Net Servicesのコンポーネントであり、クライアント・アプリケーションからデータベースへのネットワーク・セッションも確立できます。
次のツールを使用して、Oracle Net Servicesを構成および管理できます。
-
Oracle Net Manager
このツールを使用すると、ローカル・クライアントまたはサーバー・ホスト上のOracleホームにOracle Net Servicesを構成できます。Oracle Net Managerを使用して、ネーミング、ネーミング・メソッド、プロファイルおよびリスナーを設定できます。Oracle Net Managerは、Oracle Enterprise Manager Consoleを使用して起動するか、独立したアプリケーションとして起動できます。
-
Oracle Net Configuration Assistant
このツールは、ソフトウェアのインストール時に自動的に実行されます。アシスタントでは、リスナー名、プロトコル・アドレス、ネーミング・メソッド、
tnsnames.oraファイル内のネット・サービス名、ディレクトリ・サーバーの使用など、インストール時に基本ネットワーク・コンポーネントを構成できます。 -
リスナー制御ユーティリティ
リスナー制御ユーティリティを使用すると、クライアント接続を受信するリスナーを構成できます。ユーティリティには、Enterprise Managerから、またはスタンドアロンのコマンドライン・アプリケーションとしてアクセスできます。
-
Oracle Connection Manager制御ユーティリティ
このコマンドライン・ユーティリティを使用すると、Oracle Connection Manager (ルターの一種)を管理できます。ルーターは、クライアント接続リクエストが次のホップに送信されたり、データベースに直接送信されるルーターです。ユーティリティ・コマンドを使用して、基本的な管理機能を1つ以上のOracle Connection Managerに対して実行できます。さらに、パラメータ設定を表示および変更できます。
関連情報:
-
Oracle Net Servicesツールについてさらに学習するには、Oracle AI Database Net Services管理者ガイドを参照してください。
データの移動および分析ツール
Oracle AI Databaseでは、データの移動および分析を支援するいくつかのユーティリティを提供しています。
たとえば、データベース・ユーティリティを使用して、次のことを実行できます。
表2データの移動および分析のタスク
| タスク | 詳細を表示するには |
|---|---|
| オペレーティング・システム・ファイルからOracle AI Databaseの表にデータをロードします | 「SQL*Loader」 |
| あるデータベースから別のデータベースにデータおよびメタデータを移動する | 『Oracle Data Pump Export and Import』 |
| SQLインタフェースを介してREDOログ・ファイルを問い合せる | 「Oracle LogMiner」 |
| Oracle AI Databaseデータの管理 | 「ADRコマンド・インタプリタ(ADRCI)」 |
その他のタスクには、DBVERIFYユーティリティを使用したオフライン・データベースまたはデータファイルに対する物理データ構造の整合性チェックの実行や、DBNEWIDユーティリティを使用した運用データベースのデータベース識別子(DBID)またはデータベース名の変更などがあります。
注意:
-
SQL*Loader SQL*Loaderは、データ・ファイルと呼ばれる外部ファイル(内部的なデータベースのデータ・ファイルと混同しないでください)からデータベース表にデータをロードする。SQL*Loaderには、データファイル内のデータの形式にほとんど制限のない強力なデータ解析エンジンがあります。
-
Oracle Data Pumpエクスポートおよびインポート Oracle Data Pumpにより、データベース間のデータとメタデータを高速で移動できるようになります。
-
Oracle LogMiner Oracle LogMinerを使用すると、SQLインタフェースを介してREDOログ・ファイルを問い合せることが可能です。
-
ADR Command Interpreter (ADRCI) ADRCIは、問題の調査、ヘルス・チェック・レポートの表示、および最初の障害データのパッケージ化とOracle Supportへのアップロードを可能にするコマンドライン・ユーティリティです。
関連情報:
-
バックアップとリカバリに関連するツールについて学習するには、「バックアップとリカバリ」を参照してください
-
DBVERIFYとDBNEWIDについて学習するには、『Oracle AI Databaseユーティリティ』を参照してください
SQL*Loader
SQL*Loaderは、データ・ファイルと呼ばれる外部ファイル(内部的なデータベースのデータ・ファイルと混同しないでください)からデータベース表にデータをロードする。SQL*Loaderには、データファイル内のデータの形式にほとんど制限のない強力なデータ解析エンジンがあります。
SQL*Loaderを使用して、次のことが可能です。
-
複数のデータファイルから複数の表へのデータのロード
ロードするデータは、SQL*Loaderデータファイルに格納します。SQL*Loader制御ファイルはテキスト・ファイルであり、このファイルには、SQL*Loaderがデータを格納場所、解析方法と解釈方法、挿入場所などを決定するために使用するDDL命令が含まれているテキスト・ファイルです。
ノート: SQL*Loaderデータファイルおよび制御ファイルは、Oracle AI Databaseデータファイルおよび制御ファイルに関連付けられていません。
-
ロード操作の様々な制御
たとえば、データの選択的なロード、データの文字セットの指定、SQL関数によるデータの操作、指定の列への一意のシーケンシャル・キー値の生成が可能です。また、複雑なエラー・レポートも生成できます。
-
従来型パス、ダイレクト・パスまたは外部表ロードの使用
従来型パスによるロードでは、表にデータを移入するときにSQL
INSERT文を実行します。一方、ダイレクト・パスINSERTでは、データ・ブロックをフォーマットし、それをデータ・ファイルに直接書き込むことによって、データベース・オーバーヘッドを大幅に軽減します。直接書き込む場合、最高水位標(HWM)よりも上のブロックで処理され、データベース・バッファ・キャッシュを経由しないで、ディスクに直接書き込まれます直接読取りを行う場合も、バッファ・キャッシュを経由して、ディスクからPGAに直接読み取ります。外部表ロードでは、データ・ファイルに含まれているデータに対して外部表が作成されます。ロードでは、
INSERT文が実行されて、データ・ファイルのデータがターゲット表に挿入されます。
一般的なSQL*Loaderセッションでは、SQL*Loaderの制御ファイルと1つ以上のデータ・ファイルが入力に使用されます。出力は、Oracleデータベース、ログ・ファイル、不良ファイル、および場合によっては廃棄ファイルです。次の図に、典型的なSQL*Loaderセッションのフローを示します。
図1: SQL*Loaderセッション

SQL*Loaderエクスプレス・モードを使用することもでき、次の例のように、SQL*Loaderコマンドでtableパラメータを指定するとアクティブになります。
% sqlldr hr table=employees
制御ファイルが使用できないため、SQL*Loaderが使用しやすくなります。制御ファイルを解析するかわりに、SQL*Loaderでは表列定義を使用して、入力データ型を確認します。SQL*Loaderは、文字セット、フィールド・デリミタ、そしてデータ・ファイル、ログ・ファイルおよび不良ファイルの名前など、複数のデフォルト推測を作成します。デフォルト値の多くは、コマンドライン・パラメータでオーバーライドできます。
関連情報:
-
SQL*Loaderについて学習するには、『Oracle AI Databaseユーティリティ』を参照
Oracle Data Pumpのエクスポートおよびインポート
Oracle Data Pumpにより、データベース間でデータとメタデータを高速で移動できます。
このテクノロジは、次のOracle AI Databaseデータ移動ユーティリティのベースとなります。
-
データ・ポンプ・エクスポート(エクスポート)
エクスポートは、データとメタデータをダンプ・ファイル・セットのと呼ばれる一連のオペレーティング・システム・ファイルにアンロードするためのユーティリティですダンプ・ファイル・セットは、表データ、データベース・オブジェクトのメタデータおよび制御情報を含む1つ以上のバイナリ・ファイルから構成されます。
-
データ・ポンプ・インポート(インポート)
インポートは、エクスポート・ダンプ・ファイル・セットをデータベースにロードするためのユーティリティです。また、インポートを使用すると、ソース・データベースから中間ファイルなしで宛先データベースに直接ロードすることができ、エクスポート操作とインポート操作を同時に実行することで全体の所要時間が短縮されます。
Oracle Data Pumpは、次のような部分から構成されています。
-
expdpおよびimpdpコマンドライン・クライアントこれらのクライアントは、
DBMS_DATAPUMPパッケージに対してコールし、Oracle Data Pump操作を実行します。 -
DBMS_DATAPUMPPL/SQLパッケージ(データ・ポンプAPIとも呼ばれる)このAPIによって、高速でインポートおよびエクスポートされます。
-
DBMS_METADATAPL/SQLパッケージ(メタデータAPIとも呼ばれる)メタデータのすべてのロードおよびアンロード・プロセスでこのAPIが使用され、オブジェクト定義がXML形式で格納されます。
次の図に、Oracle Data PumpをSQL*Loaderおよび外部表と統合する方法を示します。図に示すように、SQL*Loaderは外部表APIおよびData Pump APIに統合され、データを外部表にロードします。Oracle Enterprise Manager Cloud Control (Cloud Control)やトランスポータブル表領域などのクライアントでは、Oracle Data Pumpインフラストラクチャを使用できます。
図2: Oracle Data Pumpアーキテクチャ

関連情報:
-
Oracle Data Pumpの概要は、Oracle AI Databaseユーティリティを参照してください。
-
DBMS_DATAPUMPおよびDBMS_METADATAの詳細は、Oracle AI Database PL/SQLパッケージおよびタイプ・リファレンスを参照
Oracle LogMiner
Oracle LogMinerを使用すると、SQLインタフェースを介してREDOログ・ファイルを問い合せることができます。
REDOログ・ファイルに含まれるデータの使用方法を次に示します。
-
データベースに対する論理的な破損(アプリケーション・レベルでのエラーなど)が発生した時間の検出。
-
ユーザー・エラーを検出します。
-
トランザクション・レベルでファイングレイン・リカバリを実行するために必要な操作を判断します。
-
傾向分析を使用して、更新および挿入頻度の最も高い表を判断できます。
-
REDOログ・ファイルに対するLogMinerの包括的なリレーショナル・インタフェースを使用したシステム動作の分析およびデータベース使用の監査
LogMinerには、コマンドライン・インタフェースまたはEnterprise Managerの一部であるOracle LogMiner Viewer GUIを介してアクセスできます。
関連項目: LogMinerについてさらに学習するには、『Oracle AI Databaseユーティリティ』を参照してください
ADRコマンド・インタプリタ(ADRCI)
ADRCIは、問題の調査、ヘルス・チェック・レポートの表示、および最初の障害データのパッケージ化とOracle Supportへのアップロードを可能にするコマンドライン・ユーティリティです。
また、このユーティリティでは、自動診断リポジトリ(ADR)内のトレース・ファイルの名前を表示したり、アラート・ログを表示できます。ADRCIには、対話形式またはスクリプト内で使用できる豊富なコマンド・セットが用意されています。
関連情報:
-
ADRおよびADRCIの詳細は、『Oracle AI Databaseユーティリティ』および『Oracle AI Database管理者ガイド』を参照してください
データベース管理者のためのトピック
この項では、他の箇所で説明されていないDBAに不可欠なトピックについて説明します。
-
バックアップおよびリカバリバックアップおよびリカバリとは、メディア障害またはユーザー・エラーによるデータ損失に対するデータベースの保護に関連する、一連の概念、プロシージャおよび計画です。
-
メモリー管理のメモリー管理では、データベースでの需要の変化に応じて、Oracleインスタンスのメモリー構造の最適なサイズを維持する必要があります。初期化パラメータ設定により、SGAおよびインスタンスPGAメモリーの管理方法が決まります。
-
Resource Management and Task Scheduling Oracle AI Databaseでは、リソースの管理およびタスクをスケジュールしてユーザーへの影響を軽減するのに役立つツールが提供されます。
-
パフォーマンスおよびチューニング DBAは、Oracleデータベースのパフォーマンスを担当します。一般的に、パフォーマンス上の問題は、許容されないレスポンス時間(特定のワークロードを完了するためにかかる時間)またはスループット(特定の時間内で完了できる作業量)によって発生します。
バックアップとリカバリ
バックアップおよびリカバリとは、メディア障害またはユーザー・エラーによるデータ損失に対するデータベースの保護に関連する、一連の概念、プロシージャおよび計画です。
バックアップとは、データのコピーです。バックアップには、データファイル、サーバー・パラメータ・ファイル、制御ファイルなど、データベースの重要な部分が含まれる場合があります。バックアップおよびリカバリが必要になる一例として、ディスク・ドライブの障害によりデータファイルが失われた場合などがあります。失われたファイルのバックアップが存在する場合は、ファイルをリストアおよびリカバリできます。データの損失が発生した前の状態へのリストアにかかわる操作は、メディア・リカバリと呼ばれます。
この項では、次のトピックについて説明します:
-
バックアップおよびリカバリの手法 Recovery Managerとユーザー管理のいずれかを使用して、Oracleデータベースをバックアップ、リストアおよびリカバリします。
-
Recovery ManagerのアーキテクチャRMANおよびOracle Secure Backupには、コマンドラインおよびEnterprise Manager Cloud Control (Cloud Control)からアクセスできます。
-
データベース・バックアップ・データベース・バックアップは、物理または論理のいずれかです。
-
データ修復データベースの通常の操作が停止する可能性のある問題、またはI/O処理に影響を及ぼす問題は数少なくありますが、一般に、DBAは介入してデータを修復する必要があるのは一部の問題のみです。
-
Zero Data Loss Recovery Applianceクラウド規模のZero Data Loss Recovery Appliance (リカバリ・アプライアンスとして一般的に知られる)は、企業におけるすべてのOracleデータベースのデータ損失とバックアップのオーバーヘッドを大幅に削減するためのエンジニアド・システムである。
関連情報:
-
バックアップとリカバリの概念とタスクの詳細は、『Oracle AI Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。
-
Microsoft Windowsでデータベースをバックアップおよびリカバリするためのボリューム・シャドウ・コピー・サービス(VSS)アプリケーションの使用方法を学習するには、『Oracle AI Database管理者リファレンスfor Microsoft Windows』
バックアップおよびリカバリ方法
Recovery Managerとユーザーによる管理方法のいずれかを使用して、Oracleデータベースをバックアップ、リストアおよびリカバリできます。
この2つのアプローチの主な違いは次のとおりです。
-
RMANは、バックアップおよびリカバリ・アクティビティを実行するためにOracleデータベースと統合されるOracle AI Databaseユーティリティで、バックアップするすべてのデータベースの制御ファイルに履歴バックアップ・メタデータのリポジトリを保持します。RMANでは、リカバリ・カタログと呼ばれる集中管理されるバックアップ・リポジトリを別のデータベースに保持することもできます。RMANはOracle AI Databaseの機能のため、別途インストールする必要はありません。
RMANはOracle Secure Backupと統合されており、信頼性のある一元化されたテープ・バックアップ管理を提供し、ファイル・システム・データとOracle AI Databaseファイルを保護します。Oracle Secure Backup SBTインタフェースでは、RMANを使用したデータベース・ファイルのテープおよびAmazon S3などのインターネット・ベースのWebサービスへのバックアップ、およびこれらの媒体からのデータベース・ファイルのリストアが可能になります。Oracle Secure Backupでは、SANおよびSCSI環境のほとんどすべてのテープ・ドライブおよびテープ・ライブラリがサポートされています。
-
ユーザーによる管理方法
RMANを使用するかわりに、バックアップおよびファイルのリストアの場合はLinuxの
ddコマンド、メディア・リカバリの場合はSQL*PlusのRECOVERコマンドなど、オペレーティング・システムのコマンドを使用できます。ユーザー管理のバックアップおよびリカバリはOracleで完全にサポートされていますが、RMANの方がOracle AI Databaseと統合されており、管理を簡素化しているため、RMANを使用することをお薦めします。
関連情報:
-
バックアップ/リカバリ・ソリューションの概要は『Oracle AI Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照
-
Oracle Secure Backupの概要は『Oracle Secure Backup管理者ガイド』を参照
Recovery Managerのアーキテクチャ
RMANおよびOracle Secure Backupには、コマンドラインおよびEnterprise Manager Cloud Control (Cloud Control)の両方からアクセスできます。
Cloud Controlには、グラフィカルなフロント・エンドと、RMAN用のスケジューリング機能が用意されています。ジョブ・パラメータを入力したら、ジョブ・スケジュールを指定します。Cloud Controlは、RMANを指定された時間または指定の繰返し間隔で実行し、バックアップおよびリカバリ操作を実行します。Cloud Controlは、一連のウィザードによってRMANにアクセスできます。これらのウィザードは、データベース、使用可能なバックアップおよびデータ・リカバリの目的の分析に基づいて、様々なリカバリ手順を提供します。
Cloud Controlを使用することによって、この章で説明する簡単なリストアおよびリカバリの例を実行できます。また、Point-in-TimeリカバリやOracle Flashback操作などのより高度なリストアおよびリカバリ方法を使用して、メディア障害およびユーザー・エラーを効率的に修復することもできます。Cloud Controlを使用した方が、多くの場合、RMANコマンドライン・クライアントよりも簡単に使用できます。
次の図に、RMANアーキテクチャのサンプルを示します。Cloud Controlからアクセス可能なRMANクライアントは、ターゲット・データベースのサーバー・セッションを使用して、データをディスクまたはテープにバックアップします。RMANは、外部にあるリカバリ・カタログをバックアップ・メタデータで更新できます。
図3: RMANアーキテクチャ

使用するバックアップおよびリカバリ方法に関係なく、Oracleでは高速リカバリ領域を構成することをお薦めします。このデータベース管理されるディレクトリ、ファイル・システムまたはOracle ASMディスク・グループは、アクティブな制御ファイル、オンラインおよびアーカイブREDOログ・ファイル、バックアップなど、バックアップ・ファイルおよびリカバリ・ ファイルを一元化します。Oracle AI Databaseのリカバリ・コンポーネントは、高速リカバリ領域と対話し、データベースのリカバリ可能性を保証します。
関連情報:
-
Recovery Managerによるバックアップおよびリカバリの実行方法を学習するには、Oracle AI Database 2日でデータベース管理者を参照
-
高速リカバリ領域の設定および管理方法は、『Oracle AI Database管理者ガイド』を参照してください。
データベース・バックアップ
データベース・バックアップは、物理または論理のいずれかです。
物理バックアップはバックアップおよびリカバリ方針の中心概念であり、物理データベース・ファイルのコピーです。物理バックアップを作成するには、RMANユーティリティを使用する方法と、オペレーティング・システムのユーティリティを使用する方法があります。
これに対して、論理バックアップには、表、ストアド・プロシージャおよびその他の論理データが含まれます。Data Pump ExportなどのOracle AI Databaseユーティリティを使用して論理データを抽出し、バイナリ・ファイルに格納できます。論理バックアップは、物理バックアップを補足できます。
物理バックアップは粒度が粗く、トランスポータビリティが制限されていますが、非常に高速です。論理バックアップは粒度が細かく、トランスポータビリティは完全ですが、物理バックアップより低速です。
-
データベース全体バックアップと部分バックアップデータベース全体バックアップとは、データベース内の各データファイルおよび制御ファイルのバックアップのすることです。これは最も一般的なタイプのバックアップです。
-
一貫したバックアップと非一貫性のバックアップデータベース全体ののバックアップは、一貫したバックアップか非一貫性のいずれかです。
-
バックアップ・セットおよびイメージ・コピー RMANの
BACKUPコマンドでは、イメージ・コピーまたはバックアップ・セットが生成されます。関連項目:物理バックアップと論理のバックアップについて学習するには、『Oracle AI Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照
データベース全体のバックアップと部分バックアップ
データベース全体のバックアップとは、データベース内のすべてのデータファイルと制御ファイルのバックアップのことだ。これは最も一般的なタイプのバックアップです。
部分データベース・バックアップには、個々の表領域またはデータファイルであるデータベースのサブセットが含まれます。表領域バックアップとは、表領域内のすべてのデータファイルまたは複数の表領域内のすべてのデータのバックアップです。一貫性の有無にかかわらず、表領域バックアップが有効なのは、データベースがARCHIVELOGモードで稼働している場合のみで、これは、リストア後の表領域とデータベースの他の領域との一貫性を保つにはREDOが必要となるためです。
一貫性バックアップと非一貫性バックアップ
データベース全体のバックアップは、一貫性バックアップか非一貫性バックアップのいずれかです。
一貫性バックアップでは、すべての読取り/書込みデータファイルおよび制御ファイルのチェックポイント SCNが同じであり、このSCNまでのすべての変更が確実にこれらのファイルに格納されます。このタイプのバックアップでは、リストア後にリカバリする必要はありません。
データベースの一貫性バックアップは、一貫性が保たれた状態停止した後にのみ実行できます。これは、NOARCHIVELOGモードで稼働しているデータベースに対して有効な唯一のバックアップ・オプションです。他のバックアップ・オプションでは、一貫性のためメディア・リカバリを必要としますが、これはアーカイブREDOログ・ファイルを適用しなければ不可能です。ノート: REDOを適用せずにデータベース全体の一貫性バックアップをリストアすると、バックアップ後に実行されたトランザクションはすべて失われます。
非一貫性バックアップでは、読込み/書込みデータファイルおよび制御ファイルのチェックポイントSCNが同じであるという保証はなく、変更が失われる場合があります。バックアップを実行している間もデータファイルが変更されることがあるため、すべてのオンライン・バックアップは必然的に非一貫性です。
非一貫性バックアップは、データベースを完全に保護するためのバックアップを作成するためにデータベースを停止する必要がないため、優れた可用性を提供します。ARCHIVELOGモードでデータベースを実行する場合、アーカイブREDOログおよびデータファイルをバックアップする場合は、非一貫性バックアップを堅実なバックアップおよびリカバリ計画の基礎とできます。
関連情報:
-
非一貫バックアップについてさらに学習するには、Oracle AI Databaseバックアップおよびリカバリ・ユーザーズ・ガイドを参照してください。
バックアップ・セットとイメージ・コピー
RMANのBACKUPコマンドでは、イメージ・コピーまたはバックアップ・セットが生成されます。
バックアップ・タイプは次のように異なります。
-
イメージ・コピー
イメージ・コピーとは、データファイル、制御ファイルまたはアーカイブREDOログ・ファイルをビット数でディスク上に複製したことです。オペレーティング・システムのユーティリティまたはRMANを使用して物理ファイルのイメージ・コピーを作成し、いずれかのツールを使用してファイルをリストアできます。
ノート:オペレーティング・システムでのコピーとは異なり、RMANではファイル内のブロックが検証され、イメージ・コピーがRMANリポジトリに記録されます。
-
バックアップ・セット
また、RMANは、バックアップ・セットと呼ばれる独自の形式のバックアップを作成できます。バックアップ・セットには、1つ以上のデータファイル、アーカイブREDOログ・ファイル、または制御ファイルまたはサーバー・パラメータ・ファイルからのデータが含まれます。バックアップ・セットの最小単位は、バックアップ・ピースと呼ばれるバイナリ・ファイルである。バックアップ・セットは、RMANがテープ・ドライブなどのシーケンシャル・デバイスへバックアップを書き込むための唯一の方法です。
バックアップ・セットを使用すると、テープ・デバイスが連続して動作できるようになります。たとえば、RMANでは、低速、中速および高速の各ディスクのブロックを1つのバックアップ・セットに結合することにより、テープ・デバイス内の入力ブロックを一定に保つことができます。ディスクのイメージ・コピーは、段階的に更新したり所定の位置でのリカバリが可能であるため、役に立ちます。
関連項目:バックアップ・セットおよびイメージ・コピーについてさらに学習するには、『Oracle AI Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください
データ修復
データベースの通常の機能が停止するような問題、およびI/O処理に影響を及ぼす問題は数多くありますが、一般的に、DBAが介入してデータを修復する必要があるのは一部の問題のみです。
データの修復は、通常、次の場合に必要です。
-
メディアの障害
メディア障害は、データベース外部の問題により、データベースでファイルの読取りまたは書込みができない場合に発生します。一般的なメディア障害には、ディスク・ヘッド・クラッシュなどの物理的な障害、およびデータベース・ファイルの上書き、削除または破損があります。メディア障害は、ユーザーまたはアプリケーションのエラーより頻度は低いですが、バックアップおよびリカバリ計画を堅実にするために、これに備えておく必要があります。
-
ユーザー・エラー
不適切な更新、表の内容の削除またはデータベース・オブジェクトの削除など、ユーザーまたはアプリケーションによって、データベースに不要な変更が加えられる場合があります。適切なバックアップおよびリカバリ計画では、データベースの可用性に対する影響を最小化し、DBAの労力を最低限に抑えて、必要な状態にデータベースを戻すことができます。
一般的に、これらの問題の解決方法は複数あります。この項では、これらの解決方法について説明します。
-
Oracle Flashback Technology Oracle AI Databaseでは、Oracle Flashback Technologyと呼ばれる機能グループが提供されます。この機能グループでは、バックアップをリストアせずに、過去のデータの状態を表示することも、バックアップに応じてデータを前後に巻き戻すことができます。
-
ブロック・メディア・リカバリ・ブロック・メディア・リカバリは、データファイルをオンラインの状態に保持したまま、破損データ・ブロックをリストアしてリカバリするためのテクニックです。
-
データファイル・リカバリ: データファイル・リカバリは、消失または破損した現行のデータファイルまたは制御ファイルを修復します。また、表領域が
OFFLINENORMALオプションを設定せずにオフラインになったときに消失した変更をリカバリします。
関連情報:
-
データ修復の概念については、Oracle AI Databaseバックアップおよびリカバリ・ユーザーズ・ガイドを参照
Oracle Flashback Technology
Oracle AI Databaseでは、Oracle Flashback Technologyと呼ばれる機能グループが提供されており、バックアップをリストアせずに、過去のデータの状態を表示することや、バックアップに応じてデータを前後に巻き戻すことができます。
データベースの変更内容にもよりますが、フラッシュバック機能では、メディア・リカバリよりも迅速に、可用性に及ぼす影響も少なく、不要な変更を元に戻すことができます。バックアップおよびリカバリに最適なフラッシュバック機能には、次のものがあります。
-
フラッシュバック・データベース
CDBまたはPDBを以前の時点まで巻き戻して、論理データの破損やユーザー・エラーによる問題を解決できます。フラッシュバック・データベースは、Data Guardの補完、およびクローン・データベースの同期化にも使用できます。フラッシュバック・データベースではファイル上でメディア・リカバリがリストアまたは実行されないため、これを使用してディスク・クラッシュなどのメディア障害を修正することはできません。
PDBレベルでは、PDBリストア・ポイントを作成して、他のCDBに影響を及ぼさずにこのリストア・ポイントにPDBを巻き戻すことができます。CDBレベルではCDBリストア・ポイントを作成できます。
-
フラッシュバック表
1つのSQL文で、指定した時点まで表を巻き戻しできます。表データとともに、関連する索引、トリガーおよび制約をリストアでき、データベースはオンライン状態で、指定された表に対する変更のみが取り消されます。フラッシュバック表は、不良ディスクやデータ・セグメントと索引の非一貫性など、物理的な破損には対応していません。
-
フラッシュバック・ドロップ
DROP TABLE操作の効果を無効にできます。フラッシュバック・ドロップは、ポイント・イン・タイム・リカバリなどのリカバリ・メカニズムより大幅に高速であり、最近のトランザクションの損失や停止時間も発生しません。
関連情報:
-
フラッシュバック機能についてさらに学習するには、Oracle AI Databaseバックアップおよびリカバリ・ユーザーズ・ガイドを参照してください。
-
FLASHBACK DATABASE文について学習するには、Oracle AI Database SQL言語リファレンスおよび『Oracle AI Databaseバックアップおよびリカバリ・リファレンス』を参照
ブロック・メディアのリカバリ
ブロック・メディア・リカバリは、データファイルをオンラインの状態に保ったまま、破損データ・ブロックをリストアしてリカバリするテクニックです。
ブロック破損とは、認識されているOracle形式ではないデータ・ブロック、または内容の一貫性が内部で保持されていないデータ・ブロックです。ブロックの破損を検出したときに、破損が少数のブロックのみに限定されている場合は、データファイル・リカバリよりもブロック・リカバリが適しています。
関連情報:
-
ブロック・メディア・回復の実行方法を学習するには、Oracle AI Databaseバックアップおよびリカバリ・ユーザーズ・ガイドを参照
データファイルのリカバリ
データファイル・リカバリは、消失または破損した現行のデータファイルまたは制御ファイルを修復します。また、表領域がOFFLINE NORMALオプションを設定せずにオフラインになったときに消失した変更をリカバリします。
データファイルまたは制御ファイルのバックアップをリストアする場合、またはデータファイルがOFFLINE NORMALオプションを設定せずにオフラインになった場合は、メディア・リカバリが必要です。オンライン・データファイルがメディア・リカバリを必要とする場合、またはメディア・リカバリを必要とするデータファイルをメディア・リカバリの完了までオンラインにできない場合、データベースはオープンできません。
データファイルまたは制御ファイルの物理バックアップをリストアするには、それを再構築してOracle AI Databaseで使用可能にします。バックアップのリカバリとは、アーカイブREDOログ・ファイルを適用して、消失した変更を再構築することです。RMANでは、前回のバックアップ後に変更されたデータ・ブロックのみを含む増分バックアップを使用して、データファイルをリカバリすることもできます。
変更がオンライン・ファイルに自動的に適用されるインスタンス・リカバリとは異なり、メディア・リカバリでは、ユーザーによる起動が必要であり、リストアされたバックアップにアーカイブREDOログ・ファイルが適用されます。データファイルのメディア・リカバリは、オフライン・データファイルか、データベース・インスタンスによりオープンされていないデータベースのデータファイルにのみ機能します。
データファイル・メディア・リカバリは、すべての変更を適用するかどうかで異なります。
-
完全リカバリ
完全リカバリでは、アーカイブREDOログとオンラインREDOログに含まれるREDO変更すべてがバックアップに適用されます。通常、完全メディア・リカバリは、メディア障害によりデータファイルまたは制御ファイルが破損した後に実行します。完全リカバリは、データベース、表領域またはデータファイルに対して実行できます。
-
不完全リカバリ
不完全リカバリはデータベース・ポイント・イン・タイム・リカバリとも呼ばれて、データベースの現在のバージョンを生成しません。この場合、リストアされたバックアップ以後に生成されたREDOすべてを適用するわけではありません。通常、データベースのポイント・イン・タイム・リカバリは、Oracle Flashback Databaseを使用できないときにユーザー・エラーを取り消す場合に実行します。
不完全リカバリを実行するには、リカバリが必要な時点より前に作成されたバックアップからデータファイルをすべてリストアし、リカバリの完了時に
RESETLOGSオプションを指定してデータベースをオープンする必要があります。ログをリセットすると、ログシーケンス1から始まる新しいログシーケンス番号のストリームが作成されます。ノート:現行のデータファイルが利用可能な場合は、DBPITRの代替としてフラッシュバック・データベースを使用します。
表領域のポイント・イン・タイム・リカバリ(TSPITR)機能を使用すると、1つ以上の表領域をデータベースの残りの部分より古い時点までリカバリできます。
関連情報:
-
インスタンス・リカバリの概要に関する項
-
メディア・リカバリーの概念の詳細は、『Oracle AI Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照
Zero Data Loss Recovery Appliance
クラウド規模のZero Data Loss Recovery Appliance (リカバリ・アプライアンスとして一般的に知られている)は、企業におけるすべてのOracleデータベースのデータ損失とバックアップのオーバーヘッドを大幅に削減するためのエンジニアド・システムである。
リカバリ・アプライアンスはRMANと統合されており、クラウド規模で耐障害性の高いハードウェアと記憶域を使用して、多数のデータベースに対する集中管理されたバックアップとリカバリの計画をデプロイします。リカバリ・アプライアンスでは、継続してバックアップのリカバリ可能性が検証されます。
-
リカバリ・アプライアンスの利点集中管理のリカバリ・アプライアンスは大部分のデータベース・バックアップとリストア処理を実行し、記憶域使用率、パフォーマンス、およびバックアップの管理性の効率を高めます。
-
リカバリ・アプライアンス環境保護対象のデータベースは、データをリカバリ・アプライアンスにバックアップするクライアント・データベースです、
リカバリ・アプライアンスの利点
集中管理されたリカバリ・アプライアンスは大部分のデータベース・バックアップとリストア処理を実行し、記憶域使用率、パフォーマンス、およびバックアップの管理性の効率を高めます。
主な利点は次のとおりです。
-
データ損失の解消
リカバリ・アプライアンスでは、次のようなテクノロジを使用して、データ・センターのほとんどのデータベースで発生するデータ損失の可能性を解消します。
-
保護対象のデータベースのSGAからリアルタイムREDOトランスポートと呼ばれるリカバリ・アプライアンスへのREDO変更 の継続的な転送
-
リモート・リカバリ・アプライアンスへのレプリケーション
-
集中管理されたリカバリ・アプライアンスによる自動テープ・バックアップ
-
エンドツーエンドのデータベース・ブロック検証
-
-
最小限のバックアップ・オーバーヘッド
データベース・サーバーのバックアップ・オーバーヘッドは、リカバリ・Applianceへオフロードすることによって最小化し、リカバリ・Applianceでは統一されたディスク・プールで複数のデータベースのバックアップを管理します。RMANの永久的増分バックアップ戦略には、初期レベル0のリカバリ・アプライアンスへのバックアップの作成が含まれており、その後の増分バックアップはすべてレベル1です。リカバリ・アプライアンスでは、レベル0とレベル1バックアップを組み合せて仮想完全バックアップを作成します。リカバリ・アプライアンスではブロック・レベルで継続的にバックアップを圧縮、重複解除、および検証します。
-
エンドツーエンド・データ保護の可視性の向上
Cloud Controlでは、RMANバックアップが開始されてからディスクまたはテープに格納されるまで、またはダウンストリーム・リカバリ・アプライアンスへレプリケートされるまでの、リカバリ・アプライアンスが管理するバックアップ・ライフサイクルに対して完全なエンドツーエンドのビューが提供されます。Enterprise Manager for Zero Data Loss Recovery Applianceプラグイン(リカバリ・アプライアンス・プラグイン)をインストールすると、監視と管理が可能になります。
-
クラウド規模の保護
リカバリ・アプライアンスがサポートするデータベースは、数十から数百、あるいは数千にのぼります。このアーキテクチャの主なコンポーネントは次のとおりです。
-
リカバリ・アプライアンスは、保護ポリシーによる管理を簡素化し、このポリシーに関連する各データベースに対して強制されるリカバリ・ウィンドウ目標を定義します。保護ポリシーでは、データベースを共通する特性を持つ階層のグループとしてまとめると、管理性が向上します。
-
リカバリ・アプライアンスでは保護ポリシーを使用し、保護対象の各データベースのリカバリ・ウィンドウ目標に応じたバックアップ記憶領域を管理します。このきめ細かいデータベース指向の詳細な領域管理方法により、サード・パーティ・アプライアンスと同様に、記憶域ボリューム・レベルで領域を管理する必要はなくなります。
-
リカバリ・アプライアンスは、記憶域リソースを単純なモジュラ形式で加算し、バックアップ・トラフィック、記憶域使用量、およびデータベース数の増加に対応するように調整できます。
-
リカバリ・アプライアンス環境
保護対象のデータベースは、データをリカバリ・アプライアンスにバックアップするクライアント・データベースである。
次の図に、6つの保護対象データベースと2つのリカバリ・アプライアンスを含むサンプルの環境を示します。それぞれのデータベースは、そのバックアップにZero Data Loss Recovery Applianceバックアップ・モジュール(リカバリ・アプライアンス・バックアップ・モジュール)を使用します。このモジュールはRMANがネットワーク経由でバックアップをリカバリ・アプライアンスに転送する、Oracle提供のSBTライブラリです。
図4: リカバリ・アプライアンス環境

リカバリ・アプライアンスごとに存在するリカバリ・アプライアンス・メタデータのデータベースは、リカバリ・カタログに保存されているメタデータを管理します。バックアップをリカバリ・アプライアンスに送信する保護対象データベースはすべて、このリカバリ・カタログを使用する必要があります。バックアップは、Oracle ASMディスク・グループ・セットであるリカバリ・アプライアンスの記憶域の場所にあります。ノート:データベースは、リカバリ・アプライアンスをバックアップ・リポジトリとしては使用せずに、リカバリ・カタログとして使用することがあります。
管理者はCloud Controlを使用して環境を管理および監視します。Cloud Controlでは、バックアップが存在する場所(ディスク、テープまたは別のリカバリ・アプライアンス)にかかわらず、各データベースの バックアップ・ライフサイクル全体を一眼で把握することができます。
メモリー管理
メモリー管理では、データベースでの需要の変化に応じて、Oracleインスタンスのメモリー構造の最適なサイズを維持する必要があります。初期化パラメータ設定により、SGAおよびインスタンスPGAメモリーの管理方法が決まります。図22-5に、メモリー管理オプションのデシジョン・ツリーを示します。次の各項では、各オプションの詳細を説明します。
図5: メモリー管理方法

-
自動メモリー管理 自動メモリー管理では、Oracle AI DatabaseによりSGAおよびインスタンスPGAメモリーが完全に自動管理されます。最もシンプルなこの方法を使用することをお薦めします。
-
SGAの共有メモリー管理SGAサイズを手動で制御するには、自動共有メモリー管理を使用してSGAサイズを設定するか、または手動でSGAコンポーネントをチューニングします。
-
インスタンスPGAのメモリ管理自動メモリ管理が有効でない場合は、Oracle AI Databaseは自動または手動のいずれかのPGAメモリ管理を使用します
-
メモリー管理方法の概要メモリー管理は、自動または手動のいずれかです。SGAおよびPGAについてさらに学習するには、「メモリー・アーキテクチャ」を参照してください。
自動メモリー管理
自動メモリー管理では、Oracle AI DatabaseによりSGAおよびインスタンスPGAメモリーが完全に自動管理されます。最もシンプルなこの方法を使用することをお薦めします。
ユーザー指定の制御は、ターゲット・メモリー・サイズ初期化パラメータ(MEMORY_TARGET)と、オプションの最大メモリー・サイズ初期化パラメータ(MEMORY_MAX_TARGET)のみです。Oracle AI Databaseは、ターゲット・メモリー・サイズに合わせて調整され、必要に応じて、SGAとインスタンスPGAの間でメモリーを再配布します。
SGAには、インメモリー列ストア(IM列ストア)またはmemoptimizeプールを含めることができます(いずれもオプションです)。使用するメモリー管理方法にかかわらず、IM列ストアのサイズ設定にはINMEMORY_SIZE初期化パラメータを使用し、memoptimizeプールのサイズ設定にはMEMOPTIMIZE_POOL_SIZE初期化パラメータを使用します。IM列ストアのサイズとmemoptimizeプールはメモリー・ターゲットに含まれますが、自動サイズ変更アルゴリズムによる管理対象ではありません。たとえば、MEMORY_TARGETを5 GBに設定し、INMEMORY_SIZEを1 GBに設定した場合、全体的なメモリー・ターゲットは5 GB (6 GBではない)で、INMEMORY_SIZEは常に1 GBです。
次の図に、オンライン・ユーザーにより発行されたジョブを必要に応じて処理したり、バッチ・ジョブを処理するデータベースを示します。自動メモリー管理を使用すると、データベースは実行するジョブのタイプに応じて、自動的にラージ・プールとデータベース・バッファ・キャッシュのサイズを調整します。以下の図にはIM列ストアおよびメモリー最適化領域は示されていない点に注意してください。
図6: 自動メモリー管理

DBCAでデータベースを作成し、基本インストール・オプションを選択した場合、Oracle AI Databaseではデフォルトで自動メモリー管理が有効化されます。
関連情報:
-
自動メモリー管理について学習するには、『Oracle AI Database管理者ガイド』を参照してください。
SGAの共有メモリー管理
自動共有メモリー管理を使用してSGAサイズを設定するか、手動でSGAコンポーネントをチューニングすることで、SGAのサイズを手動で制御できます。
自動メモリー管理が有効でない場合、システムはSGAに共有メモリー管理を使用します。共有メモリー管理では、次のいずれかのモードを選択できます。
-
自動共有メモリー管理
このモードは、自動メモリー管理が無効になっている場合のデフォルトで、SGAのサイズをより直接的に制御できます。データベースは、SGAの合計サイズをターゲット・サイズにチューニングし、動的にSGAコンポーネントのサイズをチューニングします。サーバー・パラメータ・ファイルを使用している場合、Oracle AI Databaseでは、自動チューニングされたコンポーネントのサイズがデータベース・インスタンス停止後からも保持されます。
-
手動共有メモリー管理
このモードでは、個々のSGAコンポーネントのサイズをいくつか設定し、処理ごとに個々のSGAコンポーネントを手動でチューニングします。個々のSGAコンポーネントのサイズを完全に制御できます。自動メモリー管理および自動共有メモリー管理が両方とも無効になっている場合は、このモードがデフォルトになります。
ノート:自動メモリー管理が無効になっている場合、データベースでは、ユーザー・ワークロードに応じて共有プールとバッファ・キャッシュの相対サイズを自動的に調整できます。
関連情報:
-
共有メモリー管理について学習するには、Oracle AI Database管理者ガイドを参照してください。
-
手動モード中の自動サイズ変更についてさらに学習するには、My Oracle SupportノートKB84770を参照してください。
インスタンスPGAのメモリー管理
自動メモリー管理が有効でない場合は、Oracle AI Databaseは自動または手動のいずれかのPGAメモリー管理を使用します。
PGAメモリーの管理には、次のモードを指定できます。
-
自動PGAメモリー管理
自動メモリー管理(
MEMORY_TARGET)が無効で、PGA_AGGREGATE_TARGETが0(ゼロ)以外の値に設定されている場合、データベースは自動PGAメモリー管理を使用します。このモードでは、PGA_AGGREGATE_TARGETによってインスタンスPGAのソフト・ターゲット・サイズが指定されています。ターゲットが柔軟であるのは、PGAではなく一時領域を使用するように選択できる特定タイプのメモリー割当てにのみ適用されるためです。データベースは、このターゲットに対してインスタンスPGAのサイズをチューニングし、個々のPGAのサイズを動的にチューニングします。ターゲット・サイズを明示的に設定しない場合は、適切なデフォルト値がデータベースによって自動的に構成されます。PGA_AGGREGATE_LIMIT初期化パラメータは、PGAメモリーに対してインスタンス全体の厳しい制限を動的に設定します。パラメータは変化するメモリーの状態に対応するため、明示的にパラメータ値を設定する必要はありません。デフォルトでは、PGA_AGGREGATE_LIMITは次の値より大きい値に設定されます。-
2GB
-
PGA_AGGREGATE_TARGET初期化パラメータ設定の200% -
(
PROCESSES初期化パラメータ設定の値) * 3MB
バックグラウンド・プロセスでは、PGAサイズと
PGA_AGGREGATE_LIMITで設定された制限とを定期的に比較します。制限に達した場合または限度を超過した場合、このプロセスでは、最も調整不可なPGAメモリーを使用してセッションのコールを終了します。これらのセッションによっても十分なメモリーが解放されない場合、それらも終了されます。 -
-
手動PGAメモリー管理
自動メモリー管理が無効で、
PGA_AGGREGATE_TARGETが0に設定されている場合、データベースのデフォルトは手動PGA管理になります。Oracle AI Databaseの以前のリリースでは、DBAが作業領域の最大サイズをSQL演算子(ソートやハッシュ結合など)のタイプごとに手動で指定する必要があった。しかし、ワークロードは常に変化するため、この技法は非常に困難であることがわかりました。Oracle AI Databaseでは手動のPGAメモリー管理方法がサポートされていますが、Oracleでは自動メモリー管理を強くお薦めします。
関連項目: PGAメモリー管理について学習するには、『Oracle AI Databaseパフォーマンス・チューニング・ガイド』を参照してください
メモリー管理方法の概要
メモリー管理は、自動または手動のいずれかです。
自動メモリー管理を有効化しない場合は、SGAおよびPGAのそれぞれに対して個別にメモリー管理方法を構成する必要があります。ノート:自動メモリー管理がデータベース・インスタンス全体に対して無効の場合、Oracle Databaseではデフォルトで、自動PGAメモリー管理が有効になります。
次の表には、INMEMORY_SIZE初期化パラメータとMEMOPTIMIZE_POOL_SIZE初期化パラメータが含まれています。どちらも、オプションのメモリー領域を制御します。
表3メモリー管理方法
| インスタンス | SGA | PGA | 摘要 | 初期化パラメータ |
|---|---|---|---|---|
| 自動 | なし | なし | 1つのインスタンス・ターゲット・サイズに基づいてインスタンスのサイズがチューニングされます。 | 次のように設定します。
|
| なし | 自動 | 自動 | SGAはSGAターゲットに基づいて自動的にチューニングされます。 PGAはPGAターゲットに基づいて自動的にチューニングされます。 |
次のように設定します。
データベースによって |
| なし | 自動 | 手動 | SGAはSGAターゲットに基づいて自動的にチューニングされます。 PGAは、各タイプのSQL演算子の作業領域の最大サイズを指定し、手動で制御します |
次のように設定します。
|
| なし | 手動 | 自動 | SGAは個々のコンポーネント・サイズを設定し、手動で制御します。 PGAはPGAターゲットに基づいて自動的にチューニングされます。 |
次のように設定します。
データベースによって |
| なし | 手動 | 手動 | SGAコンポーネント・サイズを手動で構成する必要があります。 PGAは各タイプのSQL演算子の作業領域の最大サイズを指定し、手動で制御します。 |
SGAコンポーネント・サイズを手動で構成する必要があります。次のように設定します。
|
脚注1
データベースによってPGA_AGGREGATE_LIMIT初期化パラメータが自動的に構成されます。このパラメータを手動で設定するように選択することもできます。
脚注2
データベースによってPGA_AGGREGATE_LIMIT初期化パラメータが自動的に構成されます。このパラメータを手動で設定するように選択することもできます。
関連項目:自動メモリー管理が使用できないプラットフォームもありますので、『Oracle AI Database管理者ガイド』を参照してください。
リソース管理およびタスクのスケジューリング
Oracle AI Databaseには、リソースの管理およびユーザーへの影響を軽減するためのタスクのスケジュールに役立つツールが用意されています。
多数のユーザーがアクティブになるデータベースでは、リソース管理がデータベース管理の重要な部分になります。過度にリソースを消費するセッションのため、他のセッションの処理が停止することがあります。このため、最適なタイミングでタスクを実行するようタスクをスケジューリングする方法が問題となります。Oracle AI Databaseでは、これらの問題を解決するためのツールを提供しています。
-
データベース・リソース・マネージャ Oracle AI Database Resource Manager(リソース・マネージャ)は、ユーザー・アカウント、アプリケーション、およびサービスに割り当てるデータベース・リソースを細かく制御します。リソース・マネージャは、主にゲートキーパーとして機能し、他のジョブを高速で実行できるように一部のジョブを低速で実行します。
-
CPU管理 Oracle AI Database 26ai以降、Oracleは、サーバー上のすべてのデータベース・インスタンス間で動作するCPUリソース管理の代替方法を提供します。
-
Oracle Scheduler Oracle Scheduler(スケジューラ)を使用すると、データベース管理者とアプリケーション開発者はデータベース環境で各種タスクが発生する時期と場所を制御することができます。
データベース・リソース・マネージャ
Oracle AI Database Resource Manager(リソース・マネージャ)は、ユーザー・アカウント、アプリケーション、およびサービスに割り当てるデータベース・リソースを細かく制御します。リソース・マネージャは、主にゲートキーパーとして機能し、他のジョブを高速で実行できるように一部のジョブを低速で実行します。
DBMS_RESOURCE_MANAGER PL/SQLパッケージを使用することで、オペレーティング・システムでは十分に管理できない次の多くのリソース割当ての問題が解決されます。
-
過剰なオーバーヘッドの発生
-
非効率的なスケジューリング
-
不適当なリソースの割当て
-
データベース固有のリソース管理ができない状態
リソース・マネージャは、データベースでのハードウェア・リソース割当ておよびデータベース内の処理の優先順位付けの操作性を向上することによって、前述の問題に対応します。セッションをセッション属性に基づいてグループに分類し、これらのグループにリソースを割り当てることで、ハードウェアの利用率を最適化できます。リソース・マネージャを使用して、PDBメモリー消費の制限を設定できます。
リソースは、データベース管理者が指定したリソース・プランに従ってユーザーに割り当てられます。リソース・プランは、リソース要件に従ってグループ化されたユーザー・セッションである、リソース・コンシューマ・グループ間でのリソースの分配方法を指定します。リソース・プラン・ディレクティブは、リソース・コンシューマ・グループをプランに関連付け、グループにリソースを割り当てる方法を指定します。図22-7に、昼間にOLTPアプリケーションとレポート・アプリケーションを同時に実行する組織で使用する簡単なリソース・プランを示します。現在アクティブなプランDAYTIMEによって、3つのリソース・コンシューマ・グループにCPUリソースが割り当てられます。具体的には、CPUタイムの75%がOLTPに、15%がREPORTSに、残りの10%がOTHER_GROUPSに割り当てられています。
図7: 簡単なリソース・プラン

リソース・マネージャで解決できる問題の1つは、SQLモニターを使用して監視できるランナウェイ問合せです。リソース・マネージャを使用すると、ランナウェイSQL文を特定して対応するためのしきい値を指定できます。たとえば、CPU時間、経過時間、物理I/Oまたは論理I/Oのしきい値と、コンシューマ・グループの各前面プロセスによるPGA使用量を指定できます。リソース・マネージャは対応として、優先度の低いコンシューマ・グループへの切替え、SQL文の終了、またはしきい値違反のログ記録を行うことができます。
関連情報:
-
リソース・マネージャの使用方法について学習するには、『Oracle AI Database管理者ガイド』を参照
-
DBMS_RESOURCE_MANAGERPL/SQLパッケージの使用方法を学習するには、『Oracle AI Database PL/SQLパッケージおよびタイプ・リファレンス』に関する項を参照してください。
CPU管理
Oracle AI Database 26ai以降、Oracleは、サーバー上のすべてのデータベース・インスタンス間で動作するCPUリソース管理の代替方法を提供します。
以前のリリースでは、データベース・インスタンス内で動作する、CPUリソース管理の1つの方法が提供されていました。Oracle AI Database 26ai以降では、RESOURCE_MANAGER_CPU_SCOPEを設定してCPUリソース管理の範囲を制御できます。このパラメータを使用すると、2つの制御方法から選択することができます。
RESOURCE_MANAGER_CPU_SCOPEをSERVER_WIDEに設定すると、サーバー・レベルのインスタンス間のCPUリソース管理が有効になります。Oracle AI Database 26aiで導入されたこの方法は、複数のデータベース・インスタンスが1人のLinuxサーバーを共有する場合に使用できます。これにより、サーバー上のすべてのデータベース・インスタンスにわたるCPUリソース管理が可能になります。この方法を使用すると、Oracleは、目的のCPU共有およびCPU使用率制限を使用してLinux制御グループ(cgroups)を自動的に構成し、データベース・セッションを適切なcgroupに配置します。
RESOURCE_MANAGER_CPU_SCOPEは、デフォルトでINSTANCE_ONLYに設定されます。
関連情報:
- CPU管理オプションについて学習するには、『Oracle AI Database管理者ガイド』を参照してください。
Oracle Scheduler
Oracle Scheduler (スケジューラ)を使用すると、データベース管理者とアプリケーション開発者はデータベース環境で各種タスクが発生する時期と場所を制御することができます。
スケジューラには、企業向けの複雑なスケジューリング機能が用意されており、次の操作を実行できます。
-
時間またはイベントに基づくジョブ実行スケジュール
-
ビジネス要件をモデル化する方法によるジョブ・プロセスのスケジュール
-
ジョブの管理と監視
-
クラスタ化された環境におけるジョブの実行と管理
プログラム・オブジェクト(プログラム)には、引数のデフォルト値を含む、スケジューラで実行されるコマンドに関するメタデータが含まれます。スケジュール・オブジェクト(スケジュール)には、実行日時および反復パターンに関する情報が含まれます。ジョブ・オブジェクト(ジョブ)は、プログラムをスケジュールに対応付けます。実行するジョブおよびその時間を定義するには、プログラム、スケジュール、およびジョブ間の関係を割り当てます。
スケジューラは、DBMS_SCHEDULER PL/SQLパッケージ内の一連のファンクションおよびプロシージャとして実装されています。このパッケージまたはEnterprise Managerを使用して、スケジューラ・オブジェクトを作成および操作します。スケジューラ・オブジェクトは標準データベース・オブジェクトであるため、システム権限およびオブジェクト権限により、これらのオブジェクトへのアクセスを制御できます。図22-8に、スケジューラの基本アーキテクチャを示します。ジョブ表はすべてのジョブのコンテナであり、各データベースに1つの表を持っています。ジョブ・コーディネータ・バックグラウンド・プロセスは、必要に応じて自動的に起動および停止します。ジョブ子プロセスは、ジョブの実行時間になるとジョブ・コーディネータによって起動されます。子プロセスはジョブ表からメタデータを収集し、ジョブを実行します。
図8: スケジューラ・コンポーネント

関連情報:
-
スケジューラについて学習するには、Oracle AI Database管理者ガイドを参照してください
パフォーマンスおよびチューニング
DBAは、対象とするOracle Databaseのパフォーマンスを適切に保つ責任を担っています。一般的に、パフォーマンス上の問題は、許容されないレスポンス時間(特定のワークロードを完了するためにかかる時間)またはスループット(特定の時間内で完了できる作業量)によって発生します。
典型的な問題が生じるのは、以下のような場合です。
-
CPUのボトルネック
-
メモリー構造のサイズ不足
-
I/O容量の問題
-
非効率的SQL文または高負荷SQL文
-
SQL文チューニングの後の予期しないパフォーマンス低下
-
同時実行性および競合に関連する問題
-
データベース構成の問題
チューニングの一般的な目標は通常、レスポンス時間の短縮、スループットの向上、またはその両方です。具体的で測定可能な目標は、「指定されたSELECT文のレスポンス時間を5秒以下に短縮する」ことです。この目標を達成できるかどうかは、DBAが制御できる要因とできない要素によって変わります。一般的に、チューニングは、データベース・リソースを可能なかぎり効率的に使用することによって、具体的かつ測定可能、および達成可能なチューニング目標を達成するための作業です。
Oracleパフォーマンス・メソッドは、データベース内のボトルネックの識別と解消、および効率的なSQL文の開発に基づいています。Oracleパフォーマンス・メソッドには、次のタスクが含まれます。
-
チューニング前の準備
-
定期的なデータベースの予防的チューニング
-
ユーザーからのパフォーマンス上の問題報告に対応するデータベースのチューニング
-
負荷の高いSQL文の識別、チューニング、および最適化
この項では、アドバイザの使用など、Oracle AI Databaseパフォーマンス・チューニングの基本的な事柄を説明します。Oracle AI Databaseアドバイザは、領域、パフォーマンスおよびUNDO管理を含んだ広範囲に及んだデータベース管理の主要な問題の解決に対し、特別なアドバイスを提供します。
-
データベースの自己監視データベースの自己監視は通常の処理を実行しながら、データベースの発生時にすぐに問題を検知できるように自己をモニターしています。Oracle AI Databaseでは、サーバー生成アラートを送信して、差し迫った問題を通知できます。
-
自動ワークロード・リポジトリ(AWR)自動ワークロード・リポジトリ(AWR)は、システム、セッション、個々のSQL文、セグメント、およびサービスの累積統計など、履歴パフォーマンス・データを保存するリポジトリである。
-
自動データベース・モニター(ADDM)AWR (自動ワークロード・リポジトリ)で取得された統計を使用して、「ADDM」は、データベース・パフォーマンスを自動的に的および予防的に診断し、識別された問題の解決方法を決定します。ADDMは手動でも実行できます。
-
アクティブ・セッション履歴(ASH)アクティブ・セッション履歴(ASH)では、アクティブなデータベース・セッションが毎秒サンプリングされ、データがメモリーおよび永続ストレージに書き込まれます。ASHはデータベース自己管理フレームワークの重要な部分であり、パフォーマンス上の問題を診断する場合に役立ちます。
-
アプリケーションおよびSQLチューニング Oracle Databaseでは、SQLチューニング・プロセスが完全に自動化されます。関連項目: Oracleパフォーマンス・メソッドの実装方法を学習するには、『Oracle AI Databaseパフォーマンス・チューニング・スタート・ガイド』および『Oracle AI Database SQLチューニング・ガイド』を参照してください。
データベースの自己監視
データベースは通常の処理を実行しながら、問題の発生時にすぐに問題を検知できるように自己を監視しています。Oracle AI Databaseでは、サーバー生成アラートを送信して、差し迫った問題を通知できます。
アラートは、問題が発生した場合、または毎秒物理読取りまたはSQLレスポンス時間などのメトリックの予想値とデータが一致しない場合に、自動的に生成されます。メトリックとは、累積的な統計における変化の割合のことです。サーバー生成アラートは、ユーザー指定のしきい値に基づいて、またはイベントの発生に従って生成されるように設定できます。
サーバー生成アラートは問題を特定するだけでなく、報告された問題の解決方法も推奨します。たとえば、高速リカバリ領域の不足を通知するアラートでは、不要になった古いバックアップを削除するか、追加のディスク領域を追加するように推奨されます。
関連項目: 『Oracle AI Database管理者ガイド』
自動ワークロード・リポジトリ(AWR)
自動ワークロード・リポジトリ(AWR)は、システム、セッション、個々のSQL文、セグメントおよびサービスの累積統計など、履歴パフォーマンス・データを保存するリポジトリである。
AWR統計は、パフォーマンスのチューニングなどの基礎となります。AWRは問題の検出とチューニングに利用されるデータベース統計を自動的に集計し、データベースの自己管理において重要な役割を果します。
次の図に示すように、データベースは最新のAWR統計をSGAに格納します。デフォルトでは、MMONプロセスは、1時間ごとに統計を収集し、AWRスナップショットを作成します。AWRスナップショットは、ある時点で取得されたパフォーマンス統計セットです。データベースは、スナップショットをSYSAUX表領域を書き込みます。AWRは、スナップショット領域を管理し、構成可能なスナップショット保存ポリシーに従って古いスナップショットをパージします。
図9: 自動ワークロード・リポジトリ(AWR)

AWRベースラインは統計率の集合であり、通常、ピーク負荷時にはシステムが良好に動作していたときに取得されたものが使用されます。一対または一定の範囲のAWRスナップショットをベースラインとして指定できます。AWRレポートを使用して、パフォーマンスが低下したときに取得した統計とベースラインを比較することによって問題を診断できます。
AutoTaskと呼ばれる自動メンテナンス・インフラストラクチャは、Oracle DatabaseがどのようにAWRを使用して自己管理を行っているかを示します。AWRデータを分析することによって、AutoTaskはメンテナンス・タスクの必要性を判断し、必要なメンテナンス・タスクがOracle Schedulerメンテナンス・ウィンドウで実行されるようにスケジュールします。タスクの例としては、オプティマイザの統計の収集や自動セグメント・アドバイザの実行があります。
関連情報:
-
AWRについて学習するには、『Oracle AI Databaseパフォーマンス・チューニング・ガイド』を参照してください。
-
自動メンテナンス・タスクの管理方法を学習するには、『Oracle AI Database管理者ガイド』を参照
自動データベース・モニター(ADDM)
AWR (自動ワークロード・リポジトリ)で取得された統計を使用して、ADDMは、データベース・パフォーマンスを自動的および予防的に診断し、識別された問題の解決方法を決定します。ADDMは手動でも実行できます。Automatic Database Diagnostic Monitor (ADDM)はOracle Databaseに組み込まれているセルフアドバイザです。
ADDMでは、コンポーネント間の共通判断尺度として時間を使用し、システムのパフォーマンスに対して総合的にアプローチします。ADDMは、最も時間のかかっているOracle Databaseの領域を特定します。たとえば、データベースが使用可能なデータベース・バッファの待機に長時間費やしていると想定します。ADDMは、単に症状を示すのではなく、問題を掘り下げて根本原因を特定し、その問題がOracle Database全体に及ぼす影響を報告します。プロセス中のオーバーヘッドは、最小限に抑えられています。
ほとんどの場合、ADDMは解決策を推奨し、パフォーマンス向上の予想を数量化します。たとえば、ADDMはハードウェア、データベース構成、データベース・スキーマまたはアプリケーションを変更するよう推奨します。ADDMは、推奨を行う場合、時間的な利点を報告します。時間を尺度として使用することによって、問題と推奨の利点を比較検討できます。
潜在的なパフォーマンスの問題報告に加え、ADDMは、問題のないデータベース領域を示します。I/Oやメモリーなど、データベース・パフォーマンスに大きな影響を与えないサブコンポーネントは、初期段階で分類ツリーから除かれます。ADDMではこれらのサブコンポーネントがリストされるため、管理者はそれらの領域での処理による成果が少ないことを速やかに理解できます。
関連項目: 『Oracle AI Databaseパフォーマンス・チューニング・スタート・ガイド』および『Oracle AI Databaseパフォーマンス・チューニング・ガイド』
アクティブ・セッション履歴(ASH)
アクティブ・セッション履歴(ASH)では、アクティブなデータベース・セッションが毎秒サンプリングされ、データがメモリーおよび永続ストレージに書き込まれます。ASHはデータベース自己管理フレームワークの重要な部分であり、パフォーマンス上の問題を診断する場合に役立ちます。
インスタンス・レベルで統計を集計する自動ワークロード・リポジトリ(AWR)とは異なり、ASHはセッション・レベルで統計を集計します。アクティブ・セッションとは、CPUを使用しているセッションで、アイドル待機クラスのイベントを待機していないセッションのことです。
Enterprise ManagerまたはSQLスクリプトを使用してASHレポートを生成し、指定した期間に集計されたセッション統計を取得できます。ASHレポートは、次の目的に使用できます。
-
自動データベース診断モニター(ADDM)によって識別されない短期間のパフォーマンス上の問題の分析
-
時間、セッション、モジュール、アクション、またはSQL IDなど、様々なディメンションまたはその組合せによる、指定対象またはターゲットのパフォーマンス分析
たとえば、10:00 p.m.から10:02 p.m.の間にデータベースの速度が低下したという報告をあるユーザーから受け取ったとします。ただし、10:00 p.m.から11:00 p.m.までのAWRスナップショット間隔では、2分間のパフォーマンス低下は短すぎて、ADDMの結果には表示されません。ASHレポートは、このような一過性の問題の原因を特定する場合に役立ちます。
関連項目: 『Oracle AI Databaseパフォーマンス・チューニング・スタート・ガイド』および『Oracle AI Databaseパフォーマンス・チューニング・ガイド』
アプリケーションとSQLチューニング
Oracle Databaseは、SQLのチューニング処理を完全に自動化します。
ADDMは、システム・リソースを大量に使用し、それが原因でパフォーマンス上の問題を引き起こすSQL文を識別します。さらに、CPUと共有メモリーの使用量の観点で上位を占めるSQL文は、AWRに自動的に格納されます。高い負荷のSQL文の識別は、自動的に実施されるため、人的な介入は不要です。
-
EXPLAIN PLAN文
EXPLAIN PLAN文などのツールを使用すると、オプティマイザが選択した実行計画を表示できます。 -
オプティマイザ統計アドバイザオプティマイザ統計アドバイザは、現在統計を収集している状況、既存の統計収集ジョブの有効性、および収集された統計の品質を分析する診断ソフトウェアである。オプティマイザ統計アドバイザは、自動データベース診断モニター(ADDM)、SQLパフォーマンス・アナライザおよびその他のアドバイザと同じアドバイザ・フレームワークを使用します。
-
SQLチューニング・アドバイザ自動SQLチューニングのインタフェースは、SQLチューニング・アドバイザで、これはシステム・メンテナンス・ウィンドウ中にメンテナンス・タスクとして自動的に実行されます。
-
SQLアクセス・アドバイザSQLアクセス・アドバイザを使用して、SQL問合せの分析、およびスキーマ・オブジェクトの最適化や問合せのチューニングの方法の決定を支援します。
-
SQLプラン管理 SQL計画管理を使用してテスト済の計画と検証済計画のみを実行することで、SQLの実行計画を管理します。
EXPLAIN PLAN文
EXPLAIN PLAN文などのツールを使用すると、オプティマイザが選択した実行計画を表示できます。
EXPLAIN PLANは、指定したSQLの問合せが現行のセッション内で実行された場合の、その問合せに対する問合せ計画を示します。その他のツールは、Oracle Enterprise ManagerとSQL*Plus AUTOTRACEコマンドです。
関連項目: EXPLAIN PLANについて学習するには、Oracle AI Database SQL言語リファレンスを参照してください。
オプティマイザ統計アドバイザ
オプティマイザ統計アドバイザは、現在の統計収集の状況、既存の統計収集ジョブの有効性、および収集された統計の品質を分析する診断ソフトウェアです。オプティマイザ統計アドバイザは、自動データベース診断モニター(ADDM)、SQLパフォーマンス・アナライザおよびその他のアドバイザと同じアドバイザ・フレームワークを使用します。
オプティマイザ統計アドバイザは、ベスト・プラクティスに依存する従来のアプローチに次の利点を提供します。
-
理解しやすいレポートを提供
-
アプリケーション・コードを変更せずに必要な修正を実装するスクリプトを提供します
-
AUTO_STATS_ADVISOR_TASKという事前定義タスクをメンテナンス・ウィンドウで1日に1回実行します -
手動によるタスクの作成および実行、データ・ディクショナリ・ビューでの結果および推奨事項の保存、タスク用のレポートの生成、および必要時の修正の実装を可能にする
DBMS_STATSパッケージのAPIを提供します -
Oracle Enterprise Manager (Enterprise Manager)などの既存ツールと統合します
オプティマイザ統計アドバイザは、アドバイザがそのチェックを実行する際に使用するOracle提供の標準であるルールを維持します。ルールにより、現在の機能セットに基づいてOracleのベスト・プラクティスを体現します。ベスト・プラクティスをリリースからリリースに変更すると、オプティマイザ統計アドバイザ・ルールも変更します。このように、アドバイザは、常に最新の推奨事項を提供します。
オプティマイザ統計アドバイザは、統計収集プロセスを検査してから、ルール違反の結果のレポートを生成します。アドバイザが推奨を行い、その推奨に基づいてアクションを提案する場合、ユーザーはそのアクションを自動的に実装するか、編集可能かつ実行可能なPL/SQLスクリプトを生成することができます。
アドバイザ・タスクは、メンテナンス・ウィンドウで自動的に実行されますが、オンデンドで実行することもできます。
関連情報:
-
オプティマイザ統計アドバイザについてさらに学習するには、『Oracle AI Database SQLチューニング・ガイド』を参照してください
-
DBMS_STATSパッケージについて学習するには、『Oracle AI Database PL/SQLパッケージおよびタイプ・リファレンス』を参照
SQLチューニング・アドバイザ
自動SQLチューニングのインタフェースはSQLチューニング・アドバイザで、これはシステム・メンテナンス期間中にメンテナンス・タスクとして自動的に実行されます。
それぞれの自動実行中、アドバイザはデータベース内の負荷の大きいSQL問合せを選択し、これらの問合せに対するチューニングの推奨設定を生成します。
SQLチューニング・アドバイザの推奨設定は、次のカテゴリに分類されます。
-
統計分析
-
SQLプロファイリング
-
アクセス・パス分析
-
SQL構造分析
SQLプロファイルには、SQL文に固有の追加統計が含まれており、これによりオプティマイザでは改良された実行計画を生成できます。基本的には、SQLプロファイルが問合せを分析する方法です。アクセス・パスとSQL構造分析は、開発中のアプリケーションや社内で本番アプリケーションをチューニングする場合に役立ちます。
SQLチューニング・アドバイザの主要な利点は、外部ツールではなく、オプティマイザからソリューションが提供されることです。このため、チューニングは実行計画とSQLパフォーマンスを担当するデータベース・コンポーネントによって実行されます。チューニング処理では、SQL文の過去の実行統計が考慮され、その文に対するオプティマイザ設定がカスタマイズされます。
SQLアクセス・アドバイザ
SQLアクセス・アドバイザを使用すると、SQL問合せ分析およびスキーマ・オブジェクトの最適化や問合せのチューニングの方法の決定に役立ちます。
SQLアクセス・アドバイザは、データ・アクセス・パスを最適化する方法についてのアドバイスを提供します。具体的には、パーティション、マテリアライズド・ビュー、索引、マテリアライズド・ビュー・ログを使用してデータベース・パフォーマンスを向上させる方法が推奨されます。
パーティションや索引などのスキーマ・オブジェクトは、複雑でデータ集中型の問合せを最適化するために必要不可欠です。ただし、これらのオブジェクトの作成およびメンテナンスには時間がかかり、領域要件も重要になります。SQLアクセス・アドバイザでは、指定されたワークロードに対応するデータ構造を推奨し、この推奨をパフォーマンス目標の達成に役立てることができます。
SQLアクセス・アドバイザは、ウィザードを使用してEnterprise Managerから実行するか、DBMS_ADVISORパッケージを使用して実行できます。DBMS_ADVISORは、任意のPL/SQLプログラムからコール可能な分析およびアドバイザ用のファンクションおよびプロシージャの集合です。
関連項目: 『Oracle AI Databaseパフォーマンス・チューニング・スタート・ガイド』および『Oracle AI Database SQLチューニング・ガイド』
SQL計画管理
SQL計画管理を使用してテスト済計画と検証済計画のみを実行することで、SQL実行計画を管理します。
SQL計画管理(SPM)展開アドバイザは、スケジュールされたメンテナンス・ウィンドウで毎日実行され、すべての承認されていない計画をランク付けし、できるだけ多くの計画のテスト実行を行います。SPM展開アドバイザは、SQL計画ペースラインで最もコストの低い確定済計画を選択し、承認されていない各計画と比較します。承認されていない計画が既存の承認済の計画よりもパフォーマンスが高い場合、アドバイザが自動的にその計画を承認します。
高頻度SPMが有効になっている場合、メンテナンス・ウィンドウ外の定期的なバックグラウンド・タスクでSPM展開アドバイザが実行され、よりタイムリなパフォーマンス改善が可能になります。高頻度タスクは大量のシステム・リソースを使用するSQL文を特定し、以前に使用したSQL実行計画の方が高いパフォーマンスを期待できるかどうかをチェックします。そうである場合、新しいSQL計画ベースラインが作成され、以前のSQL実行計画が強制されてSQLパフォーマンスの低下が修復されます。
Oracle Database 26ai以降では、SQL文で新しいSQL実行計画が使用される場合に、リアルタイムSPMによるパフォーマンス分析が即時に開始されます。以前に見られたSQL実行計画のパフォーマンスが高い場合は、バックグラウンド・タスクに依存せずに、新しいSQL計画ベースラインが即座に作成されます。
関連情報:
-
SQL計画管理について学習するには、Oracle AI Database SQLチューニング・ガイドを参照してください。