日本語PDF

2 Oracle RACの記憶域の管理

従来のボリューム・マネージャ、ファイル・システムおよびRAWデバイスに対して代替方法を提供するストレージ管理ソリューションとしてOracle Automatic Storage Management(Oracle ASM)をお薦めします。

Oracle ASMは、Oracleデータベース・ファイルのボリューム・マネージャファイル・システムで、単一インスタンスOracle DatabaseおよびOracle Real Application Clusters(Oracle RAC)構成をサポートします。

Oracle ASMでは、データファイルの格納にディスク・グループが使用されます。Oracle ASMディスク・グループとは、Oracle ASMで1つの単位として管理されるディスクの集合のことです。ディスク・グループ内では、各Oracleデータベース・ファイルに使用するファイル・システム・インタフェースがOracle ASMによって公開されます。ディスク・グループ内に保存されたファイルの内容は、均等に分散されるため、ホット・スポットがなくなり、ディスク間のパフォーマンスが均一になります。このパフォーマンスは、RAWデバイスのパフォーマンスに匹敵します。

ディスク・グループに対してディスクの追加や削除を行う際、そのディスク・グループのファイルにアクセス中のデータベースがあっても、そのアクセスが妨げられることはありません。Oracle ASMは、ディスク・グループに対するディスクの追加や削除が行われる際、ファイルの内容を自動的に再分散します。再分散のための停止時間は発生しません。

Oracle ASMのボリューム・マネージャ機能には、サーバーベースのフレキシブルなミラー化オプションが用意されています。標準冗長性と高冗長性のOracle ASMディスク・グループは、それぞれ双方向ミラー化と3方向ミラー化を可能にします。外部冗長性を使用すると、Redundant Array of Independent Disks(RAID)ストレージ・サブシステムでミラー化保護機能を実行できるようになります。

また、Oracle ASMではOracle Managed Files機能を使用してデータベース・ファイル管理を簡略化しています。Oracle Managed Filesは、指定した場所にファイルを自動的に作成します。さらに、Oracle Managed Filesでは、ファイルの命名およびその削除が行われ、表領域またはファイルを削除するときに領域が解放されます。

Oracle ASMは、データ記憶域を少数のディスク・グループに統合することで、データベース記憶域の管理にまつわるオーバーヘッドを低減します。より少ないディスク・グループで複数データベースのストレージを統合し、I/Oパフォーマンスを高めます。

Oracle ASMファイルは、RAWディスクやサード・パーティのファイル・システムなど他のストレージ管理オプションと共存できます。この機能により、Oracle ASMを既存の環境に統合する作業が簡素化されます。

Oracle ASMは、SQL*Plus、Oracle ASMコマンドライン・ユーティリティ(ASMCMD)・コマンドライン・インタフェース、Oracle ASM Configuration Assistant (ASMCA)などの使いやすい管理インタフェースを備えています。

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

Oracle RAC用記憶域管理の概要

Oracle RACデータベース用のすべてのデータ・ファイル(各インスタンスのUNDO表領域を含む)およびREDOログ・ファイル(各インスタンスに少なくとも2つ)は、共有記憶域に存在する必要があります。

これらのファイルをOracle ASMディスク・グループに格納するには、Oracle ASMを使用することをお薦めします。

認定されたクラスタ・ファイル・システムなど、共有記憶域の代替使用方法がサポートされています。さらに、インスタンス固有のエントリを使用した単一の共有サーバー・パラメータ・ファイル(SPFILE)を使用することをお薦めします。Oracle RAC 12cでは、Oracle ASMでの共有パスワード・ファイルの格納、およびOracle Automatic Storage Management Cluster File System (Oracle ACFS)でのOracle Databaseファイルの格納ができます。

ノート:

Oracle Database、およびOracle Clusterwareなどの関連テクノロジは、RAW (ブロック)記憶域デバイスをサポートしていません。Oracle Clusterware 12cにアップグレードする前に、ファイルをOracle ASMに移動する必要があります。

特に明記されていないかぎり、Oracle RAC環境内での、Oracle ASM、Oracle Managed Files、自動セグメント領域管理などのOracle Database記憶域の機能は、非クラスタのOracle Database環境と同じです。

Oracle RACでのデータ・ファイルへのアクセス

すべてのOracle RACインスタンスは、すべてのデータ・ファイルにアクセスできる必要があります。データベースのオープン中にデータ・ファイルのリカバリが必要になった場合は、最初に起動するOracle RACインスタンスがリカバリを実行し、ファイルへのアクセスを検証します。他のインスタンスも、起動時に、データ・ファイルへのアクセスを検証します。同様に、表領域またはデータ・ファイルを追加したり、表領域またはデータ・ファイルをオンライン状態にする場合も、すべてのインスタンスがファイルへのアクセスを検証します。

