ヘッダーをスキップ

Oracle Database 概要
10gリリース2(10.2)

B19215-02
目次
目次
索引
索引

戻る 次へ

12 データベースとインスタンスの起動と停止

この章では、Oracleのインスタンスおよびデータベースの起動と停止に関連する手順を説明します。

この章の内容は、次のとおりです。

Oracleインスタンスの概要

稼働中のすべてのOracleデータベースは、Oracleインスタンスに対応付けられます。データベース・サーバー上で(コンピュータの種類に関係なく)データベースを起動すると、Oracleによってシステム・グローバル領域(SGA)と呼ばれるメモリー領域が割り当てられ、1つ以上のOracleプロセスが開始されます。このSGAとOracleプロセスを組み合せて、Oracleインスタンスと呼びます。インスタンスのメモリーとプロセスは、対応付けられたデータベースのデータを効果的に管理し、データベースを使用する1人以上のユーザーのために機能します。

図12-1にOracleインスタンスを示します。

図 12-1    Oracleインスタンス


画像の説明

関連項目

 

インスタンスとデータベース

インスタンスを起動した後、Oracleは指定されたデータベースにインスタンスを対応付けます。これはマウントされたデータベースです。これでデータベースをオープンできるようになり、許可されたユーザーがアクセスできるようになります。

複数のインスタンスを同時に同じコンピュータ上で実行し、それぞれ専用の物理データベースにアクセスさせることができます。大規模クラスタ・システムでは、Real Application Clustersにより、複数のインスタンスが1つのデータベースをマウントできます。

データベース管理者のみが、インスタンスを起動してデータベースをオープンできます。データベースがオープンされている場合、データベース管理者はそのデータベースを停止してクローズできます。データベースがクローズされている場合、ユーザーはそのデータベース内の情報にアクセスできません。

データベースの起動と停止のセキュリティは、管理者権限を使用してOracleに接続することによって制御されます。一般のユーザーは、Oracleデータベースの現在の状態を制御できません。

管理者権限での接続

データベースの起動と停止は強力な管理オプションであり、管理者権限を使用してOracleに接続するユーザーのみがこれを行うことができます。ユーザーの管理者権限を確立するには、オペレーティング・システムに応じて、次のいずれかの条件が必要です。

SYSDBA権限で接続すると、ユーザーはSYSが所有するスキーマ内に置かれます。SYSOPERとして接続すると、そのユーザーはパブリック・スキーマ内に置かれます。 SYSOPER権限は、SYSDBA権限のサブセットです。

関連項目

  • 各オペレーティング・システムにおける管理者権限の機能の詳細は、オペレーティング・システム固有のOracleマニュアルを参照してください。

  • データベース管理者を認証するときのパスワード・ファイルと認証方式の詳細は、第20章「データベース・セキュリティ」を参照してください。

 

初期化パラメータ・ファイルとサーバー・パラメータ・ファイル

インスタンスを起動するには、Oracleは初期化パラメータ・ファイルまたはサーバー・パラメータ・ファイルを読み取る必要があります。これらのファイルには、インスタンスおよびデータベースの構成パラメータのリストが格納されます。Oracleでは従来より、初期化パラメータはテキスト形式の初期化パラメータ・ファイルに格納されます。またバイナリ形式のサーバー・パラメータ・ファイル(SPFILE)に保持するように選択することもできます。

サーバー・パラメータ・ファイルに格納されている初期化パラメータは永続的です。つまり、インスタンスの実行中に行われたパラメータへの変更は、インスタンスを停止して起動しても残ります。

初期化パラメータは、基本と拡張という2つのグループに分かれています。ほとんどの場合、妥当なパフォーマンスが得るには、基本パラメータのみを設定およびチューニングする必要があります。ただし最適なパフォーマンスを得るために、拡張パラメータの変更が必要になる場合があります。

ほとんどの初期化パラメータは、次のグループのいずれかに属しています。

主に、初期化パラメータはOracleに次のことを伝えます。

パラメータ値の変更方法

データベース管理者は、データベース・システムのパフォーマンスを改善するために、可変パラメータを調整できます。どのパラメータがシステムに最も強い影響を与えるかは、データベースの様々な特性や変数によって異なります。

