ヘッダーをスキップ
Oracle Real Application Clusters管理およびデプロイメント・ガイド
11gリリース1(11.1)
E05738-05
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

3 データベース・インスタンスおよびクラスタ・データベースの管理

この章では、Oracle Real Application Clusters(Oracle RAC)データベース・インスタンスおよびOracle RACデータベースの管理方法について説明します。

内容は次のとおりです。


関連項目:

Oracle Enterprise Managerの詳細は、『Oracle Enterprise Manager概要』およびOracle Enterprise Managerのオンライン・ヘルプを参照してください。

Oracle Real Application Clustersの管理ツール

次の項では、Oracle RACデータベースとインスタンスの管理に使用される3つのツールである、Oracle Enterprise Manager、SQL*PlusおよびSRVCTLユーティリティを使用したOracle RAC管理について説明します。多くの場合、これらのツールを使用してOracle RAC環境を管理する方法は、シングル・インスタンスのOracle Databaseを管理する場合と同様です。

Oracle Enterprise Managerを使用したOracle Real Application Clustersの管理

Oracle Enterprise Managerでは、Oracle RAC環境を集中的に制御し、複数のクラスタ・データベースで同時に管理タスクを実行できます。Enterprise Managerには、シングル・インスタンスを管理するDatabase Control、およびOracle RAC環境を管理するGrid Controlの2つの Graphical User Interface(GUI)があります。Oracle RACデータベースの各ノードに1つのOracle Enterprise Managerエージェントがあるため、Database Controlでは、そのデータベースのどのURLを使用しても、Oracle Enterprise Managerでデータベースを管理できます。

Oracle Enterprise Managerでは、通常、Oracle RAC固有の管理タスクは、クラスタ・データベース全体に関係するタスクおよび特定のインスタンスに関係するタスクの2つのレベルが中心です。たとえば、Oracle Enterprise Managerでは、ジョブのスケジュールやメトリックのアラートしきい値の設定に加え、データベース、クラスタ・データベース・インスタンスおよびそのリスナーを起動、停止および監視できます。または、パラメータの設定やリソース・プランの作成のようなインスタンス固有のコマンドを実行できます。コンソールを使用すると、スキーマ、セキュリティおよびクラスタ・データベースの格納機能を管理することもできます。


関連項目:

  • Oracle Enterprise Managerを使用してOracle RACデータベースの日常的な管理タスクを実行する方法を説明するタスク指向型ガイドについては、『Oracle Database 2日でReal Application Clustersガイド』を参照してください。

  • 『Oracle Database 2日でReal Application Clustersガイド』で取り上げられていない高度な管理タスクについては、「Oracle Enterprise Managerの高度な管理」を参照してください。


SQL*Plusを使用したOracle Real Application Clustersの管理

SQL*Plusコマンドは、現行のインスタンスで動作します。現行のインスタンスは、SQL*Plusセッションを開始したローカルのデフォルト・インスタンスまたはOracle Net Servicesの接続先リモート・インスタンスです。

デフォルトでは、SQL*Plusのプロンプトで現行のインスタンスが識別されないため、正しいインスタンスにコマンドを発行する必要があります。SQL*Plusセッションを開始して、インスタンスを指定せずにデータベースに接続すると、すべてのSQL*Plusコマンドはローカル・インスタンスで処理されます。この場合も、デフォルト・インスタンスが現行のインスタンスです。

SQL*Plusで別のインスタンスに接続するには、次のように、新しいCONNECTコマンドを実行し、リモート・インスタンスのネット・サービス名を指定します。passwordはパスワードです。

CONNECT user_name@net_service_name
Enter password: password

SYSOPERまたはSYSDBAで接続すると、インスタンスの起動や停止などの権限を必要とする操作を実行できます。複数のSQL*Plusセッションが、同時に同じインスタンスに接続できます。他のインスタンスに接続すると、SQL*Plusによって最初のインスタンスとの接続が自動的に切断されます。


注意:

ASMインスタンスに接続し管理するには、SYSDBA権限ではなく、SYSASM権限を使用します。SYSDBA権限を使用してASMインスタンスで実行されるコマンドは非推奨であるため、SYSDBA権限を使用してASMインスタンスに接続すると、アラート・ログ・ファイルに警告が書き込まれます。

詳細は、『Oracle Databaseストレージ管理者ガイド』を参照してください。



関連項目:

  • 『SQL*Plusユーザーズ・ガイドおよびリファレンス』

  • net_service_nameの適切な指定については、『Oracle Database Net Services管理者ガイド』を参照してください。

  • SYSDBA権限またはSYSOPER権限でデータベースに接続する方法については、『Oracle Database管理者ガイド』を参照してください。


SQL*Plusプロンプトの変更

SQL*Plusのプロンプトを変更して、プロンプトに現行のインスタンス名を含めることができます。これを行うには、次のようなSQL*Plusコマンドを実行します。

SET SQLPROMPT '_CONNECT_IDENTIFIER> '

このコマンドは、大なり記号(>)の前の文字列「SQL」を、現行のセッションの継続時間中に現行のインスタンス名を表示するユーザー変数_CONNECT_IDENTIFIERに置換します。

すべてのセッションのプロンプトを自動的に変更するには、SQL*Plusの管理ディレクトリに含まれているglogin.sqlファイルに、次のようなエントリを追加します。

SET SQLPROMPT '_CONNECT_IDENTIFIER> '

コマンドの一重引用符の間には、必要な他のテキストまたはSQL*Plusユーザー変数を指定できます。

インスタンスへのSQL*Plusコマンドの適用方法

ほとんどのSQL文は、現行のインスタンスに適用されます。Oracle RACデータベースでのインスタンスの起動と停止に、SQL*Plusを使用できます。SQL*Plusコマンドを、LinuxおよびUNIXシステムのrootとして、またはWindowsシステムの管理者として実行する必要はありません。シングル・インスタンスのOracle Databaseで通常使用する権限を持つ適切なデータベース・アカウントのみが必要です。SQL*Plusコマンドのインスタンスへの適用方法の例を示します。

  • ALTER SYSTEM CHECKPOINT LOCALは、デフォルトのインスタンスまたはすべてのインスタンスではなく、現在接続しているインスタンスにのみ適用されます。

  • ALTER SYSTEM CHECKPOINTまたはALTER SYSTEM CHECKPOINT GLOBALは、クラスタ・データベースのすべてのインスタンスに適用されます。

  • ALTER SYSTEM SWITCH LOGFILEは、現行のインスタンスにのみ適用されます。

    • グローバル・ログ・スイッチを強制するには、ALTER SYSTEM ARCHIVE LOG CURRENT文を使用します。

    • ALTER SYSTEM ARCHIVE LOGINSTANCEオプションにより、特定のインスタンスについて各オンラインREDOログ・ファイルをアーカイブできます。

表3-1に、SQL*Plusコマンドのインスタンスへの適用方法を示します。

表3‐1 インスタンスへのSQL*Plusコマンドの適用方法

SQL*Plusコマンド SQL*Plusコマンドが適用されるインスタンス

ARCHIVE LOG

常に現行のインスタンスに対して適用されます。

CONNECT

CONNECTコマンドにインスタンスが指定されていない場合は、デフォルト・インスタンスに適用されます。

HOST

現行のインスタンスおよびデフォルト・インスタンスの位置に関係なく、SQL*Plusセッションを実行しているノードに適用されます。

RECOVER