他のインスタンスがアクセスできないデータ・ファイルをディスクに追加すると、検証に失敗します。インスタンスが同一データ・ファイルの異なるコピーへアクセスした場合も、検証に失敗します。いずれのインスタンスについても検証に失敗した場合は、問題を診断し解決してください。その後、各インスタンスに対してALTER SYSTEM CHECK DATAFILES文を実行して、データ・ファイルへのアクセスを検証します。

ストレージ用のNFSサーバー

Oracleデータベースは、ネットワーク・ファイル・システム(NFS)サーバーとして機能できます。データベースは、NFSクライアントからのNFSリクエストに応答し、データベース内のファイルとそのメタデータの両方を格納します。

プライマリ・データベースに関連付けられたファイル(SQLスクリプトなど)は、スタンバイ・データベースに自動的にレプリケートできます。また、構造化されていないデータ(電子メールなど)もデータベースに格納できます。

NFSサーバーを使用して、Oracleファイル・システムを作成または破棄できます。また、そのファイル・システムにアクセスすることもできます。この手順の詳細は、『Oracle Database SecureFilesおよびラージ・オブジェクト開発者ガイド』を参照してください。

Oracle RACでのREDOログ・ファイル記憶域

Oracle RACデータベースでは各インスタンスは、REDOログ・ファイルの少なくとも2つのグループを備える必要があります。REDOログ・グループを割り当ててから、ALTER DATABASE ENABLE INSTANCE instance_nameコマンドを使用して新規インスタンスを有効化する必要があります。DBCAを使用してデータベースを作成する場合、DBCAは、必要に応じてREDOログ・ファイルをインスタンスに自動的に割り当てます。初期データベースの作成時または作成後のステップとして必要に応じて、REDOログ・グループの数およびREDOログ・ファイルのサイズを変更できます。

現在のグループが一杯になると、インスタンスは次のログ・ファイル・グループへの書込みを開始します。データベースがARCHIVELOGモードの場合は、各インスタンスは一杯になったオンライン・ログ・グループをアーカイブREDOログ・ファイルとして保存し、このファイルは制御ファイルに記録されます。データベースのリカバリ時に、有効化されているすべてのインスタンスについて、リカバリが必要かどうかがチェックされます。Oracle RACデータベースからインスタンスを削除する場合は、データベースのリカバリ時にスレッドをチェックする必要がないように、インスタンスのREDOスレッドを無効化する必要があります。

REDOログの管理は、特定の本番Oracle RACデータベースのインスタンスの数を変更するときに考慮する必要があります。たとえば、ポリシー管理データベースのサーバー・プールのカーディナリティを増やし、新しいサーバーをサーバー・プールに割り当てると、新しいサーバーのインスタンスが起動されます。新しいサーバーのデータベース・インスタンスが起動すると、一連のREDOログ・グループが必要になります。Oracle ASMディスク・グループに基づいたOracle Managed Filesを使用すると、必要なREDOログ・スレッドおよびそれぞれのファイルの割り当てが自動的に実行されます。REDOログ・グループは、管理者管理データベースを使用する場合にのみ作成する必要があります。

管理者管理データベースの場合、インスタンスごとに、独自のオンラインREDOログ・グループがあります。これらのREDOログ・グループを作成し、グループ・メンバーを設定します。REDOログ・グループを特定のインスタンスに追加するには、ALTER DATABASE ADD LOGFILE文でINSTANCE句を指定します。REDOログ・グループの追加時にインスタンスを指定しない場合は、現在接続しているインスタンスにREDOログ・グループが追加されます。

各インスタンスには、2つ以上のREDOログ・ファイルのグループが必要です。REDOログ・グループを割り当ててから、ALTER DATABASE ENABLE INSTANCE instance_nameコマンドを使用して新規インスタンスを有効化する必要があります。現在のグループが一杯になると、インスタンスは次のログ・ファイル・グループへの書込みを開始します。データベースがARCHIVELOGモードの場合は、各インスタンスは一杯になったオンライン・ログ・グループをアーカイブREDOログ・ファイルとして保存し、このファイルは制御ファイルに記録されます。

データベースのリカバリ時に、有効化されているすべてのインスタンスについて、リカバリが必要かどうかがチェックされます。Oracle RACデータベースからインスタンスを削除する場合は、データベースのリカバリ時にスレッドをチェックする必要がないように、インスタンスのREDOスレッドを無効化する必要があります。

Oracle RACでの自動UNDO管理

