2 Oracle RACの記憶域の管理
従来のボリューム・マネージャ、ファイル・システムおよびRAWデバイスに代わるストレージ管理ソリューションとしてOracle Automatic Storage Management (Oracle ASM)をお薦めします。
注意:
マルチテナント・コンテナ・データベースは、Oracle Database 20cで唯一サポートされているアーキテクチャです。ドキュメントが改訂されている間は、従来の用語が残っている可能性があります。ほとんどの場合、"データベース"と"非CDB"は、文脈に応じてCDBまたはPDBを指しています。アップグレードなどでは、"非CDB"が以前のリリースの非CDBを指している場合もあります。
- Oracle ASMについて
Oracle Automatic Storage Management (Oracle ASM)は、ボリューム・マネージャであり、シングル・インスタンスOracle DatabaseおよびOracle Real Application Clusters (Oracle RAC)の構成をサポートするOracleデータベース・ファイル用のファイル・システムです。 - Oracle RAC用の記憶域管理の概要
Oracle RACデータベース用のすべてのデータ・ファイル(各インスタンスのUNDO表領域を含む)およびREDOログ・ファイル(各インスタンスに少なくとも2つ)は、共有記憶域に存在する必要があります。 - Oracle RACでのデータ・ファイルへのアクセス
- ストレージ用のNFSサーバー
Oracleデータベースは、ネットワーク・ファイル・システム(NFS)サーバーとして機能できます。データベースは、NFSクライアントからのNFSリクエストに応答し、データベース内のファイルとそのメタデータの両方を格納します。 - Oracle RACでのREDOログ・ファイル記憶域
Oracle Real Application Clusters (Oracle RAC)データベースのREDOログ要件について説明します。 - Oracle RACでの自動UNDO管理
インスタンスに割り当てられた特定のUNDO表領域内のUNDOセグメントは、Oracle Databaseによって自動的に管理されます。 - Oracle RACでのOracle Automatic Storage Management
Oracle Automatic Storage Management (Oracle ASM)では、管理対象のディスク全体で記憶域構成を管理することで、自動的に最大のI/Oパフォーマンスを引き出します。
2.1 Oracle ASMについて
Oracle Automatic Storage Management (Oracle ASM)は、ボリューム・マネージャであり、シングル・インスタンスOracle DatabaseおよびOracle Real Application Clusters (Oracle RAC)の構成をサポートするOracleデータベース・ファイル用のファイル・システムです。
Oracle ASMでは、データファイルの格納にディスク・グループが使用されます。Oracle ASMディスク・グループとは、Oracle ASMで1つの単位として管理されるディスクの集合のことです。ディスク・グループ内では、Oracle ASMによりOracleデータベース・ファイルのファイル・システム・インタフェースが公開されます。ディスク・グループ内に保存されたファイルの内容は、均等に分散されるため、ホット・スポットがなくなり、ディスク間のパフォーマンスが均一になります。このパフォーマンスは、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)などの使用しやすい管理インタフェースを備えています。
2.2 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 Database Standard Editionを使用してOracle RACデータベースを作成するには、データベース記憶域にOracle ASMを使用する必要があります。
2.3 Oracle RACでのデータ・ファイルへのアクセス
すべてのOracle RACインスタンスは、すべてのデータ・ファイルにアクセスできる必要があります。データベースのオープン中にデータ・ファイルのリカバリが必要になった場合は、最初に起動するOracle RACインスタンスがリカバリを実行し、ファイルへのアクセスを検証します。他のインスタンスも、起動時に、データ・ファイルへのアクセスを検証します。同様に、表領域またはデータ・ファイルを追加したり、表領域またはデータ・ファイルをオンライン状態にする場合も、すべてのインスタンスがファイルへのアクセスを検証します。
他のインスタンスがアクセスできないデータ・ファイルをディスクに追加すると、検証に失敗します。インスタンスが同一データ・ファイルの異なるコピーへアクセスした場合も、検証に失敗します。いずれのインスタンスについても検証に失敗した場合は、問題を診断し解決してください。その後、各インスタンスに対してALTER SYSTEM CHECK DATAFILES
文を実行して、データ・ファイルへのアクセスを検証します。
親トピック: Oracle RACの記憶域の管理
2.4 ストレージ用のNFSサーバー
Oracleデータベースは、ネットワーク・ファイル・システム(NFS)サーバーとして機能できます。データベースは、NFSクライアントからのNFSリクエストに応答し、データベース内のファイルとそのメタデータの両方を格納します。
プライマリ・データベースに関連付けられたファイル(SQLスクリプトなど)は、スタンバイ・データベースに自動的にレプリケートできます。また、構造化されていないデータ(電子メールなど)もデータベースに格納できます。
NFSサーバーを使用して、Oracleファイル・システムを作成または破棄できます。また、そのファイル・システムにアクセスすることもできます。この手順の詳細は、『Oracle Database SecureFilesおよびラージ・オブジェクト開発者ガイド』を参照してください。
2.5 Oracle RACでのREDOログ・ファイル記憶域
Oracle Real Application Clusters (Oracle RAC)データベースのREDOログ要件について説明します。
Oracle RACデータベースでは各インスタンスは、REDOログ・ファイルの少なくとも2つのグループを備える必要があります。DBCAを使用してデータベースを作成する場合、DBCAは、必要に応じてREDOログ・ファイルをインスタンスに自動的に割り当てます。初期データベースの作成時または作成後のステップとして必要に応じて、REDOログ・グループの数およびREDOログ・ファイルのサイズを変更できます。ノードをクラスタに追加すると、addNode
スクリプトによって新しいサーバーにREDOログが構成されます。
現在のグループが一杯になると、インスタンスは次のログ・ファイル・グループへの書込みを開始します。データベースがARCHIVELOG
モードの場合は、各インスタンスは一杯になったオンライン・ログ・グループをアーカイブREDOログ・ファイルとして保存し、このファイルは制御ファイルに記録されます。データベースのリカバリ時に、有効化されているすべてのインスタンスについて、リカバリが必要かどうかがチェックされます。Oracle RACデータベースからインスタンスを削除する場合は、データベースのリカバリ時にスレッドをチェックする必要がないように、インスタンスのREDOスレッドを無効化する必要があります。
2.6 Oracle RACでの自動UNDO管理
インスタンスに割り当てられた特定のUNDO表領域内のUNDOセグメントは、Oracle Databaseによって自動的に管理されます。
インスタンスは、読取り一貫性のためにいつでも、クラスタ環境内のすべてのUNDOブロックを読み取ることができます。また、UNDO表領域が別のインスタンスにUNDO生成またはトランザクション・リカバリのために使用されていなければ、どのインスタンスもトランザクション・リカバリ中にそのUNDO表領域を更新できます。
Oracle Real Application Clusters (Oracle RAC)データベースでUNDO表領域を割り当てるには、SPFILEまたは個別のPFILEで各インスタンスのUNDO_TABLESPACE
パラメータに異なる値を指定します。Oracle Managed Filesが有効になっていれば、インスタンスの起動時にUNDO表領域が自動的に割り当てられます。Oracle RACデータベースでは、自動UNDO管理モードと手動UNDO管理モードを同時に使用することはできません。Oracle RACデータベースのすべてのインスタンスは、同じUNDOモードで操作してください。
注意:
Oracle Grid Infrastructure 20c以降、ポリシー管理データベースは非推奨です。2.7 Oracle RACでのOracle Automatic Storage Management
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 Real Application Clusters (Oracle RAC)でOracle ASMを使用するには、Oracle Database Configuration Assistant (DBCA)を使用してデータベースを作成する際に、Oracle ASMを記憶域オプションとして選択します。非クラスタのOracle Databaseの場合と同様に、Oracle RACでOracle ASMを使用する場合もI/Oチューニングは不要です。
- Oracle RACでの記憶域管理
Oracle ASMディスク・グループの作成およびOracle ASMディスク・グループのミラー化の構成は、Oracle ASMコンフィギュレーション・アシスタント(ASMCA)で実行できます。 - Oracle ASM用ディスク・グループ構成の変更
クラスタにディスク・グループを作成する場合、またはクラスタ化されている既存のディスク・グループに新しいディスクを追加する場合は、共有ディスク上に基盤となる物理記憶域を準備して、Oracleユーザーにディスクに対する読取り/書込み権限を付与します。 - Oracle ASMディスク・グループの管理
Oracle ASMを使用するには、DBCAでデータベースを作成する前に、ASMCAでディスク・グループを作成しておく必要があります。 - 拡張遠距離クラスタでの優先読取りミラー・ディスクの構成
優先読取りディスクを構成してパフォーマンスを向上させることができます。 - クラスタ化されていないOracle ASMからクラスタ化されたOracle ASMへの変換
- Oracle RACでのSRVCTLを使用したOracle ASMインスタンスの管理
サーバー制御ユーティリティ(SRVCTL)を使用すると、Oracle ASMインスタンスを追加または削除できます。
親トピック: Oracle RACの記憶域の管理
2.7.1 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
コマンドを使用して、共有記憶域を検出します。
2.7.2 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インスタンスの作成を求めるプロンプトが表示されます。
2.7.3 Oracle ASMディスク・グループの管理
Oracle ASMを使用するには、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
のパスワードを求めるプロンプトが表示されます。
2.7.4 拡張遠距離クラスタでの優先読取りミラー・ディスクの構成
優先読取りディスクを構成してパフォーマンスを向上させることができます。
Oracle Automatic Storage Management (Oracle ASM)障害グループを構成している場合、ノードは、そのノードに最も近いエクステントから(そのエクステントがセカンダリ・エクステントであっても)読み取る方が効率的です。ノードから遠い場所にあるプライマリ・コピーからではなく、ノードにより近い場所にあるセカンダリ・エクステントから読み取るようにOracle ASMを構成できます。拡張遠距離クラスタでは、優先読取り障害グループを使用するのが最も有効です。
この機能を構成するには、ASM_PREFERRED_READ_FAILURE_GROUPS
初期化パラメータで、障害グループ名のリストを優先読取りディスクとして指定します。エクステントの1つ以上のミラー・コピーを、拡張クラスタ内のノードに対してローカルなディスクから構成することをお薦めします。ただし、1つのインスタンスに優先される障害グループが、同じOracle Real Application Clusters (Oracle RAC)データベース内の別のインスタンスに対してはリモートである可能性があります。優先読取り障害グループのパラメータ設定は、インスタンス固有です。
2.7.5 クラスタ化されていないOracle ASMからクラスタ化されたOracle ASMへの変換
Oracle Grid Infrastructureをインストールすると、クラスタ化されていないOracle Automatic Storage Management (Oracle ASM)インスタンスは、クラスタ化されたOracle ASMに自動的に変換されます。
2.7.6 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]