特定のインスタンスではなく、データベースに適用されます。

SHOW INSTANCE

現行のインスタンスに関する情報を表示します。リモート・インスタンスにコマンドをリダイレクトしている場合、現行のインスタンスはデフォルトのローカル・インスタンスではない場合があります。

SHOW PARAMETERおよびSHOW SGA

現行のインスタンスからパラメータおよびSGA情報を表示します。

STARTUPおよびSHUTDOWN

常に現行のインスタンスに対して適用されます。権限付きのSQL*Plusコマンドです。


SRVCTLを使用したOracle Real Application Clustersの管理

サーバー制御(SRVCTL)ツールは、シングル・ポイントからOracle RACデータベースを管理するためのコマンドライン・インタフェースです。SRVCTLを使用して、データベースおよびインスタンスの起動と停止、インスタンスおよびサービスの削除または移動を実行できます。また、SRVCTLを使用すると、サービスの追加および構成情報の管理を行うこともできます。SRVCTLを使用して、仮想IPアドレス、リスナー、Oracle Notification Services、ノード・レベル・アプリケーションなどのプログラムのグループを起動および停止します。

また、SRVCTLツールは、他のいくつかのOracleのツール製品で使用される構成情報も管理します。たとえば、Oracle Enterprise Managerは、SRVCTLで生成された構成情報を使用して、クラスタ内のノードを検出および監視します。

SRVCTLを使用してクラスタの構成操作を実行すると、SRVCTLは構成データをOracle Cluster Registry(OCR)に格納します。SRVCTLは、各ノードでSQL*Plusをコールし、その他の操作(インスタンスの起動や停止など)を実行します。

インスタンスおよびOracle Real Application Clustersデータベースの起動および停止

インスタンスの起動および停止には、Oracle Enterprise Manager、SQL*PlusまたはSRVCTLが使用できます。詳細は、後述の項を参照してください。Oracle Enterprise ManagerおよびSRVCTLのどちらにも、Oracle RACデータベースのすべてのインスタンスを1つの手順で起動および停止するオプションが用意されています。

データベースがNOMOUNTまたはMOUNT状態の場合は、特定の操作のみ実行できます。他の操作を実行するには、データベースがOPEN状態である必要があります。また、操作によっては、1つのインスタンスのみが必須状態になっている必要があったり、すべてのインスタンスが同一状態になっている必要があります。

次の項の手順は、サーバー・パラメータ・ファイル(SPFILE)を使用していることを前提としています。

Oracle RACインスタンスを起動する前に、クラスタウェアと使用するオペレーティング・システム固有の必須プロセスが実行されている必要があります。これらのプロセスの詳細は、ご使用のオペレーティング・システムのマニュアルを参照してください。


注意:

クラスタ・ノードを再起動した後、そのノードが、しばらく完全には応答しない場合があります。このときOracle Databaseは、OracleDBConsolesidプロセスおよびOracleCRServiceリソースを再起動しようとしています。最終的には、すべてのリソース起動操作が完了し、コンピュータは、正常に稼働するようになります。

Oracle RACインスタンスの停止方法は、シングル・インスタンスのOracle環境でインスタンスを停止する場合と同じです。ただし、次の相違点があります。Oracle Databaseを停止する方法の詳細は、『Oracle Database管理者ガイド』を参照してください。

Oracle Enterprise Managerを使用した起動および停止

クラスタ・データベース・インスタンスまたはクラスタ・データベースを起動または停止する手順については、『Oracle Database 2日でReal Application Clustersガイド』を参照してください。

SQL*Plusを使用した起動および停止

ローカル・ノードに接続された状態で、1つのインスタンスのみを起動または停止するには、事前に現行の環境にローカル・インスタンスのSIDが含まれていることを確認する必要があります。SQL*Plusセッションかどうかに関係なく、セッション内の後続のすべてのコマンドは、そのSIDに対応付けられます。

ローカル・インスタンスを起動または停止するには、SQL*Plusセッションを開始し、SYSDBAまたはSYSOPER権限で接続した後に、必要なコマンドを実行します。たとえば、ローカル・ノード上でインスタンスを起動しマウントする場合は、SQL*Plusセッション内で次のコマンドを実行します。

   CONNECT / AS SYSDBA
   STARTUP MOUNT

注意:

ASMディスク・グループを使用する場合は、SYSDBA権限ではなく、SYSASM権限を使用してASMインスタンスに接続し、管理します。詳細は、『Oracle Databaseストレージ管理者ガイド』を参照してください。

Oracle Net Services経由で、1つのノード上の1つのSQL*Plusセッションから複数のインスタンスを起動できます。これを実現するには、Net Services接続文字列を使用して、各インスタンスに順次接続する必要があります。通常、この文字列は、TNSNAMES.ORAファイルのインスタンス固有の別名です。


注意:

正しいインスタンスに接続するには、接続文字列で1つのインスタンスにのみ対応付けられた別名を使用する必要があります。サービスの別名または複数のアドレスを持つ別名を使用すると、目的のインスタンスに接続されない場合があります。

たとえば、ローカル・ノード上でSQL*Plusセッションを使用すると、インスタンスの個々の別名を使用して、各インスタンスに順次接続し、リモート・ノード上の2つのインスタンスのトランザクションの停止を実行できます。最初のインスタンスの別名をdb1、2つ目のインスタンスの別名をdb2と仮定します。次のコマンドを入力して、最初のインスタンスに接続してから停止します。

   CONNECT /@db1 AS SYSDBA
   SHUTDOWN TRANSACTIONAL

次のコマンドを入力して、SQL*Plusセッションから2つ目のインスタンスに接続した後、停止します。

   CONNECT /@db2 AS SYSDBA
   SHUTDOWN TRANSACTIONAL

SQL*Plusでは、1度に2つ以上のインスタンスを起動または停止できません。そのため、クラスタ・データベースのすべてのインスタンスを1つのSQL*Plusコマンドで起動または停止することはできません。各インスタンスに順次接続し、起動および停止するスクリプトを作成できます。ただし、インスタンスの追加または削除を行う場合は、このスクリプトを手動でメンテナンスする必要があります。


関連項目:

NOMOUNTMOUNTIMMEDIATEなどの他の起動および停止のキーワードについては、『SQL*Plusユーザーズ・ガイドおよびリファレンス』を参照してください。

SRVCTLを使用した起動および停止

次のSRVCTL構文をコマンドラインから入力し、必要なデータベース名およびインスタンス名を提供するか、または複数のインスタンス名を指定して、複数の特定のインスタンスを起動します。

srvctl start instance -d db_name -i "inst_name_list" [-o start_options]

このコマンドは、優先インスタンスまたは使用可能インスタンスのリストが設定されている使用可能で実行中でないサービスも、すべて起動することに注意してください。

1つ以上のインスタンスを停止するには、コマンドラインから次のSRVCTL構文を入力します。

srvctl stop instance -d name -i "inst_name_list" [-o stop_options]

このコマンドにより、インスタンスが実行されていたノード上で終了したインスタンスと関連するサービスも停止します。たとえば、次のコマンドは、接続情報を提供し、IMMEDIATEオプションを使用して2つのインスタンスorcl3およびorcl4を停止します。

srvctl stop instance -d orcl -i "orcl3,orcl4" -o immediate

クラスタ・データベース全体(すべてのインスタンスおよび使用可能なサービス)を起動または停止するには、次のSRVCTLコマンドを入力します。