インスタンスに割り当てられた特定のUNDO表領域内のUNDOセグメントは、Oracle Databaseによって自動的に管理されます。インスタンスは、読取り一貫性のためにいつでも、クラスタ環境内のすべてのUNDOブロックを読み取ることができます。また、UNDO表領域が別のインスタンスにUNDO生成またはトランザクション・リカバリのために使用されていなければ、どのインスタンスもトランザクション・リカバリ中にそのUNDO表領域を更新できます。

Oracle RAC管理者管理データベース内にUNDO表領域を割り当てるには、SPFILEまたは個別のPFILEで各インスタンスのUNDO_TABLESPACEパラメータに別の値を指定します。ポリシー管理データベースの場合、Oracle Managed Filesが有効化されていれば、インスタンスの起動時にUNDO表領域が自動的に割り当てられます。Oracle RACデータベースでは、自動UNDO管理モードと手動UNDO管理モードを同時に使用することはできません。Oracle RACデータベースのすべてのインスタンスは、同じUNDOモードで操作してください。

Oracle RACによるOracle Automatic Storage Management

Oracle ASMは、管理対象のディスク間で記憶域構成を管理することにより、自動的に最大のI/Oパフォーマンスを引き出します。

Oracle ASMはこれを行うために、Oracle ASM内のディスク・グループに割り当てられている使用可能なすべての記憶域にわたってデータベース・ファイルを均等に分散します。Oracle ASMによって、ディスク領域全体の要件は、ディスク・グループ内のすべてのディスクに均等なサイズで割り当てられます。Oracle ASMでは、データの損失を防止するために、ファイルのミラー化も自動的に行われます。Oracle ASMのこれらの機能により、管理オーバーヘッドも大幅に削減されます。

Oracle ASMインスタンスは、Oracle Clusterwareをインストールする各ノードに作成されます。各Oracle ASMインスタンスには、SPFILEまたはPFILEタイプのパラメータ・ファイルが存在します。パラメータ・ファイルおよびデフォルト以外のOracle NetリスナーのTNSエントリをバックアップすることをお薦めします。

Oracle RACでOracle ASMを使用するには、Database Configuration Assistant(DBCA)を使用してデータベースを作成する際に、Oracle ASMを記憶域オプションとして選択します。非クラスタのOracle Databaseの場合と同様、Oracle RACでOracle ASMを使用する場合もI/Oチューニングは不要です。

次の項では、Oracle ASMおよびOracle ASMの管理について説明します。

Oracle RACでの記憶域管理

Oracle ASMディスク・グループの作成およびOracle ASMディスク・グループのミラー化の構成は、Oracle ASMコンフィギュレーション・アシスタント(ASMCA)で実行できます。

または、Oracle Enterprise Managerを使用して、Oracle Enterprise Managerで対応するサーバーを見つけた後に、Oracle ASMディスク・グループを管理できます。

Oracle ASMの管理に使用するASMCA、Oracle Enterprise ManagerなどのOracleツールと、サイレント・モードのインストールおよびアップグレード・コマンドでは、Oracle ASMインスタンスおよびディスク・グループを管理するオプションを使用できます。

クラスタ全体のOracle ASMの整合性は、クラスタ検証ユーティリティ(CVU)で検証できます。通常、このチェックによりすべてのノードのOracle ASMインスタンスが同じOracleホームから実行されていることが保証され、asmlibが存在する場合は、このライブラリのバージョンが有効であることと所有権が有効であることが保証されます。次のコマンドを実行して、このチェックを実行します。

cluvfy comp asm [-n node_list] [-verbose]

node_listの部分は、チェックを実行するノード名をカンマで区切ったリストに置き換えてください。allを指定すると、クラスタ内のすべてのノードがチェックされます。

cluvfy comp ssaコマンドを使用して、共有記憶域を検出します。

Oracle ASM用ディスク・グループ構成の変更

クラスタにディスク・グループを作成する場合、またはクラスタ化されている既存のディスク・グループに新しいディスクを追加する場合は、共有ディスク上に基盤となる物理記憶域を準備して、Oracleユーザーにディスクに対する読取り/書込み権限を付与します。

Oracle ASMをOracle RACデータベースで使用する場合と非クラスタのOracle Databaseで使用する場合の実質的な相違点は、共有ディスクが必要かどうかのみです。Oracle ASMでは、ディスクまたはディスク・グループの追加または削除後に、データ・ファイルの再分散が自動的に行われます。

クラスタでは、各Oracle ASMインスタンスが、各ノードのディスク・グループの更新メタデータを管理します。また、各Oracle ASMインスタンスが、ディスク・グループのメタデータとクラスタの他のノード間の調整を行います。非クラスタのOracle Databaseの場合と同様、Oracle RACで使用されるOracle ASM用ディスク・グループの管理に、Oracle Enterprise Manager、ASMCA、SQL*Plusおよびサーバー制御ユーティリティ(SRVCTL)を使用できます。SQL*Plusを使用してOracle ASMインスタンスを管理する方法の詳細は、『Oracle Automatic Storage Management管理者ガイド』を参照してください。その他のツールの使用方法については、次の各項で説明します。