一部のパラメータは、インスタンスの実行中にALTER SESSION文またはALTER SYSTEM文を使用して動的に変更できます。サーバー・パラメータ・ファイル(SPFILE)を使用していないかぎり、ALTER SYSTEM文を使用して行われる変更は、現行インスタンスにのみ有効になります。次回のインスタンス起動時に変更内容を確認するには、テキスト初期化パラメータ・ファイルを手動で更新する必要があります。SPFILEを使用すると、データベースの停止時と起動時で変更内容が一致するように、ディスク上のパラメータを更新できます。

Oracleは、データベース・ソフトウェアで提供される最初の初期化パラメータ・ファイル、またはデータベース・コンフィギュレーション・アシスタントにより作成される最初の初期化パラメータ・ファイルに値を提供します。構成、オプションおよびデータベースのチューニング計画に応じて、これらのOracle提供の初期化パラメータを編集し、他のパラメータを追加できます。該当する初期化パラメータが初期化パラメータ・ファイルに特に組み込まれていない場合には、デフォルトが用意されています。Oracleデータベースを初めて作成する場合は、パラメータ値の変更数を最小限に抑えることをお薦めします。

関連項目

  • 初期化パラメータの詳細とサーバー・パラメータ・ファイルの使用方法は、『Oracle Database 管理者ガイド』を参照してください。

  • すべての初期化パラメータの説明は、『Oracle Databaseリファレンス』を参照してください。

  • SGAに影響するパラメータの詳細は、「SGA_MAX_SIZE初期化パラメータ」を参照してください。

 

インスタンスとデータベースの起動の概要

Oracleデータベースを起動して、システム全体で使用可能にするには、次の3つの操作を行います。

  1. インスタンスを起動します。

  2. データベースをマウントします。

  3. データベースをオープンします。

データベース管理者は、SQL*PlusのSTARTUP文やEnterprise Managerを使用してこれらの手順を実行できます。

関連項目

『Oracle Database 2日でデータベース管理者』  

インスタンスの起動方法

Oracleは、インスタンスを起動するときに、サーバー・パラメータ・ファイル(SPFILE)または初期化パラメータ・ファイルを読み取って、初期化パラメータの値を判別します。その後、データベース情報用の共有メモリー領域であるSGAを割り当てて、バックグラウンド・プロセスを作成します。この時点では、これらのメモリー構造とプロセスにデータベースは対応付けられていません。

関連項目

 

インスタンスの起動の制限モード

インスタンスを制限モードで起動したり、既存のインスタンスを制限モードに変更できます。これにより、接続はRESTRICTED SESSIONシステム権限を付与されているユーザーのみに制限されます。

異常な状況での強制起動

異常な状況では、直前のインスタンスが正常に停止していないことがあります。たとえば、インスタンスのプロセスのいずれかが正常に終了していないことがあります。そのような状況では、次回インスタンスを通常起動するときにデータベースからエラーが戻されます。この問題を解決するには、直前のインスタンスの残りのOracleプロセスをすべて終了してから、新しいインスタンスを起動する必要があります。

データベースのマウント方法

インスタンスは、データベースをマウントして、データベースをそのインスタンスに関連付けます。データベースをマウントすると、そのインスタンスはデータベース制御ファイルを見つけてオープンします。制御ファイルは、インスタンスの起動に使用したパラメータ・ファイルのCONTROL_FILES初期化パラメータに指定されます。その後でOracleは制御ファイルを読み込み、データベースのデータファイルとREDOログ・ファイルの名前を取得します。

マウント直後のデータベースはまだクローズされているため、データベース管理者のみがそのデータベースにアクセスできます。データベース管理者は、特定のメンテナンス操作を完了するまでの間、データベースをクローズしたままにしておくことができます。ただし、データベースに対して通常の操作を行うことはまだできません。

Real Application Clustersを使用したデータベースのマウント方法

Oracleで複数のインスタンスが同じデータベースを同時にマウントできる場合には、データベース管理者はCLUSTER_DATABASE初期化パラメータを使用して、複数のインスタンスでデータベースが使用可能にできます。CLUSTER_DATABASEパラメータのデフォルト値はfalseです。Real Application ClustersをサポートしていないOracleのバージョンでは、CLUSTER_DATABASEパラメータに設定できる値はfalseのみです。