srvctl start database -d name [-o start_options]
srvctl stop database -d name [-o stop_options]

たとえば、次のSRVCTLコマンドは、デフォルトの接続情報を使用して、Oracle RACデータベースの実行中でないすべてのインスタンスをマウントします。

srvctl start database -d orcl -o mount

関連項目:

SRVCTLオプションおよびSRVCTLで実行可能な他の管理タスクについては、付録A「サーバー制御ユーティリティのリファレンス」を参照してください。

インスタンスの実行の確認

ノードで実行中のインスタンスを確認するには、SQL*Plusプロンプトから次のコマンドを入力します。passwordはパスワードです。

CONNECT SYS/as SYSDBA
Enter password: password
SELECT * FROM V$ACTIVE_INSTANCES;

次のような出力が表示されます。

INST_NUMBER INST_NAME
-----------  -----------------
           1 db1-sun:db1
           2 db2-sun:db2
           3 db3-sun:db3

この例で出力される列を表3-2に示します。

表3‐2 V$ACTIVE_INSTANCES列の説明

説明

INST_NUMBER

インスタンス番号を識別します。

INST_NAME

ホスト名およびインスタンス名をhost_name:instance_nameとして識別します。


特定のクラスタ・インスタンス上でのセッションの終了

ALTER SYSTEM KILL SESSION文を使用して、特定のインスタンスのセッションを終了できます。セッションが終了すると、セッションのすべてのアクティブなトランザクションはロールバックされます。セッションで保持されているリソース(ロックやメモリー領域など)はただちに解放され、他のセッションで使用可能になります。

この文を使用すると、Oracle RAC環境で厳密なアプリケーション品質保証契約を維持できます。多くの場合、品質保証契約は、指定された期限内にトランザクションを実行することを目的としています。Oracle RAC環境では、このためには、指定された期限内にインスタンスでトランザクションを終了し、別のインスタンスでトランザクションを再試行することが必要な場合があります。

セッションを終了するには、次の手順に従います。

完了する必要があるアクティビティ(リモート・データベースからの応答の待機やトランザクションのロールバックなど)がセッションで実行されている場合、Oracle Databaseはそのアクティビティが完了するのを待機し、セッションに終了のマークを付けてから、ユーザーに制御を戻します。待機が数分間続く場合、セッションに終了予定のマークが付けられ、セッションに終了予定のマークを付けたというメッセージとともにユーザーに制御が戻されます。アクティビティが完了すると、PMONバックグラウンド・プロセスによってセッションに終了のマークが付けられます。

次の例に、ユーザーが特定のセッションを特定し、終了する3つのシナリオを示します。

例1   ビジー状態のインスタンスでのセッションの特定および終了

この例で、実行しているセッションがインスタンスINST_ID=1SYSDBAであるとします。SYSDBAは、まずSCOTTユーザーのセッションのGV$SESSIONビューを問い合せて終了するセッションを特定し、次に、ALTER SYSTEM KILL SESSION文を実行してインスタンスINST_ID=2でセッションを終了します。一部のアクティビティを完了してからセッションを終了する必要があるため、ORA-00031メッセージが戻されます。

SQL> SELECT SID, SERIAL#, INST_ID FROM GV$SESSION WHERE USERNAME='SCOTT';

       SID    SERIAL#    INST_ID
---------- ---------- ----------
        80          4          2

SQL> ALTER SYSTEM KILL SESSION '80, 4, @2';
alter system kill session '80, 4, @2'
*
ERROR at line 1:
ORA-00031: session marked for kill
SQL>
例2   アイドル状態のインスタンスでのセッションの特定および終了

この例で、実行しているセッションがインスタンスINST_ID=1SYSDBAであるとします。インスタンスINST_ID=2のセッションは、Oracle Databaseが60秒以内に文を実行すると、ただちに終了されます。

SQL> SELECT SID, SERIAL#, INST_ID FROM GV$SESSION WHERE USERNAME='SCOTT';

       SID    SERIAL#    INST_ID
---------- ---------- ----------
        80          6          2

SQL> ALTER SYSTEM KILL SESSION '80, 6, @2';

System altered.

SQL>
例3   IMMEDIATEパラメータの使用

次の例には、未完了のアクティビティが完了するのを待機せずにただちにセッションを終了する、オプションのIMMEDIATE句が含まれています。

SQL> SELECT SID, SERIAL#, INST_ID FROM GV$SESSION WHERE USERNAME='SCOTT';

       SID    SERIAL#    INST_ID
---------- ---------- ----------
        80          8          2

SQL> ALTER SYSTEM KILL SESSION '80, 8, @2' IMMEDIATE;

System altered.

SQL>

関連項目:

セッションの終了の詳細は、『Oracle Database管理者ガイド』を参照してください。

Oracle Real Application Clustersでの初期化パラメータ・ファイルの概要

データベースを作成すると、指定したファイルの位置にSPFILEが作成されます。ファイルの位置として指定できるのは、ASMディスク・グループ、クラスタ・ファイル・システムまたは共有RAWデバイスのいずれかです。手動でデータベースを作成する場合は、初期化パラメータ・ファイル(PFILE)からSPFILEを作成することをお薦めします。


注意:

Oracle RACで従来のPFILEが使用されるのは、SPFILEが存在しないか、STARTUPコマンドでPFILEを指定した場合のみです。管理を簡単にし、パラメータ設定の一貫性を維持し、データベースの停止および起動イベントが発生してもパラメータ設定が維持されるようにするために、SPFILEファイルを使用することをお薦めします。また、SPFILEをバックアップするようにRecovery Managerを構成することもできます。

クラスタ・データベース内のすべてのインスタンスは、起動時に同じSPFILEを使用します。SPFILEはバイナリ・ファイルであるため、エディタを使用して直接編集しないでください。かわりに、Oracle Enterprise ManagerまたはSQL文ALTER SYSTEMを使用して、SPFILEパラメータ設定を変更します。

FROM MEMORY句(CREATE PFILE FROM MEMORYCREATE SPFILE FROM MEMORYなど)を含める場合、CREATE文では、現行のシステム全体のパラメータ設定を使用して、PFILEまたはSPFILEが作成されます。Oracle RAC環境では、作成されたファイルには各インスタンスからのパラメータ設定が含まれています。FROM MEMORY句では、パラメータ・ファイルを作成しようとしているインスタンスに他のすべてのインスタンスがパラメータ設定を送信する必要があるため、合計実行時間は、インスタンスの数、各インスタンスのパラメータ設定の数およびそれらの設定のデータ量によって異なります。

Oracle Real Application ClustersのSPFILEパラメータ値の設定

SPFILEの設定は、Oracle Enterprise ManagerまたはALTER SYSTEM文のSET句を使用して変更できます。


注意:

Oracle Enterprise ManagerまたはSQL*Plus以外のツールでSPFILEを変更すると、ファイルが破損してデータベースを起動できなくなる可能性があります。ファイルを修復するにはPFILEを作成し、SPFILEを再生成する必要があります。

SPFILEはバイナリ・ファイルですが、この項の例では、ASCIIテキストとして記述してあります。次のエントリを含むSPFILEでインスタンスを起動するとします。

*.OPEN_CURSORS=500
prod1.OPEN_CURSORS=1000

注意:

SPFILEエントリのドットの前にある値は、特定のパラメータの値が適用されるインスタンスを識別します。ドットの前にアスタリスクがある場合、その値は、SPFILEに後続の個別の値が示されていないすべてのインスタンスに適用されます。