ノート:

ASMCAを起動したときにOracle ASMインスタンスが存在しない場合は、Oracle ASMインスタンスの作成を求めるプロンプトが表示されます。

Oracle ASMディスク・グループの管理

Oracle ASMを使用するには、Oracle DBCAでデータベースを作成する前に、ASMCAでディスク・グループを作成しておく必要があります。

ディスク・グループ管理コマンドを使用すると、データベースの作成とは関係なく、Oracle ASMインスタンスおよびその関連のディスク・グループの作成および管理もできます。Oracle Enterprise ManagerまたはASMCAを使用すると、ディスク・グループへのディスクの追加、1つまたはすべてのディスク・グループのマウント、Oracle ASMインスタンスの作成を実行できます。また、Oracle Enterprise Managerを使用して、ディスク・グループをディスマウントまたは削除したり、Oracle ASMインスタンスを削除することもできます。

Oracle ASMインスタンスは、Oracle Clusterwareをインストールするときに作成されます。Oracle ASMディスク・グループを作成するには、Grid_home/binディレクトリからASMCAを実行します。Oracle ASMの管理には、ASMCAの「Oracle ASMディスク・グループ」ページも使用できます。つまり、データベースの作成とは別にOracle ASM記憶域を構成できます。たとえば、「ASMディスク・グループ」ページから、ディスク・グループの作成、既存のディスク・グループへのディスクの追加、または現在マウントされていないディスク・グループのマウントを実行できます。

ASMCAを起動したときにASMインスタンスが存在しない場合は、インスタンスの作成を求めるプロンプトが表示されます。sysasmのパスワードとASMSNMPのパスワードを求めるプロンプトが表示されます。

拡張遠距離クラスタでの優先読取りミラー・ディスクの構成

優先読取りディスクを構成してパフォーマンスを向上させることができます。

Oracle Automatic Storage Management (Oracle ASM)障害グループを構成している場合、ノードは、そのノードに最も近いエクステントから(そのエクステントがセカンダリ・エクステントであっても)読み取る方が効率的です。ノードから遠い場所にあるプライマリ・コピーからではなく、ノードにより近い場所にあるセカンダリ・エクステントから読み取るようにOracle ASMを構成できます。拡張遠距離クラスタでは、優先読取り障害グループを使用するのが最も有効です。

この機能を構成するには、ASM_PREFERRED_READ_FAILURE_GROUPS初期化パラメータで、障害グループ名のリストを優先読取りディスクとして指定します。エクステントの1つ以上のミラー・コピーを、拡張クラスタ内のノードに対してローカルなディスクから構成することをお薦めします。ただし、1つのインスタンスに優先される障害グループが、同じOracle Real Application Clusters (Oracle RAC)データベース内の別のインスタンスに対してはリモートである可能性があります。優先読取り障害グループのパラメータ設定は、インスタンス固有です。

クラスタ化されていないOracle ASMからクラスタ化されたOracle ASMへの変換

Oracle Grid Infrastructureをインストールすると、クラスタ化されていないOracle Automatic Storage Management (Oracle ASM)インスタンスは、クラスタ化されたOracle ASMに自動的に変換されます。

Oracle RACでのSRVCTLを使用したOracle ASMインスタンスの管理

サーバー制御ユーティリティ(SRVCTL)を使用すると、Oracle ASMインスタンスを追加または削除できます。

SRVCTLコマンドを発行してOracle ASMを管理するには、Oracle Grid Infrastructureホームを所有するオペレーティング・システム・ユーザーとしてログインして、Oracle Grid InfrastructureホームのbinディレクトリからSRVCTLコマンドを発行します。

Oracle ASMインスタンスを追加するには、次の構文を使用します。

srvctl add asm

Oracle ASMインスタンスを削除するには、次の構文を使用します。

srvctl remove asm [-force]

Oracle ASMインスタンスの起動、停止およびステータスの取得にも、SRVCTLを使用できます。次に例を示します。

Oracle ASMインスタンスを起動にするには、次の構文を使用します。

srvctl start asm [-node node_name] [-startoption start_options]

Oracle ASMインスタンスを停止するには、次の構文を使用します。

srvctl stop asm [-node node_name] [-stopoption stop_options]

Oracle ASMインスタンスの構成を表示するには、次の構文を使用します。

srvctl config asm -node node_name

Oracle ASMインスタンスの状態を表示するには、次の構文を使用します。

srvctl status asm [-node node_name]