データベースをマウントする最初のインスタンスのCLUSTER_DATABASEパラメータが
falseの場合は、最初のインスタンスのみがデータベースをマウントできます。このCLUSTER_DATABASEパラメータがtrueに設定されていると、他のインスタンスもCLUSTER_DATABASEパラメータがtrueに設定されている状態でデータベースをマウントできます。データベースをマウントできるインスタンスの数は、データベースの作成時に指定した最大数によって決まります。

関連項目

  • 『Oracle Real Application Clusters インストレーションおよび構成』

  • 『Oracle Database Oracle Clusterwareおよび Oracle Real Application Clusters管理およびデプロイメント・ガイド』

1つのデータベースでの複数のインスタンスの使用方法の詳細は、次のマニュアルを参照してください。 

スタンバイ・データベースのマウント方法

スタンバイ・データベースは、プライマリ・データベースの複製をメンテナンスし、障害発生時も引き続き使用できるようにします。

スタンバイ・データベースは、常にリカバリ・モードになっています。スタンバイ・データベースをメンテナンスするには、ALTER DATABASE文を使用してスタンバイ・モードでマウントし、プライマリ・データベースによって生成されるアーカイブREDOログを適用する必要があります。

スタンバイ・データベースは、読取り専用モードでオープンして、一時的なレポート用データベースとして使用できます。スタンバイ・データベースを読取り/書込みモードでオープンすることはできません。

関連項目

 

クローン・データベースのマウント方法

クローン・データベースは、表領域のPoint-in-Timeリカバリに使用できる、データベースの特殊コピーです。表領域のPoint-in-Timeリカバリを実行する場合は、クローン・データベースをマウントし、表領域を目的の時点までリカバリします。次に、クローンからプライマリ・データベースにメタデータをエクスポートし、リカバリされた表領域からデータファイルをコピーします。

関連項目

クローン・データベースと表領域のPoint-in-Timeリカバリの詳細は、『Oracle Databaseバックアップおよびリカバリ・アドバンスト・ユーザーズ・ガイド』を参照してください。 

データベースのオープン時の動作

マウントされたデータベースをオープンすると、そのデータベースで通常のデータベース操作を実行できるようになります。有効なユーザーは、オープン状態のデータベースに接続して、データベースの情報にアクセスできます。通常、データベース管理者は、データベースをオープンして一般に使用できる状態にします。

データベースをオープンすると、Oracleはオンライン・データファイルとREDOログ・ファイルをオープンします。データベースを前回停止したときに表領域がオフラインであった場合は、データベースを再オープンしたとき、その表領域と対応するデータファイルはオフラインのままです。

データベースをオープンしようとしたときに、データファイルまたはREDOログ・ファイルのうち存在していないファイルがあると、Oracleからエラーが戻されます。そのデータベースをオープンするには、破損または欠落したファイルのバックアップからリカバリする必要があります。

関連項目

オフライン表領域をオープンする方法については、「オンライン表領域とオフライン表領域」を参照してください。 

インスタンス・リカバリ

データベース管理者がインスタンスを終了させたため、または停電などのためにデータベースが異常にクローズされた場合、Oracleはデータベースの再オープン時にリカバリを自動的に実行します。

UNDO領域の取得と管理

データベースをオープンするときに、インスタンスは1つ以上のUNDO表領域を取得しようとします。自動UNDO管理モードと手動UNDO管理モードのどちらでインスタンスを起動するかを、UNDO_MANAGEMENT初期化パラメータにより決定します。サポートされる値は、AUTOMANUALです。AUTOの場合、インスタンスは自動UNDO管理モードで起動されます。デフォルト値は、MANUALです。

インダウト分散トランザクションの解決

場合によっては、データベースが異常にクローズし、1つ以上の分散トランザクションがインダウト(コミットもロールバックもされない状態)になることがあります。データベースを再オープンし、リカバリが完了すると、RECOバックグラウンド・プロセスがただちに自動的に実行されて、インダウト分散トランザクションが矛盾のないように解決されます。

関連項目

分散トランザクションの障害からのリカバリの詳細は、『Oracle Database 管理者ガイド』を参照してください。 