Oracleシステム識別子(SID)がprod1のインスタンスでは、データベース全体のパラメータが500に設定されていても、OPEN_CURSORSパラメータの設定は1000です。ワイルドカード文字のアスタリスク(*)が使用されたパラメータ・ファイルのエントリは、インスタンス固有のエントリがないインスタンスのみに適用されます。したがって、データベース管理者は、インスタンスprod1のパラメータ設定を制御できます。この2種類の設定は、パラメータ・ファイル内でいずれの順序でも指定できます。

別のDBAが次の文を実行した場合、SIDがprod1以外のすべてのインスタンスの設定がOracle Databaseによって更新されます。

ALTER SYSTEM SET OPEN_CURSORS=1500 sid='*' SCOPE=MEMORY;

次に、他のインスタンスで次の文を実行すると、SIDがprod1であるインスタンスの新しい設定も2000になります。

ALTER SYSTEM SET OPEN_CURSORS=2000 sid='*' SCOPE=MEMORY;

たとえば、サーバー・パラメータ・ファイルに次のエントリが含まれるとします。

prod1.OPEN_CURSORS=1000
*.OPEN_CURSORS=500

次の文を実行して、Oracle Databaseでサーバー・パラメータ・ファイルの最初のエントリが無視されるようにします。

ALTER SYSTEM RESET SCOPE=SPFILE;

次の文を実行して、prod1のインスタンスのみのパラメータをデフォルト値にリセットします。

ALTER SYSTEM RESET OPEN_CURSORS SCOPE=SPFILE SID='prod1';

Oracle Real Application Clustersでのパラメータ・ファイルの検索順序

Oracle Databaseでは、プラットフォームに応じてパラメータ・ファイルが特定の順序で検索されます。

LinuxおよびUNIXプラットフォームでは、検索順序は次のとおりです。

  1. $ORACLE_HOME/dbs/spfilesid.ora

  2. $ORACLE_HOME/dbs/spfile.ora

  3. $ORACLE_HOME/dbs/initsid.ora

Windowsプラットフォームでは、検索順序は次のとおりです。

  1. %ORACLE_HOME%\database\spfilesid.ora

  2. %ORACLE_HOME%\database\spfile.ora

  3. %ORACLE_HOME%\database\initsid.ora

サーバー・パラメータ・ファイルのバックアップ

リカバリのために、サーバー・パラメータ・ファイルを定期的にバックアップすることをお薦めします。これには、Oracle Enterprise Manager(『Oracle Database 2 日でReal Application Clustersガイド』を参照)またはCREATE PFILE文を使用します。次に例を示します。

CREATE PFILE='?/dbs/initdbname.ora'
FROM SPFILE='/dev/vx/rdsk/oracle_dg/dbspfile'

Recovery Manager(RMAN)を使用して、サーバー・パラメータ・ファイルのバックアップを作成できます。SPFILEは、クライアント側の初期化パラメータ・ファイルを使用してインスタンスを起動することによって、リカバリすることもできます。その後、CREATE SPFILE文を使用して、サーバー・パラメータ・ファイルを再生成します。この操作に使用されるパラメータ・ファイルがシングル・インスタンス用である場合、Oracle RACインスタンスで一意であっても、パラメータ・ファイルにはインスタンス固有の値は含まれません。したがって、前述のようにパラメータ・ファイルに適切な設定が含まれていることを確認してください。

通常のバックアップ操作の実行中にSPFILE(および制御ファイル)が自動的にRecovery Managerによってバックアップされるようにするには、Oracle Enterprise ManagerまたはRecovery ManagerのCONTROLFILE AUTOBACKUP文を使用して、Recovery Managerの自動バックアップ機能を使用可能にします。


関連項目:

Oracle Enterprise Managerを使用してバックアップ・ジョブを実行するには、『Oracle Database 2日でReal Application Clustersガイド』を参照してください。CREATE SPFILE文の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

Real Application Clustersでの初期化パラメータの使用

デフォルトでは、ほとんどのパラメータがデフォルト値に設定されます。この値は、すべてのインスタンスで同じです。ただし、表3-3に記載されているとおり、多くの初期化パラメータにはインスタンスごとに異なる値も設定できます。その他のパラメータは、次の項で示すとおり、同じまたは一意である必要があります。

表3-3に、Oracle RACデータベースで特に使用される初期化パラメータのサマリーを示します。これらの初期化パラメータとその他の初期化パラメータの詳細は、『Oracle Databaseリファレンス』を参照してください。

表3-3 Oracle Real Application Clustersに固有の初期化パラメータ

パラメータ 説明

ASM_PREFERRED_READ_FAILURE_GROUPS

ミラー・データのコピーの読取り元の優先ディスクにする一連のディスクを指定します。このパラメータに設定する値は、インスタンス固有です。すべてのインスタンスで同じにする必要はありません。

CLUSTER_DATABASE

クラスタ・モードで起動するデータベースを使用可能にするパラメータです。このパラメータをTRUEに設定します。

CLUSTER_DATABASE_INSTANCES

Oracle RAC環境のインスタンスの数を設定するパラメータです。このパラメータを適切に設定すると、メモリー使用を改善できます。CLUSTER_DATABASE_INSTANCESパラメータは、すべてのインスタンスで同じ値に設定します。そうしない場合、インスタンスの起動に失敗する場合があります。通常、このパラメータは、Oracle RACデータベースでのインスタンス数と同じに設定します。また、インスタンスを追加する場合、現行のインスタンスの数より大きい値をこのパラメータに設定できます。

注意: このパラメータの値は、Oracle RACデータベース環境で使用できるインスタンスの最大数を決定します。インスタンスを追加した場合、インスタンス数の増加に応じて、このパラメータの値を再設定する必要がある場合があります。

CLUSTER_INTERCONNECTS

複数のインターコネクトが存在する場合、プライベート・ネットワークの代替クラスタ・インターコネクトを指定します。CLUSTER_INTERCONNECTS初期化パラメータは、UDP IPCが使用可能なLinuxおよびUNIX環境でのみ有効です。

注意:

  • すべてのOracle DatabaseとOracle Clusterwareでは同じインターコネクト・ネットワークを使用することをお薦めします。Oracle DatabaseをOracle Clusterwareとは別のネットワークで実行する場合は、エラー発生時のタイムアウトは900秒です。

  • 特別な場合を除き、CLUSTER_INTERCONNECTSパラメータを設定することはお薦めしません。詳細は、「LinuxおよびUNIXプラットフォームでの複数のクラスタ・インターコネクトの管理」を参照してください。

DB_NAME

インスタンス固有のパラメータ・ファイルでDB_NAMEの値を設定する場合は、すべてのインスタンスに同じ値を設定する必要があります。

DISPATCHERS

DISPATCHERSパラメータは、共有サーバー構成(多数のユーザー・プロセスが、非常に少数のサーバー・プロセスを共有できるように構成されたサーバー)を使用可能にするために設定します。共有サーバー構成では、多数のユーザー・プロセスがディスパッチャに接続します。DISPATCHERSパラメータには、多くの属性を含めることができます。

