23 RMANのパフォーマンスのチューニング
ボトルネックを特定して、バックアップのパフォーマンスをチューニングし、RMANのパフォーマンスを改善します。
23.1 RMANのパフォーマンスのチューニングの目的
RMANのチューニングの目的は、ジョブのボトルネックを特定し、RMANコマンド、初期化パラメータまたは物理メディアの調整を利用して、パフォーマンスを向上することです。
RMANのバックアップ・ジョブまたはリストア・ジョブは、別々のフェーズまたはコンポーネントに分けることができます。RMANジョブでのこれらのフェーズのうち、最も低速なものをボトルネックといいます。
23.2 RMANのパフォーマンスのチューニングの基本的な概念
RMANのパフォーマンスをチューニングするには、RMANがバックアップをどのように作成するかについて、詳細に理解しておく必要があります。バックアップの作業は1つ以上のチャネルで行われます。チャネルは、ストレージ・デバイスへのバイト・ストリームを表しています。
バイト・ストリームは、メモリー内の入力バッファからCPU経由で出力バッファに渡され、さらにそこからストレージ・デバイスに渡されます。2つのテープ・デバイスにバックアップするように指定するには、2つのテープ・チャネルを割り当て、各バイト・ストリームが別々のデバイスに渡されるようにします。
各チャネルの作業は、チャネルのタイプがディスクまたはシステム・バックアップ・テープ(SBT)のいずれであるかにかかわらず、個別のフェーズに細分化されます。次の表に、これらのフェーズを示します。
表23-1 チャネル作業のフェーズ
順序 | フェーズ | 説明 | 追加情報 |
---|---|---|---|
1 | 読取りフェーズ |
ディスクのブロックが入力バッファに読み取られます。 |
|
2 | コピー・フェーズ |
入力バッファから出力バッファにブロックがコピーされ、ブロックに対する追加処理が実行されます。 |
|
3 | 書込みフェーズ |
出力バッファのブロックがストレージ・メディアに書き込まれます。書込みフェーズは、バックアップ・メディアのタイプに応じて、次の相互排他的な形式のいずれかになります。システム・バックアップ・テープ(SBT)の書込みフェーズまたはディスクの書込みフェーズ。 |
図23-1に、3つのディスクに格納されているデータをバックアップする2つのチャネルを示します。各チャネルはデータを入力バッファに読み取り、入力バッファから出力バッファへのコピー時にデータを処理し、出力バッファからのデータをディスクに書き込みます。
図23-2は、同様に、3つのディスクに格納されているデータをバックアップする2つのチャネルを示していますが、1つのディスクがネットワーク上にリモートでマウントされています。各チャネルはデータを入力バッファに読み取り、入力バッファから出力バッファへのコピー時にデータを処理し、出力バッファからのデータをテープに書き込みます。チャネル1はローカル接続されたテープ・ドライブにデータを書き込み、チャネル2はネットワークを介してリモート・メディア・サーバーにデータを送信します。
データをリストアする場合、これらのステップが逆順で実行され、読取りと書込みの操作が逆になります。次の項では、RMANのチューニングの概念について、バックアップを例に説明します。
デバイスで使用できるチャネルの数によって、RMANがこのデバイスに対する読取りまたは書込みをパラレルに行えるかどうかが決まります。チャネルの数は、使用されるストレージ・デバイスの数と同じにすることをお薦めします。したがって、RMANがディスクを使用するとき、チャネルの数はアクセスされる物理ディスクの数と同じである必要があります。RMANでテープを使用する場合は、チャネルの数は、RMANがアクセスするテープ・ドライブの数と同じである必要があります。
23.2.1 読取りフェーズ
RMANチャネルがディスクからデータを読み取る場合、複数の要因がパフォーマンスに影響することがあります。
この項の次のトピックでは、これらの要因について説明します。
23.2.1.1 入力ディスク・バッファの割当て
バックアップ中、RMANチャネルは、入力ファイルのブロックをI/Oディスク・バッファに読み取ります。ディスク・サブシステムのデータベース・ファイルは、自動ストレージ管理(ASM)、他のボリューム・マネージャまたはファイル・システムで管理できます。バックアップのチューニングに関する考慮事項は、データベース・ファイルをASMで管理するかどうかによって異なります。
入力バッファの割当ては、ファイルをどのように多重化するかによって異なります。バックアップの多重化は、バックアップ内のいくつかのファイルを複数のソースから同時に読み取り、1つのバックアップ・ピースに書き込むRMANの機能です。同時に読み取られ、同じバックアップ・ピースに書き込まれる入力ファイルの数を表す多重化レベルを決定するアルゴリズムの詳細は、「多重RMANバックアップ・セットについて」を参照してください。この章を読む前に、これらの項を参照してください。
RMANチャネルは、ディスクのファイルをバックアップするときに、表23-2に示す規則を使用して、作成する入力ディスクのバッファのサイズを決定します。
表23-2 データファイルの読取りバッファのサイズを決定するアルゴリズム
多重化レベル | 入力ディスクのバッファのサイズ |
---|---|
4以下 |
すべての入力ファイル用の合計バッファ・サイズが16メガバイト(MB)になるように、1MBのバッファが16個割り当てられます。 |
4より大きく8以下 |
すべての入力ファイル用の合計バッファ・サイズが16MB未満になるように、512キロバイト(KB)のディスク・バッファがいくつか割り当てられます。 |
8より大きい |
各入力ファイル用の合計バッファ・サイズが512KBになるように、各ファイルに128KBのディスク・バッファが4つずつ割り当てられます。 |
図23-3に、1つのチャネルで4つのデータファイルをバックアップする例を示します。MAXOPENFILES
は4に設定され、FILESPERSET
は4に設定されています。したがって、多重化のレベルは4です。このため、各データファイル用の合計バッファ・サイズは4MBになります。すべてのバッファを組み合せたサイズは16MBになります。
ASMに格納されているファイルをチャネルがバックアップする場合、多重化のレベルが1の場合にのみ、入力ディスクのバッファの数はASMディスク・グループの物理ディスクの数と等しくなります。たとえば、16個の物理ディスクを含むASMディスク・グループにデータファイルが保存されていると、チャネルはそのデータファイルのバックアップ用に16個の入力バッファを割り当てます。
チャネルがディスクからバックアップをリストアする場合は、4つのバッファが割り当てられます。バッファのサイズは、オペレーティング・システムによって異なります。
23.2.1.2 同期ディスクI/Oと非同期ディスクI/O
チャネルによるディスクに対する読取りまたは書込みでは、I/Oは同期I/Oと非同期I/Oのいずれかです。
ディスクI/Oが同期の場合、サーバー・プロセスは一度に1つのタスクのみを実行できます。ディスクI/Oが非同期の場合、サーバー・プロセスは1つのI/O操作を開始し、そのI/Oが完了するまで待機している間に他の作業を実行できます。また、1つ目のI/Oの完了の待機に入る前に、複数のI/O操作を開始することもできます。
ASMディスク・グループから読み取るときには、可能な場合は非同期ディスクI/Oを使用します。また、ボリューム・マネージャで管理されているRAWデバイスからチャネルが読み取る場合も、非同期ディスクI/Oが適切に動作します。一部のオペレーティング・システムでは、固有の非同期ディスクI/Oをサポートしています。データベースは、使用可能な場合はその機能を利用します。
23.2.1.3 ディスクI/Oスレーブ
固有の非同期I/Oをサポートしていないオペレーティング・システムの場合、データベースは、特別なI/Oスレーブ・プロセスを使用してその機能をシミュレートできます。このようなプロセスは、別のプロセスのかわりにI/Oを実行する専用のプロセスです。
ディスクI/Oスレーブを制御するには、動的でないDBWR_IO_SLAVES
初期化パラメータを設定します。このパラメータでは、データベース・ライター・プロセス(DBWR)で使用されるI/Oサーバー・プロセスの数を指定します。デフォルトでは、この値は0(ゼロ)であり、I/Oサーバー・プロセスは使用されません。DBWR_IO_SLAVES
が0(ゼロ)以外の値である場合に、非同期I/Oが無効であると、4つのバックアップ・ディスクI/Oスレーブが割り当てられます。
データベースがI/Oスレーブ用の共有バッファを取得する際、次のことが行われます。
-
LARGE_POOL_SIZE
初期化パラメータが設定されていて、かつDBWR_IO_SLAVES
パラメータの値が0(ゼロ)以外に設定されている場合、データベースでは、ラージ・プールからのメモリーの取得が試行されます。この値が十分大きくない場合、アラート・ログにエラーが記録されます。また、共有プールからのバッファの取得は試行されず、非同期I/Oは使用されません。 -
LARGE_POOL_SIZE
初期化パラメータが設定されていない場合、または0(ゼロ)に設定されている場合、データベースは、共有プールからのメモリーの取得を試行します。 -
データベースが十分なメモリーを取得できない場合、プログラム・グローバル領域(PGA)からI/Oバッファ・メモリーを取得し、このバックアップに同期I/Oを使用するというメッセージを
alert
.log
ファイルに書き込みます。
ラージ・プールのメモリーは、共有サーバー、パラレル問合せ、RMANのI/Oスレーブ・バッファなどの多くの機能に使用されます。ラージ・プールを構成すると、RMANがメモリー取得のために他のサブシステムと競合することを防止できます。
共有プールからの連続メモリーの割当ての要求は、通常は小さいサイズ(5KB未満)の要求です。ただし、大きいサイズの連続メモリーの割当てが要求されると、割当てが失敗するか、または要求された量の連続メモリーを解放するための大量のクリーンアップが必要となる場合があります。このメモリー要求は、共有プールでは満たせない場合がありますが、ラージ・プールでは満たすことができます。ラージ・プールには最低使用頻度(LRU)リストが存在しないため、ラージ・プールからの古いメモリーの削除は試行されません。
23.2.2 コピー・フェーズ
コピー・フェーズでは、チャネルによって、入力バッファから出力バッファにブロックがコピーされ、追加処理が実行されます。
たとえば、データがディスクから読み取られてテープにバックアップされる場合、データはディスク・バッファから出力テープ・バッファにコピーされます。
コピー・フェーズには、次の処理が含まれています。
-
検証
-
圧縮
-
暗号化
ブロックの検証を実行すると、ブロックが破損していないかどうかが確認されます。通常、この処理ではCPUに負荷はかかりません。
バイナリ圧縮を実行すると、RMANで、バックアップ・セット内のデータに圧縮アルゴリズムが適用されます。バイナリ圧縮は、CPUに負荷がかかる場合があります。RMANでバックアップに使用する圧縮アルゴリズムを選択できます。RMANの基本の圧縮レベルは、ほとんどのシナリオで圧縮率に優れています。Oracle Advanced Compressionオプションを有効にすると、圧縮率と必要なCPUリソースの間の妥協点として選択できる様々なレベルが示されます。
バックアップ暗号化を実行すると、V$RMAN_ENCRYPTION_ALGORITHMS
に表示されているアルゴリズムのいずれかを使用して、バックアップ・セットが暗号化されます。RMANには、透過モード、パスワード保護モードおよびデュアル・モードの3つの暗号化モードがある。バックアップの暗号化は、CPUに負荷がかかる場合があります。
23.2.3 システム・バックアップ・テープ(SBT)への書込みフェーズ
SBTへのバックアップ時、RMANは、メディア管理ソフトウェアにバイト・ストリームを渡し、このストリームに一意の名前を関連付けます。ストリームの格納方法および格納場所の詳細は、メディア・マネージャによって管理されます。したがって、テープへのバックアップでは、RMANとメディア・マネージャの両方が相互に作用します。
SBTへの書込みフェーズに影響を与える要因については、次の各項を参照してください。
23.2.3.1 SBTへの書込みフェーズにおけるRMANの構成要素
SBTへの書込みフェーズに影響するRMAN固有の要因は、ディスクの読取りに影響する要因と類似しています。いずれの場合も、バッファの割当て、スレーブ・プロセスおよび同期I/Oまたは非同期I/Oによってパフォーマンスが左右されます。
23.2.3.1.1 テープ・バッファの割当て
23.2.3.1.2 テープI/Oスレーブ
RMANは、I/Oスレーブが使用されているかどうかに応じて、システム・グローバル領域(SGA)またはプログラム・グローバル領域(PGA)にテープ・バッファを割り当てます。初期化パラメータBACKUP_TAPE_IO_SLAVES=true
を設定した場合、テープ・バッファはSGAから割り当てられます。テープ・デバイスにアクセスできるのは、一度に1つのプロセスだけです。そのため、テープ・デバイス数に対応する必要な数のスレーブが起動されます。LARGE_POOL_SIZE
初期化パラメータも設定されている場合は、ラージ・プールからバッファが割り当てられます。BACKUP_TAPE_IO_SLAVES=false
を設定した場合、バッファはPGAから割り当てられます。
I/Oスレーブを使用する場合、LARGE_POOL_SIZE
初期化パラメータを設定し、SGAメモリーをサイズの大きいメモリー割当ての保持専用に確保しておきます。このパラメータによって、SGAメモリーのためにRMANのI/Oバッファとライブラリ・キャッシュが競合することを防止できます。テープI/OのI/Oスレーブが要求されたものの、そのために十分な領域がSGAに存在しない場合、スレーブは使用されず、アラート・ログにメッセージが書き込まれます。
BACKUP_TAPE_IO_SLAVES
パラメータには、スレーブ・プロセスの数ではなく、RMANがスレーブ・プロセスを使用するかどうかを指定します。テープ・デバイスにアクセスできるのは、一度に1つのプロセスだけであり、RMANでは、テープ・デバイス数に対応する必要な数のスレーブが使用されます。
23.2.3.1.3 同期I/Oと非同期I/O
SBTチャネルによるデータの読取りまたはテープへの書込みでは、I/Oは常に同期です。テープI/Oでは、(手動または自動で)割当て済の各チャネルは1つのサーバー・プロセスに対応しています。ここでは、このプロセスをチャネル・プロセスと呼びます。
図23-5に、テープへのバックアップでの同期I/Oを示します。
次のステップが発生します。
-
チャネル・プロセスが、テープ・バッファにブロックを書き込みます。
-
チャネル・プロセスが、テープ・バッファを処理するメディア・マネージャ・コードを実行して、メディア・マネージャが追加の処理および格納を行えるように内部処理を行います。
-
メディア・マネージャ・コードが、書込みが完了したことを示すメッセージをサーバー・プロセスに戻します。
-
チャネル・プロセスが新しいタスクを開始できる状態になります。
図23-6に、テープへのバックアップでの非同期I/Oを示します。テープへの非同期I/Oは、テープ・スレーブを使用してシミュレートされます。この場合、各割当て済チャネルは1つのサーバー・プロセスに対応しています。この項の説明では、サーバー・プロセスをチャネル・プロセスと呼びます。各チャネル・プロセスに対して1つ(複数のコピーが存在する場合は複数)のテープ・スレーブが起動されます。
次のステップが発生します。
-
チャネル・プロセスが、テープ・バッファにブロックを書き込みます。
-
チャネル・プロセスが、テープ・バッファを処理するためのメッセージをテープ・スレーブ・プロセスに送信します。テープ・スレーブ・プロセスが、テープ・バッファを処理するメディア・マネージャ・コードを実行して、メディア・マネージャが処理を行えるように内部処理を行います。
-
テープ・スレーブ・プロセスが書込みを行っている間、チャネル・プロセスはデータファイルからデータを読み取り、追加の出力バッファを準備できます。
-
テープ・スレーブ・チャネルは、メディア・マネージャ・コードから戻されると、新しいテープ・バッファを要求します。通常、その時点で新しいバッファが使用可能になっています。このため、チャネル・プロセスの待機時間が減少し、バックアップ時間が短縮されます。
23.2.3.2 SBTへの書込みフェーズにおけるメディア・マネージャの構成要素
23.2.3.2.1 ネットワーク・スループット
リモートのテープ・デバイスの場合、メディア・マネージャは、ネットワーク経由でデータを転送する必要があります。
たとえば、Oracle Secure Backupの管理ドメインには、ネットワークで接続された複数のクライアント・ホスト、メディア・サーバーおよびテープ・デバイスが含まれていることがあります。あるホストにデータベースがあり、別のホストに出力用のテープ・ドライブが接続されている場合、Oracle Secure Backupがネットワーク経由のデータ転送を管理します。ネットワークのスループットが、バックアップのパフォーマンスの上限になります。
23.2.3.2.2 固有の転送レート
テープ固有の転送レートは、圧縮なしでテープに書き込む場合の速度です。この速度は、バックアップ・レートの上限を表します。
バックアップのパフォーマンスの上限は、すべてのテープ・デバイスの転送レートの集計となります。バックアップ操作がそのレートで実行されており、必要以上にCPUを使用していない場合、チューニングしてもRMANのパフォーマンスは変わりません。
23.2.3.2.3 テープの圧縮
テープの圧縮レベルは、バックアップのパフォーマンスに重大な影響を及ぼします。テープの圧縮レベルが高い場合、持続的なバックアップの転送レートは高くなります。
たとえば、圧縮比が2:1で、テープ・ドライブ固有の転送レートが6MB/秒である場合、バックアップ速度は12MB/秒になります。この場合、RMANは、12MB/秒より高速なスループットでディスクを読み取ることができる必要があり、そうでない場合はこのディスクはバックアップのボトルネックになります。
注意:
メディア・マネージャによるテープの圧縮機能とRMANによるバイナリ圧縮機能の両方を使用しないでください。メディア・マネージャによる圧縮が十分である場合は、こちらを使用することをお薦めします。RMANでのデータ圧縮によるCPUオーバーヘッドを許容できる場合は、RMANの圧縮バックアップ・セットを使用すると、圧縮していないバックアップ・セットをネットワークを介してメディア・マネージャに移動するときに使用される帯域幅を削減することができます。
23.2.3.2.4 テープ・ストリーム
書込み操作中のテープ・ストリームは、テープへのバックアップ・パフォーマンスに重大な影響を及ぼします。
多くのテープ・ドライブは、固定速度のストリーム・テープ・ドライブです。そのようなドライブはデータの書込み速度を変更できないため、テープへ書き込むデータがなくなると、テープを減速して停止する必要があります。通常、ドライブのバッファが空になっても、テープの移動が速すぎて書込み終了位置を越えてしまいます。そのためドライブで書込みを継続するには、書込みが終了した位置までテープを巻き戻す必要があります。複数の速度で動作するテープ・ドライブを利用すると、この問題を軽減できます。
23.2.4 ディスクへの書込みフェーズ
ディスクへの書込みフェーズに影響する主な要因は、バッファ・サイズです。
バックアップの出力がディスクに存在する場合、各チャネルは、1MBずつの出力バッファを4つ割り当てます。ディスク・チャネルが、ディスク・サブシステムにブロックを書き込みます。ファイルをリストアするときの読取りフェーズは、ファイルをバックアップするときの書込みフェーズと似ています。ただし、ブロックの動く向きは逆です。
ディスクから非同期の読取りが行われる場合は、ディスクへの書込みも非同期になります。ディスクへの書込み時には、ディスクからの読取り時と同様にディスクI/Oスレーブを利用できます。
RMANが、複数のディスクにストライプ化されたディスクベースの出力先にファイルをバックアップする場合は、複数のチャネルを割り当てることができます。チャネルの数は、出力先のストライプ化されたディスクの数に制限されます。ASMは、複数のディスクにストライプ化された出力先の一例です。
23.3 RMANのパフォーマンスの問題を診断するためのV$ビューの使用方法
通常、チューニング・プロセスを開始する場合は、V$
ビューを使用して、RMANのバックアップ操作およびリストア操作のどこで問題が発生しているかを特定します。
この項では、次の項目について説明します。
23.3.1 V$SESSION_LONGOPSによるRMANジョブの進捗状況の監視
V$SESSION_LONGOPS
ビューを問い合せると、バックアップ・ジョブおよびリストア・ジョブの進捗状況を監視できます。RMANは、V$SESSION_LONGOPS
で詳細行と集計行の2つのタイプの行を使用します。
詳細行には、1つのジョブ・ステップによって処理されているファイルの説明が表示され、集計行には、RMANコマンドのすべてのジョブ・ステップによって処理されたファイルの説明が表示されます。ジョブ・ステップとは、1つのバックアップ・セットまたはデータファイルのコピーの作成またはリストアです。詳細行は、バックアップ・ステップ中、バッファに対する読取りまたは書込みが行われるたびに更新されるため、更新の粒度は小さくなります。集計行は、各ジョブ・ステップの完了時に更新されるため、更新の粒度は大きくなります。
表23-3に、RMANに最も関連するV$SESSION_LONGOPS
の列を示します。通常、各バックアップ・セットの進捗状況を確認するには、集計行ではなく詳細行を表示します。
表23-3 RMANに関連するV$SESSION_LONGOPSの列
列 | 詳細行の説明 |
---|---|
|
RMANチャネルに対応するサーバー・セッションID |
|
サーバー・セッションのシリアル番号。この値はサーバー・セッションが再利用されるたびに変更されます。 |
|
行の説明テキスト。詳細行の例は、 注意: 集計行は、 |
|
バックアップ出力行では、この値は |
|
この列の内容は、行に表示される操作のタイプによって次のように異なります。
|
|
この列の内容は、行に表示される操作のタイプによって次のように異なります。
|
バックアップ・ジョブまたはリストア・ジョブを実行する各サーバー・セッションは、1つのジョブ・ステップで必要な処理の合計と比較して、進捗状況をレポートします。たとえば、2つのチャネルを使用してデータベースをリストアし、各チャネルが2つのバックアップ・セットをリストアする場合(合計4セットをリストアする場合)、各サーバー・セッションは、1つのバックアップ・セットにおける進捗状況をレポートします。あるセットのリストアが完了すると、RMANは、リストアする次のセットでの進捗状況のレポートを開始します。
RMANジョブの進捗状況の監視手順
長時間の作業の実行を頻繁に監視する場合、SQL*Plusを実行するホスト・オペレーティング・システムでシェル・スクリプトまたはバッチ・ファイルを作成して、この問合せを繰り返し実行できます。
23.3.2 V$BACKUP_SYNC_IOおよびV$BACKUP_ASYNC_IOによるボトルネックの特定
バックアップまたはリストアのボトルネックの原因を特定し、バックアップ・ジョブの詳細な進捗を確認するには、V$BACKUP_SYNC_IO
ビューおよびV$BACKUP_ASYNC_IO
ビューを使用できます。
バックアップを実行中のプロセス(一部のプラットフォームではスレッド)にI/Oが同期している場合は、V$BACKUP_SYNC_IO
に行が表示されます。I/Oが非同期の場合は、V$BACKUP_ASYNC_IO
に行が表示されます。非同期I/Oは、I/Oプロセスによって、または基礎となるオペレーティング・システムがサポートしている場合に実行されます。
データベース・インスタンスが停止するまで、バックアップ・ジョブまたはリストア・ジョブの結果はメモリーに残ります。このため、ジョブの完了後にビューを問い合せることができます。
I/Oが同期している場合に、テープがストリーム化されているかどうかを確認する手順
関連項目:
これらのビューの詳細は、『Oracle Databaseリファレンス』を参照してください。
23.3.2.1 同期I/Oのボトルネックの特定
V$BACKUP_SYNC_IO
ビューを問い合せて、同期I/Oのボトルネックを特定します。
同期I/Oでは、すべての同期I/Oがプロセスのボトルネックになるため、特定のボトルネックを識別することは困難です。同期I/Oをチューニングする唯一の方法は、I/Oレート(バイト/秒)をデバイスの最大スループット・レートと比較することです。I/Oレートが、デバイスで指定されているレートより低い場合、バックアップ・プロセスおよびリストア・プロセスのこの側面をチューニングすることを考慮します。
同期I/Oのレートを確認する手順
23.3.2.2 非同期I/Oのボトルネックの特定
V$BACKUP_ASYNC_IO
を問い合せて、非同期I/Oのボトルネックを特定します。
ロング・ウェイトは、バックアップ・プロセスまたはリストア・プロセスが、I/Oが完了するまで待機するようにオペレーティング・システムに通知した回数です。ショート・ウェイトは、バックアップ・プロセスまたはリストア・プロセスがオペレーティング・システム・コールを実行して、非ブロック化モードでI/Oの完了をポーリングした回数です。レディは、I/Oが使用可能な状態になっており、I/Oの完了をポーリングするためにオペレーティング・システム・コールを実行する必要がなかった回数です。
非同期I/Oのレートを確認する手順
注意:
同期I/Oの使用時にBACKUP_DISK_IO_SLAVES
を設定した場合、I/OはV$BACKUP_ASYNC_IO
に表示されます。
関連項目:
V$BACKUP_SYNC_IO
ビューおよびV$BACKUP_ASYNC_IO
ビューの詳細は、Oracle Databaseリファレンスを参照してください。
23.4 RMANのバックアップのパフォーマンスのチューニング
バックアップのパフォーマンスは、多くの要因に影響を受けます。多くの場合、低速なバックアップを改善するには、試行錯誤が伴います。
バックアップの最高のパフォーマンスを取得するには、次のステップに従います。
-
チャネル設定からのRATEパラメータの削除の説明に従って、チャネル設定の
RATE
パラメータを削除します。 -
ディスクで非同期I/Oをサポートしていない場合、非同期I/OをシミュレートするためのDBWR_IO_SLAVESの設定の説明に従って、
DBWR_IO_SLAVES
パラメータを設定します。 -
共有メモリー問題を解決するためのLARGE_POOL_SIZEの設定の説明に従って、
LARGE_POOL_SIZE
パラメータを設定します。 -
読取り、書込みおよびコピーのフェーズのチューニングの説明に従って、バックアップ・パフォーマンスに影響するボトルネックをなくします。
23.4.1 チャネル設定からのRATEパラメータの削除
チャネルのRATE
パラメータは、他のデータベース操作でより多くのディスク帯域幅を使用できるように、バックアップ・スループットを(増加ではなく)削減するためのパラメータです。バックアップがテープにストリーム配信されていない場合、RATE
パラメータを設定していないことを確認してください。
RATEパラメータを削除する手順
関連項目:
23.4.2 非同期I/OをシミュレートするためのDBWR_IO_SLAVESの設定
一部のオペレーティング・システムでは、固有の非同期I/Oをサポートしています。ご使用のディスクが非同期I/Oをサポートしない場合にのみ、DBWR_IO_SLAVES
を設定します。DBWR_IO_SLAVES
に0(ゼロ)以外の値を設定すると、バックアップおよびリストアに固定数のディスクI/Oスレーブが使用され、非同期I/Oがシミュレートされます。
ディスクI/Oスレーブを有効にする手順
関連項目:
23.4.3 共有メモリー問題を解決するためのLARGE_POOL_SIZEの設定
LARGE_POOL_SIZE
初期化パラメータは、メモリー不足のためにI/Oスレーブを起動できないというエラーがアラート・ログに書き込まれた場合に設定します。
アラート・ログ・メッセージは次のようになります。
ksfqxcre: failure to allocate shared memory means sync I/O will be used whenever async I/O to file not supported natively
ラージ・プールは、RMANおよびその他の用途に使用されるため、すべてのユーザーに対応できる合計サイズにする必要があります。このことは特に、DBWR_IO_SLAVES
が設定されており、DBWRプロセスにバッファが必要な場合に該当します。
ラージ・プールのサイズを設定する手順
関連項目:
-
ラージ・プールの詳細は、Oracle Database概要を参照してください
-
初期化パラメータの詳細は、Oracle Databaseリファレンスを参照してください。
23.4.4 読取り、書込みおよびコピーのフェーズのチューニング
いくつかのタスクを実行して、バックアップのパフォーマンスに影響を及ぼすボトルネックを特定および解消できます。
これには、次の作業が含まれます。
23.4.4.1 バックアップの検証を使用した読取りと書込みのボトルネックの識別
任意のバックアップ・ジョブで出力デバイスまたは入力ディスクI/Oのどちらがボトルネックになっているかを確実に確認する方法の1つは、あるバックアップ・タスクの実行時間と、同じタスクのBACKUP VALIDATE
の実行時間を比較することです。バックアップのBACKUP VALIDATE
は、実際のバックアップと同じディスク読取りを実行しますが、出力デバイスに対するI/Oは実行しません。
バックアップ時間と検証時間を比較する手順
23.4.4.2 読取りフェーズのチューニング
読取りフェーズをチューニングすると、RMANのパフォーマンスの改善に役立ちます。
RMANでは、出力デバイスの占有を継続するのに十分な速度で出力デバイスにデータ・ブロックを送信できないことがあります。たとえば、RMANは、増分バックアップ中、同じ計画の一環として以前にデータファイルをバックアップした後に変更されたブロックのみをバックアップします。ブロック・チェンジ・トラッキングを有効にしない場合、RMANは、変更されたブロックを検出するためにデータファイル全体をスキャンし、変更されたブロックを検出しながら出力バッファを一杯にする必要があります。変更されたブロックがほとんどなく、SBTバックアップを行っている場合、RMANは、テープ・ドライブへのストリームを継続するのに十分な速度で出力バッファを一杯にできないことがあります。
同時に読み取られ、RMANの同じバックアップ・ピースに書き込まれる入力ファイルの数を表す多重化レベルを調整すると、バックアップのパフォーマンスを向上させることができます。多重化のレベルは、チャネル上のMAXOPENFILES
設定および各バックアップ・セット内の入力ファイル数の最小値です。次の表に、多重化のレベルを調整するときの推奨事項を示します。
表23-4 多重化のレベルの調整
ASM | ストライプ化されたディスク | 推奨 |
---|---|---|
なし |
はい |
多重化のレベルを上げます。 このようにして、RMANがテープ・バッファを一杯にする速度を上げ、ストリームを継続するのに十分な速度でバッファがメディア・マネージャに送信される確率を高くします。 |
なし |
なし |
チャネル上の |
はい |
該当なし |
チャネルの |
関連項目:
-
MAXOPENFILES
およびFILESPERSET
の設定が多重化のレベルにどのような影響を与えるかについては、「多重RMANバックアップ・セットについて」を参照してください -
概要については、「RMANの増分バックアップについて」を参照してください
23.4.4.3 コピーおよび書込みのフェーズのチューニング
読取りフェーズのパフォーマンスが良好な場合、ボトルネックとなっている可能性が高いのは、コピー・フェーズまたは書込みフェーズです。特に、RMANが、ストリームをサポートするのに十分な速度でテープ・ドライブにデータ・ブロックを送信しているときにテープがストリーム化されていない場合は、SBTへの書込みフェーズがボトルネックです。
表23-5 コピーおよび書込みパフォーマンスを向上させる方法
方法 | 説明 | 追加情報 |
---|---|---|
バックアップが全体バックアップの場合、増分バックアップの使用を検討します |
増分レベル1のバックアップでは、変更されたブロックのみがデータファイルからテープに書き込まれるため、テープへの書込みに関するボトルネックは、バックアップ計画全体にはあまり影響を及ぼしません。特に、バックアップするデータベースのノードにテープ・ドライブがローカルに接続されていない場合、増分バックアップはより高速になる場合があります。 |
|
バックアップで基本の圧縮アルゴリズムが使用されている場合は、Oracle Advanced Compressionオプションの使用を検討します |
|
|
データベースのホストが複数のCPUを使用し、バックアップではバイナリ圧縮が使用されている場合は、チャネルの数を増やします |
|
|
バックアップが暗号化されている場合は、暗号化アルゴリズムを |
|
「バックアップ暗号化アルゴリズムの構成」 |
(テープ・バックアップのみ) テープI/Oバッファのサイズを調整します |
サイズを設定するには、 |
|
(テープ・バックアップのみ) メディア管理ソフトウェアの設定を調整します |
テープ・ブロック・サイズなどの一部のメディア・マネージャ設定は、バックアップのパフォーマンスに影響する場合があります。 |
|
RMANがASMにファイルをバックアップしている場合は、チャネルの数を増やします |
たとえば、RMANが、16個の物理ディスクを含む1つのディスク・グループにデータベースをバックアップしている場合は、ディスク・チャネルの数を4から16の範囲で割り当てるか構成します。 |