データベースの読取り専用モードでのオープン

データベースは、ユーザー・トランザクションによってデータが変更されるのを防ぐために、読取り専用モードでオープンできます。読取り専用モードでは、データベース・アクセスは読取り専用トランザクションに限定され、データファイルやREDOログ・ファイルに書き込むことはできません。

制御ファイル、オペレーティング・システムの監査証跡、トレース・ファイルおよびアラート・ログなど、他のファイルへのディスク書込みは、読取り専用モードでも実行できます。データベースを読取り専用モードでオープンしても、ソート操作用の一時表領域には影響しません。ただし、データベースを読取り専用モードでオープンしている間は、永続表領域はオフライン化できません。また、読取り専用モードでは、ジョブ・キューを使用できません。

データベース・リカバリや、REDOデータを生成しないでデータベースの状態を変更する操作には、制限はありません。たとえば、読取り専用モードでは、次の操作を実行できます。

読取り専用モードの利点の1つは、スタンバイ・データベースが一時レポート用データベースを使用できることです。

関連項目

データベースを読取り専用モードでオープンする方法の詳細は、『Oracle Database 管理者ガイド』を参照してください。 

データベースとインスタンスの停止の概要

データベースとそれに対応付けられたインスタンスを停止するには、次の3つの操作を行います。

  1. データベースをクローズします。

  2. データベースをアンマウントします。

  3. インスタンスを停止します。

データベース管理者は、これらの手順をEnterprise Managerを使用して実行できます。Oracleでは、インスタンスの停止時にこの3つの手順が自動的に実行されます。

関連項目

『Oracle Database 2日でデータベース管理者』 

データベースのクローズ

データベースをクローズすると、SGAにあるすべてのデータベース・データとリカバリのためのデータが、それぞれデータファイルとREDOログ・ファイルに書き込まれます。次に、Oracleがすべてのオンライン・データファイルとREDOログ・ファイルをクローズします。(オフライン表領域のオフライン・データファイルは、すでにクローズされています。オフラインになっていた表領域とそのデータファイルは、この後でデータベースを再オープンしたとき、それぞれオフラインでクローズされたままになっています。)この時点でデータベースはクローズされているため、通常の操作は実行できません。データベースがクローズされても、まだマウントされていれば、制御ファイルはオープンされたままになります。

インスタンスの終了によるデータベースのクローズ

万一の非常時には、オープン状態のデータベースのインスタンスを終了させて、データベースをクローズし、ただちに完全に停止させることができます。SGAのバッファにあるすべてのデータをデータファイルとREDOログ・ファイルに書き込む操作が省略されるため、このプロセスは高速に実行されます。この後、データベースを再オープンすると、Oracleがリカバリを自動的に実行します。


注意

データベースがオープンされているときにシステム障害や停電が発生すると、インスタンスは事実上終了するため、データベースを再オープンした時点でリカバリが実行されます。  


データベースのアンマウント

データベースがクローズされると、Oracleはデータベースをアンマウントしてインスタンスから切り離します。この時点ではインスタンスはコンピュータのメモリーに残っています。

データベースをアンマウン卜すると、データベースの制御ファイルはクローズされます。

インスタンスの停止

データベース停止の最後の操作は、インスタンスの停止です。インスタンスを停止すると、SGAがメモリーから削除され、バックグラウンド・プロセスが停止します。

インスタンスの異常停止

異常な状況では、すべてのメモリー構造がメモリーから削除されない、またはバックグラウンド・プロセスの1つが終了されないなど、インスタンスが正常に停止しないことがあります。前のインスタンスの一部が残っていると、その後にインスタンスを起動しようとしても、ほとんどの場合に失敗します。このような状況では、データベース管理者は、まず残っている前のインスタンスを削除してから新しいインスタンスを起動するか、SQL*PlusまたはEnterprise ManagerでSHUTDOWN ABORT文を発行することで、新しいインスタンスの起動を強制実行できます。

関連項目

インスタンスとデータベースの起動および停止の詳細は、『Oracle Database 管理者ガイド』を参照してください。 


戻る 次へ
Oracle
Copyright © 2006 Oracle Corporation.

All Rights Reserved.
目次
目次
索引
索引