少なくとも、PROTOCOL属性およびLISTENER属性を構成することをお薦めします。PROTOCOLには、ディスパッチャ・プロセスがリスニングのエンド・ポイントを生成するネットワーク・プロトコルを指定します。LISTENERには、Oracle Net Servicesリスナーの別名を指定します。別名には、tnsnames.oraファイルなどのネーミング・メソッドを介して解決される名前を設定します。tnsnames.oraファイルには、ネット・サービス名が記述されています。このファイルは、クライアント、ノードおよびOracle Performance Managerノード上で必要になります。Oracle Enterprise Managerでは、Database ControlまたはGrid Controlのクライアントでtnsnames.oraエントリは必要ありません。DISPATCHERSパラメータとその属性の構成、および共有サーバーの構成の詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。

GCS_SERVER_PROCESSES

この静的パラメータでは、Oracle RACインスタンスのグローバル・キャッシュ・サービス(GCS)のサーバー・プロセスの初期数を指定します。GCSプロセスでは、Oracle RACインスタンスのインスタンス間トラフィックのルーティングが管理されます。GCSサーバー・プロセスのデフォルト数は、最小が2で、システム・リソースに基づいて計算されます。CPUが1つのシステムでは、1つのGCSサーバー・プロセスがあります。CPUが2つから8つのシステムでは、2つのGCSサーバー・プロセスがあります。CPUが9つ以上あるシステムでは、GCSサーバー・プロセスの数は、CPUの数を4で割り、端数を切り捨てた数と同じになります。たとえば、CPUが10ある場合は10を4で割るため、システムには2つのGCSプロセスがあることになります。異なるインスタンスで、このパラメータを異なる値に設定できます。

INSTANCE_NAME

インスタンスで使用されるREDOログ・ファイル・グループの数を指定します。詳細は、「Oracle Real Application ClustersでのREDOログ・ファイル記憶域」を参照してください。

RESULT_CACHE_MAX_SIZE

クラスタ化されたデータベースでは、すべてのインスタンスでRESULT_CACHE_MAX_SIZE=0を設定して結果キャッシュを無効にするか、またはすべてのインスタンスで0(ゼロ)以外の値を使用して結果キャッシュを有効にできます。結果キャッシュの有効と無効を切り替えるには、すべてのインスタンスを再起動する必要があります。

  • 結果キャッシュの有効化: RESULT_CACHE_MAX_SIZE0より大きい値に設定するか、またはパラメータを未設定のままにします。個々のインスタンスで異なるキャッシュのサイズを指定できます。

  • 結果キャッシュの無効化: すべてのインスタンスでRESULT_CACHE_MAX_SIZE=0を設定すると、結果キャッシュが無効になります。結果キャッシュの無効化はクラスタ全体で行う必要があるため、いずれか1つのインスタンスの起動時にRESULT_CACHE_MAX_SIZE=0を設定した場合は、すべてのインスタンスで起動時にパラメータを0(ゼロ)に設定する必要があります。一部のインスタンスで結果キャッシュを無効にすると、誤った結果になる場合があります。

RESULT_CACHE_MAX_SIZEパラメータを設定しない場合、パラメータはデフォルトの0(ゼロ)以外の値に解決されます。

SERVICE_NAMES

サービスを使用する場合、SERVICE_NAMESパラメータに値を設定しないでください。かわりに、Oracle Enterprise Manager Database Controlの「クラスタ管理サービス」ページでクラスタ管理サービスを作成する必要があります。これは、Oracle Clusterwareが、ユーザーが作成したサービスおよびデフォルトのデータベース・サービスのこのパラメータの設定を制御するためです。第4章の「自動ワークロード管理の概要」で説明するサービスの機能は、SERVICE_NAMESを設定して実行する機能とは直接関係ありません。また、このパラメータに値を設定した場合、サービスの使用によって得られるメリットが失われてしまう可能性があります。

注意: SERVICE_NAMESパラメータのエントリはINSTANCE_NAMEパラメータの値ではなく、クライアント接続で使用される場合があります。SERVICE_NAMESパラメータには、1つ以上の名前を含めることができ、異なるインスタンスが他のインスタンスと1つ以上の名前を共有できます。これによって、クライアントは、接続文字列で選択されたサービス名に応じて、特定のインスタンスまたは一連のいずれかのインスタンスに接続できます。

SESSIONS_PER_USER

SESSIONS_PER_USER件数は、インスタンスごとに保存されます。あるユーザーのSESSIONS_PER_USER1に設定された場合、各接続が異なるインスタンスからであるかぎり、そのユーザーはデータベースに2回以上ログインできます。

SPFILE

SPFILEを使用する場合は、Oracle RACデータベースのすべてのインスタンスがSPFILEを使用し、このファイルが共有記憶域に存在する必要があります。

THREAD

インスタンスで使用されるREDOスレッドの数を指定します。スレッド番号が使用可能で、使用されていないかぎり、使用可能なすべてのREDOスレッド番号を指定できます。指定する場合、このパラメータの値はすべてのインスタンスに対して一意である必要があります。INSTANCE_NAMEパラメータを使用してREDOログ・グループを指定することをお薦めします。


すべてのインスタンスで同じ値を設定する必要があるパラメータ

データベースの作成に重要な特定の初期化パラメータ、または特定のデータベース操作に影響する特定の初期化パラメータは、Oracle RACデータベースの各インスタンスで同じ値を設定する必要があります。これらのパラメータ値は、SPFILEに指定するか、または各インスタンスの個別のPFILEで指定します。次のリストに、すべてのインスタンスで同一である必要があるパラメータを示します。


ACTIVE_INSTANCE_COUNT
ARCHIVE_LAG_TARGET
COMPATIBLE
CLUSTER_DATABASE
CLUSTER_DATABASE_INSTANCE
CONTROL_FILES
DB_BLOCK_SIZE
DB_DOMAIN
DB_FILES
DB_NAME
DB_RECOVERY_FILE_DEST
DB_RECOVERY_FILE_DEST_SIZE
DB_UNIQUE_NAME
INSTANCE_TYPE(RDBMSまたはASM)
PARALLEL_EXECUTION_MESSAGE_SIZE
REMOTE_LOGIN_PASSWORDFILE
UNDO_MANAGEMENT

すべてのインスタンスで、次のパラメータを同じにする必要があるのは、パラメータの値が0(ゼロ)に設定されている場合のみです。

  • DML_LOCKS

  • RESULT_CACHE_MAX_SIZE

すべてのインスタンスで一意の値を設定するパラメータ

ROLLBACK_SEGMENTSパラメータを使用する場合は、SPFILEでSID識別子を使用して、これらのパラメータに一意の値を設定することをお薦めします。ただし、各インスタンスのINSTANCE_NUMBERに一意の値を設定する必要があり、デフォルト値は使用できません。

Oracle Databaseは、INSTANCE_NUMBERパラメータを使用して、起動時にインスタンスを識別します。INSTANCE_NAMEパラメータは、特定のインスタンスにREDOログ・グループを割り当てるために使用されます。管理を簡単にするために、INSTANCE_NAMEパラメータとINSTANCE_NUMBERパラメータに同じ番号を使用します。

データベース名と、インスタンスに割り当てられたINSTANCE_NAME番号で構成される環境変数ORACLE_SIDを指定します。自動UNDO管理を使用可能にしてUNDO_TABLESPACEを指定する場合、各インスタンスでこのパラメータに一意のUNDO表領域名を設定します。

ASM_PREFERRED_READ_FAILURE_GROUPS初期化パラメータを使用すると、優先読取り障害グループ名のリストを指定できます。これらの障害グループのディスクは、優先読取りディスクになります。したがって、すべてのノードはそのローカル・ディスクから読み取ることができます。この結果、より優れた効率性とパフォーマンスおよびネットワーク・トラフィックの削減が可能となります。このパラメータの設定は、インスタンス固有です。すべてのインスタンスで同じにする必要はありません。

すべてのインスタンスで同じ値を設定する必要があるパラメータ

表3-4のパラメータには、すべてのインスタンスで同じ値を設定することをお薦めします。これらのパラメータにはインスタンスごとに異なる値を設定できますが、すべてのインスタンスでパラメータに同じ値を設定すると管理が簡単です。

表3-4 すべてのインスタンスで同じ値を設定する必要があるパラメータ

パラメータ 説明

ARCHIVE_LOG_TARGET

Oracle RACデータベースのインスタンスごとに異なる値を設定すると、データベース処理によって追加の自動同期化が実行されるため、多くの場合、オーバーヘッドが増加します。

Oracle RACデータベースでStreamsを使用する場合、0(ゼロ)より大きい値を使用する必要があります。

LICENSE_MAX_USERS

このパラメータは、データベースで定義されているユーザー数のデータベース全体での制限を決定します。データベースのすべてのインスタンスで同じ値を使用すると、使用中のインスタンスにかかわらず現行の値を確認できるため、有効です。異なる値を設定すると、インスタンスの起動中にOracle Databaseによって追加の警告メッセージが生成されるか、またはデータベース・ユーザーの管理に関連するコマンドが一部のインスタンスで失敗する場合があります。

LOG_ARCHIVE_FORMAT

すべてのインスタンスで同じ値を使用しない場合、メディア・リカバリが複雑になります。アーカイブ・ログ・ファイルを作成したインスタンスにかかわらず、リカバリを行うインスタンスでは、必要なアーカイブ・ログ・ファイル名のフォーマットがそのインスタンス自体のLOG_ARCHIVE_FORMATの値で定義されていると想定します。

Data Guardをサポートするデータベースでは、アーカイブREDOログ・ファイルの送受信を行うために、すべてのインスタンスでLOG_ARCHIVE_FORMATに同じ値を使用する必要があります。

SPFILE

すべてのインスタンスでこのパラメータに同じファイルを指定しない場合、各インスタンスは、フェイルオーバー、ロード・バランシングおよび通常の操作中に、異なる動作または予測できない動作を行う場合があります。また、ALTER SYSTEM SETまたはALTER SYSTEM RESETコマンドでSPFILEに行う変更は、コマンドを実行したインスタンスで使用されるSPFILEのみに保存されます。変更は、異なるSPFILEを使用するインスタンスでは反映されません。

サーバーによって値が設定されているインスタンスでSPFILEの値が異なる場合、デフォルトのSPFILEを使用していないインスタンスを再起動する必要があります。

TRACE_ENABLED

診断トレース情報をOracle RACデータベースで常に使用可能にするには、すべてのデータベース・インスタンスでTRACE_ENABLEDTRUEに設定する必要があります。一部のインスタンスのみのトレースを行う場合、TRACE_ENABLEDFALSEに設定されているインスタンスのみにアクセス可能なとき、必要な診断情報を使用できない場合があります。

UNDO_RETENTION

各インスタンスでUNDO_RETENTIONに異なる値を設定すると、スケーラビリティが低下し、フェイルオーバー後に予測できない動作が行われる場合があります。したがって、このパラメータにOracle RACデータベースのインスタンス間で異なる値を割り当てる前に、メリットがあるかどうかを慎重に考慮する必要があります。


Oracle Real Application Clustersデータベースの静止

Oracle RACデータベースを静止する手順は、シングル・インスタンス・データベースを静止する場合と同じです。1つのインスタンスからALTER SYSTEM QUIESCE RESTRICTED文を使用します。データベースの静止処理中は、どのインスタンスからもデータベースを開くことはできません。DBA以外のすべてのセッションが非アクティブになると、ALTER SYSTEM QUIESCE RESTRICTED文は終了し、データベースは静止状態にあるとみなされます。Oracle RAC環境では、この文を実行したインスタンスだけでなく、すべてのインスタンスにこの文が適用されます。

Oracle RAC環境でALTER SYSTEM QUIESCE RESTRICTED文を正しく実行するには、データベース・リソース・マネージャ機能をアクティブにしておくだけでなく、その機能がクラスタ・データベースのすべてのインスタンスに対しても、インスタンス起動時からアクティブになっている必要があります。DBA以外のセッションがアクティブにならないようにするのは、データベース・リソース・マネージャの機能です。また、この文が適用されている間に現行のリソース・プランを変更しようとすると、システムが静止状態でなくなるまで、その変更はキューに入れられます。

次の条件がOracle RACに適用されます。


注意:

コールド・バックアップを実行するために静止状態を使用することはできません。データベースが静止状態にある場合でも、Oracle Databaseのバックグラウンド・プロセスがOracle Databaseの内部処理のために更新を実行していることがあるためです。また、オンライン・データ・ファイルのファイル・ヘッダーは、アクセス中であるかのように見え、正しい停止が行われたかどうか判断ができません。データベースが静止状態にある間でも、オンライン・バックアップは実行できます。


関連項目:

データベース静止機能の詳細は、『Oracle Database管理者ガイド』を、ALTER SYSTEM QUIESCE RESTRICTED構文の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

LinuxおよびUNIXプラットフォームでの複数のクラスタ・インターコネクトの管理

UDP IPCが使用可能なLinuxおよびUNIXプラットフォームで実行するOracle RAC環境では、CLUSTER_INTERCONNECTS初期化パラメータを使用して、プライベート・ネットワークの代替インターコネクトを指定できます。

オペレーティング・システム・レベルでデフォルトのインターコネクト設定を上書きするCLUSTER_INTERCONNECTSパラメータを設定することはお薦めしません。かわりに、オペレーティング・システムのボンディング技術(NICボンディングとも呼ばれます)を使用するようにしてください。オペレーティング・システム・レベルでNICボンディングを設定する方法については、使用しているプラットフォーム固有のOracle Real Application Clustersのインストレーション・ガイドを参照してください。

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

CLUSTER_INTERCONNECTSパラメータ設定の推奨事項

CLUSTER_INTERCONNECTSパラメータを設定することはお薦めしません。


注意:

すべてのデータベースとOracle Clusterwareで同じインターコネクト・ネットワークを使用することをお薦めします。

通常、このCLUSTER_INTERCONNECTSパラメータを設定する必要があるのは、次の場合です。

  • オペレーティング・システムの制限により、ネットワーク・インタフェース・カード(NIC)ボンディングによる複数のネットワーク・インタフェースを使用して、帯域幅を増加させることができない場合。

  • クラスタで複数のデータベースが実行されており、インターコネクト・トラフィックを分離する必要がある場合。

  • オペレーティング・システムによって高可用性が実現された単一のIPアドレスがあり、そのIPアドレスに安定したインタフェース名がない(再起動時に名前を変更できるなど)場合。

次の一般的な構成では、CLUSTER_INTERCONNECTSパラメータは設定しないでください。

  • クラスタ・インターコネクトが1つのみ存在する場合。

  • デフォルトのクラスタ・インターコネクトが、Oracle RACデータベースの帯域幅の要件を満たしている場合(通常は満たしています)。

CLUSTER_INTERCONNECTS初期化パラメータの指定時は、次のことに注意してください。

  • CLUSTER_INTERCONNECTS初期化パラメータは、UDP IPCが使用可能なLinuxおよびUNIX環境でのみ有効です。

  • パラメータ・ファイルでCLUSTER_INTERCONNECTS初期化パラメータを設定する場合は、Oracle RACデータベースの各インスタンスに対して異なる値を指定します。

  • 異なるノードで、同じデータベースの異なるインスタンスに指定されたIPアドレスは、同一のインターコネクト・ネットワークに接続するネットワーク・アダプタに属する必要があります。

  • CLUSTER_INTERCONNECTS初期化パラメータでは、IPアドレスが必要です。コロンで区切って、複数のIPアドレスを指定することができます。Oracle RACのネットワーク・トラフィックは、指定されたIPアドレス間で分散されます。

  • このパラメータに対して複数のIPアドレスを指定する場合、同一データベースのすべてのインスタンスに対して、同じ順序でIPアドレスを指定します。たとえば、ノード1、インスタンス1のパラメータで、alt0:fta0:およびics0:デバイスのIPアドレスをその順に指定する場合、ノード2、インスタンス2のパラメータでも同等のネットワーク・アダプタのIPアドレスをその順に指定する必要があります。このパラメータを使用して複数のインターコネクトを設定する方法については、「CLUSTER_INTERCONNECTSパラメータの使用例」を参照してください。

  • CLUSTER_INTERCONNECTSパラメータに指定したインターコネクトへの書込み中にオペレーティング・システム・エラーが発生した場合は、他のインタフェースが使用可能な場合でも、Oracle Databaseによってエラーが戻されます。これは、Oracle Databaseとインターコネクトの間の通信プロトコルが、使用しているプラットフォームに大きく依存する場合があるためです。詳細は、ご使用のOracle Databaseのプラットフォーム固有のマニュアルを参照してください。


関連項目:

CLUSTER_INTERCONNECTS初期化パラメータの詳細は、『Oracle Databaseリファレンス』を参照してください。

CLUSTER_INTERCONNECTSパラメータの使用例

この項では、CLUSTER_INTERCONNECTSパラメータを設定する場合の2つの例について説明します。

例1   

単一のクラスタ・インターコネクトで帯域幅の要件を満たすことができない場合は、CLUSTER_INTERCONNECTSの設定を考慮します。ここで説明するように、1つ以上のデータベースから高いインターコネクト帯域幅を要求されているデータ・ウェアハウス環境では、このパラメータの設定が必要な場合があります。

たとえば、高いインターコネクト帯域幅の要件を持つ2つのデータベースがある場合は、オペレーティング・システムが提供するデフォルトのインターコネクトを無効にし、各サーバー・パラメータ・ファイルで次の構文を使用して、各データベースに異なるインターコネクトを指定できます。ipnは、ドットで区切られた標準的な10進形式のIPアドレス(たとえば、144.25.16.214)です。

Database One: CLUSTER_INTERCONNECTS = ip1
Database Two: CLUSTER_INTERCONNECTS = ip2

高い帯域幅を必要とするデータベースがある場合は、次の構文を使用して複数のインターコネクトを指定できます。

CLUSTER_INTERCONNECTS = ip1:ip2:...:ipn

前述の例のように、CLUSTER_INTERCONNECTSに複数の値を設定した場合、指定したすべてのインターコネクトが使用されます。リストされたすべてのインターコネクトが操作可能であるかぎり、ロード・バランシングが提供されます。このパラメータで複数のインターコネクトを定義する場合、データベースのすべてのインスタンスで同じ値(インターコネクトをリストする順序を含む)を使用する必要があります。

例2   

たとえば、すべてのGCS、GESおよびIPQ IPCトラフィックに対して、IPアドレスが129.34.137.212であるネットワーク・インタフェースを使用するには、CLUSTER_INTERCONNECTSパラメータを次のように設定します。

CLUSTER_INTERCONNECTS=129.34.137.212

デバイスのIPアドレスを表示するには、ifconfigまたはnetstatコマンドを使用します。このコマンドは、デバイス名とIPアドレスの関係を表示します。たとえば、デバイスのIPアドレスを特定するには、次のコマンドをrootユーザーで実行します。

# /usr/sbin/ifconfig -a
fta0: flags=c63<UP,BROADCAST,NOTRAILERS,RUNNING,MULTICAST,SIMPLEX>
      inet 129.34.137.212 netmask fffffc00 broadcast 129.34.139.255 ipmtu 1500

lo0:  flags=100c89<UP,LOOPBACK,NOARP,MULTICAST,SIMPLEX,NOCHECKSUM>
      inet 127.0.0.1 netmask ff000000 ipmtu 4096

ics0:  flags=1100063<UP,BROADCAST,NOTRAILERS,RUNNING,NOCHECKSUM,CLUIF>
      inet 10.0.0.1 netmask ffffff00 broadcast 10.0.0.255 ipmtu 7000

sl0:  flags=10<POINTOPOINT>

tun0: flags=80<NOARP>

前述の例では、インタフェースfta0:のIPアドレスは129.34.137.212で、インタフェースics0:のIPアドレスは10.0.0.1です。

Oracle ClusterwareでのOracle RACデータベースの管理方法のカスタマイズ

デフォルトでは、Oracle ClusterwareによってOracle RAC環境のデータベースの再起動が制御されます。場合によっては、Oracle ClusterwareのOracle RACデータベースに対する制御レベルを最小限に抑える必要があることがあります。たとえば、データベースのアップグレードまたは日常のメンテナンスの実行中にこの操作を行う必要があります。


注意:

サード・パーティのクラスタウェアを使用する場合は、Oracle DatabaseでOracle RACインスタンスを管理できるようにすることをお薦めします。インスタンスを手動に設定し、そのインスタンスをサード・パーティのクラスタウェアで起動する場合、サード・パーティのクラスタウェアを使用してデータベース・インスタンスの監視および再起動を行わないでください。これらは、Oracle Clusterwareで実行される必要があります。

システムの再起動時にOracle ClusterwareによるOracle RACデータベースの再起動を防止する場合、または障害が発生したインスタンスの2回目以降の再起動を回避する場合、制御の程度を定義するポリシーを構成します。ポリシーには、自動(デフォルト)と手動の2つがあります。データベース・インスタンスの保護レベルを最小限に抑える手動ポリシーは、自動ポリシーより優先されます。

このポリシーを使用すると、システムの再起動時にOracle ClusterwareがOracle RACデータベースを自動的に再起動するように構成するか、またはOracle RACデータベースを手動で再起動するように構成できます。また、この手順を使用して、障害が発生したデータベース・インスタンスをOracle Clusterwareが自動的に2回以上再起動しないようにシステムを構成できます。

SRVCTLコマンドを使用して、次の例に示すように、Oracle Clusterwareのポリシーを表示および変更できます。

例1   現行ポリシーの表示

たとえば、現行のポリシーを表示するには、次のコマンド構文を使用します。ここで、database_nameは、ポリシーを変更するデータベース名です。

srvctl config database -d database_name -a
例2   現行ポリシーの別のポリシーへの変更

現行のポリシーを別のポリシーに変更するには、次のSRVCTLコマンド構文を使用します。ここで、policy_nameは、例1でdatabase_nameに指定されたデータベースの新しいポリシー名です。

srvctl modify database d management_policy -y policy_name

このコマンド構文は、該当する各リソースのリソース・プロファイルの値を変更し、現在のポリシーのOCRキーを新しい値に設定します。

例3   新規データベースのポリシーの指定

SRVCTLコマンドを使用して新しいデータベースを追加する場合、次の例のように-yオプションを使用して管理ポリシーを指定できます。ここで、database_nameはデータベース名、management_policyはポリシー名です。

srvctl add database -d database_name -y management_policy

このコマンド構文によって、新しいデータベースがOracle Clusterwareに制御されるようになります。新しい管理ポリシー・オプションを指定しないと、Oracle Databaseによってデフォルト値automaticが使用されます。ポリシー変更を行うと、OCRによって、影響を受けたデータベースの新しい値が記録されます。


関連項目:

SRVCTLコマンドの詳細は、付録A「サーバー制御ユーティリティのリファレンス」を参照してください。

Oracle Enterprise Managerの高度な管理

Oracle Enterprise Manager Database ControlまたはOracle Enterprise Manager Grid Controlのいずれかを使用して、集中的にOracle RACデータベースをインストール、構成および監視できます。

この項では、『Oracle Database 2日でReal Application Clustersガイド』や「Oracle Real Application Clustersデータベースの監視およびチューニングの概要」で取り上げられていない高度な管理タスクについて説明します。


関連項目:

Oracle Enterprise Managerを使用してOracle RACデータベースの日常的な管理タスクを実行する方法を説明するタスク指向型ガイドについては、『Oracle Database 2日でReal Application Clustersガイド』を参照してください。

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

ノードおよびインスタンスの検出のためのOracle Enterprise Manager Grid Controlの使用

Oracle Enterprise ManagerでOracle RACデータベースおよびインスタンスのターゲットを検出すると、コンソールから監視および管理を実行できます。

  • Database Controlでは、データベース作成中にDBCAが必要な構成を実行するため、検出は必要ありません。

  • Grid Controlでは、Oracle Enterprise Managerコンソール・インタフェースを使用してOracle RACデータベースおよびインスタンス・ターゲットを検出できます。

    Oracle RACデータベースがすでに存在するクラスタにGrid Controlエージェントがインストールされる場合、Oracle RACデータベース・ターゲットはインストール時に検出されます。エージェントのインストール後にデータベースが作成される場合またはエージェントのインストール時にデータベースが自動的に検出されない場合は、コンソール・インタフェースを使用してターゲットを検出できます。

ノードおよびインスタンスを検出するには、次のようにOracle Enterprise Manager Grid Controlを使用します。

  1. Oracle Enterprise Managerにログインし、「ターゲット」タブをクリックします。

  2. 「データベース」タブをクリックすると、使用可能なターゲットがすべて表示されます。「タイプ」列に、「クラスタ・データベース」というエントリを使用するOracle RACデータベースが表示されます。

  3. ターゲット名を選択して「追加」をクリックし、このデータベース・ターゲットを追加します。「データベースターゲットの追加: ホストの指定」ページが表示されます。このページで、データベース、リスナーおよび自動ストレージ管理(ASM)を監視ターゲットとして追加できます。

  4. 懐中電灯のアイコンをクリックすると、使用可能なホスト名が表示されます。ホストを選択して、「続行」をクリックします。「データベースの追加: ソースの指定」ページが表示されます。

  5. Oracle Enterprise Managerを使用してシングル・インスタンスのデータベースおよびリスナーのみを検出するか、またはすべてのクラスタ・データベース、シングル・インスタンスのデータベースおよびクラスタのリスナーを検出するかを指定し、「続行」をクリックします。

    Oracle Enterprise Managerにより検索が実行され、クラスタ・データベースおよびそれと関連付けられたインスタンスが表示されます。「クラスタでターゲットが検出されました」というメッセージが示されたページが表示されます。この手順で、再構成したクラスタ・データベースおよびそのすべてのインスタンスが検出されない場合、このページを使用してクラスタ・データベースおよびシングル・インスタンス・データベースを手動で構成できます。

Oracle Real Application Clustersでのジョブおよびアラートの管理

クラスタ・データベースの「ホーム」ページには、Oracle RACデータベースのすべてのインスタンスが表示され、サーバー管理のために自動ワークロード・リポジトリが収集するいくつかのOracle RAC固有の統計の集計が提供されます。

その詳細を表示するために、インスタンス固有のページに移動する必要はありません。ただし、クラスタ・データベースの「ホーム」ページでは、稼働しているはずのインスタンスが停止したり、インスタンスで多数のアラートが発生している場合は、各アラートについてインスタンス固有のページにドリルダウンできます。

この項で後述する管理タスクを実行するには、ターゲットOracle RACデータベースにログインし、クラスタ・データベースの「ホーム」ページに移動し、「管理」タブをクリックします。

Oracle Real Application Clustersでのジョブの管理

Oracle Enterprise Managerジョブは、データベース・レベルでもインスタンス・レベルでも管理できます。たとえば、クラスタ・データベース・レベルでジョブを作成し、そのジョブをターゲットOracle RACデータベースのアクティブな任意のインスタンスで実行できます。または、インスタンス・レベルでジョブを作成し、それを作成した特定のインスタンスでのみ実行することもできます。障害が発生した場合、再起ジョブは障害が発生しなかったインスタンスで実行できます。

ジョブは、インスタンス・レベル、クラスタ・レベルまたはクラスタ・データベース・レベルで作成できるため、クラスタ・データベース内の使用可能ないずれのホストでもジョブを実行できます。これはスケジュールされるジョブにも適用されます。Oracle Enterprise Managerでは、ジョブ・アクティビティがActiveHistoryLibraryなどのカテゴリに分類されて表示されます。

オペレーティング・システムのスクリプトやSQLスクリプトの送信およびスケジュールされたジョブの調査には、「ジョブ」タブを使用します。たとえば、特定のOracle RACデータベースのためのバックアップ・ジョブの作成は、次のように行います。

  1. 「ターゲット」をクリックし、ジョブを作成するデータベースをクリックします。

  2. ターゲット・データベースにログインします。

  3. 表示されたデータベースの「ホーム」ページで、「メンテナンス」をクリックします。

  4. Enterprise Managerのジョブ・ウィザードのパネルに入力し、ジョブを作成します。

Oracle Enterprise Managerを使用したOracle Real Application Clustersでのアラートの管理

Oracle Enterprise Managerを使用して、Oracle RAC環境のアラートを構成できます。また、グローバル・キャッシュ変換、読取り一貫性要求など、Oracle RACデータベースの特殊なテストも構成できます。

Oracle Enterprise Managerでは、Oracle RAC環境のデータベース・レベルとインスタンス・レベルのアラートは区別されます。アーカイブ・ログ・アラートなど、インスタンス・レベル・アラートのアラートしきい値は、インスタンスのターゲット・レベルで設定できます。これにより、パフォーマンスがしきい値を超えた場合、特定のインスタンスに関するアラートを受信できます。また、表領域に関するアラートの設定など、データベース・レベルでアラートを構成することもでき、各インスタンスで重複するアラートの受信を回避できます。


関連項目:

Oracle RACでのアラートの構成の例は、OTN(Oracle Technology Network)を参照してください。パッケージを使用してしきい値を構成する方法は、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。

Oracle Enterprise Managerで定義済ブラックアウトを使用したスケジュール済メンテナンスの実行

Oracle RACデータベースの管理対象のすべてのターゲットについてブラックアウトを定義し、メンテナンス実行中のアラートの発生を防止できます。ブラックアウトは、クラスタ・データベース全体について定義することも、クラスタ・データベースの特定のインスタンスについて定義することもできます。