Recovery Managerのチューニング・ポイント集:Oracleバックアップ/リカバリ講座(10)(4/4 ページ)
本記事では、Oracleデータベースのバックアップ/リストア/リカバリについて、そのアーキテクチャ、代表的なバックアップ手法、論理/物理バックアップ、RMANといった全般的な内容を解説していく。(編集部)
RMANでのバックアップにおけるチューニング・ポイント
バックアップ処理では、第9回で説明したようにハードウェアの増強など時間短縮できるバックアップ方法を選択することが一番効果的な方法です。しかしRMANでのバックアップを考えた場合、CPUやメモリなど実行するシステム環境のリソースに余裕があれば、RMANのパフォーマンスをさらに向上できる要素があります。それぞれの具体的なポイントについて説明するに当たり、まずRMANでのバックアップ処理の流れについて見ておきましょう。
図2から確認できるように、RMANでのバックアップ処理は大きく3つのステップに分けられます。通常RMANによるバックアップが遅いという場合は、メモリ上で行われている(2)の処理よりも、メモリより低速なディスクやテープといったデバイスで行われている(1)や(3)の処理がボトルネックになる可能性が高くなります。そのため、前述したパフォーマンスの妥当性の判断では、上記の(1)や(3)の処理のボトルネックを確認することで、問題点の特定や対処を効率的に行うことができます。
図2の(1)や(3)の処理におけるチューニングポイントとしては、以下のような点を挙げることができます。
- 初期化パラメータの調整
- チャネル数(並列性)の調整
- バックアップ・セットの多重化
これ以降では、それぞれの具体的なチューニング方法について説明していきます。
データベースの初期化パラメータの調整
データベースからデータを読み取る部分でのパフォーマンス向上の方法として、そのデータベースの初期化パラメータを調整することがあります。バックアップの対象となるターゲットのデータベースが非同期I/O、同期I/Oのどちらを使用しているかによって、初期化パラメータの設定方法が異なります。
非同期I/O環境での初期化パラメータ設定値
OSが非同期I/Oをサポートしている場合には、非同期I/Oに関する以下の初期化パラメータの設定を検討します。これにより、I/Oスレーブ・プロセスによるテープデバイスへの書き込み処理を非同期に実行することができ、処理パフォーマンスが向上する可能性があります。
- BACKUP_TAPE_IO_SLAVES=TRUE
- DISK_ASYNCH_IO=TRUE注1
- TAPE_ASYNCH_IO=TRUE注1
注1 この初期化パラメータはデフォルトにて「TRUE」となっています。
また、チャネルはPGAのメモリ領域を使用していますので、初期化パラメータ「PGA_AGGREGATE_TARGET」の設定値もパフォーマンスに影響します。
同期I/O環境での初期化パラメータ設定値
OSが非同期I/Oをサポートしていない場合、バックアップ先がテープデバイスであれば、「BACKUP_TAPE_IO_SLAVES=TRUE」に設定することで、RMANがテープへの処理にI/Oサーバ・プロセスを使用できるようになります。
また、複数のチャネルで処理(詳細は後述します)を行うためにチャネルはラージプール(ラージプールが設定されていない場合は共有プール)を使用するため、「PGA_AGGREGATE_TARGET」に加えて「DBWR_IO_SLAVES」「LARGE_POOL_SIZE」の調整が必要になります。
以下にそれぞれの初期化パラメータの一般的な見積もり方法を記述します。
- DBWR_IO_SLAVES
「0」以上の値を設定すると、バックアップ用にディスクI/Oスレーブが使用されることにより、非同期I/Oがシミュレートされます。 - LARGE_POOL_SIZE
既存の処理で使用している値に、次の式で算出される値を追加します。
バックアップ時に使用するチャネル数×(16Mbytes+(4×書き込みバッファサイズ))
書き込みバッファサイズについては、テープチャネルを使用している場合には256Kbytesが規定値となりますが、この値を変更することにより、さらにバックアップの処理が向上する場合もあります。変更方法や推奨値については、バックアップソフトから提供されているマニュアルなどを確認してください。
チャネルのチューニング
チャネルを並列化させる
先ほどの図2のように、RMANではバックアップの処理を行うのはチャネルになります。このため、チャネルを複数起動し、処理を並列実行することでパフォーマンスを向上できます。
ただし、複数のチャネルの効果を発揮するためには、CPUやメモリといったリソースに余裕があり、バックアップ先のデバイスの性能(ディスクI/Oや複数のテープドライブ構成など)も十分である必要がありますので、システム構成を十分考慮して並列度を決定する必要があります。
チャネルを複数使用するにはCONFIGUREコマンドで事前に設定する方法と、バックアップの都度、ALLOCATE CHANNELコマンドで必要なチャネルを生成する方法があります。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
複数のチャネル間でバックアップファイルへの書き込みが競合しないように、保存先がディスクデバイスの場合はディスク数(RAID化されているときはストライプ数)、テープデバイスの場合はドライブ数を目安にチャネル数を設定するとよいでしょう。
【TOPIC】
空のデータファイルのバックアップについて
RMANでは、データが入っていない空のデータファイルについても読み込みが行われます。このため、実際のデータ量は少なくても、大きなデータファイルや、数多くのデータファイルが作成されている環境では、バックアップに時間がかかってしまいます。
バックアップ/リストアの性能テストであれば、実際に想定されるサイズで行うことが望ましいのですが、事前の機能確認や、バックアップスクリプトのテストフェイズであれば、各データファイルの空きサイズを小さくすることで、テストに必要な時間を節約することができます。
バックアップ・セットの多重化
1つのチャネルで一度に複数のファイルをバックアップする
図2のようにチャネルは、バックアップ時に複数のファイルを一度にオープンして、1つのバックアップ・セットを作成しています。同時にオープンするファイル数は、BACKUPコマンド時に指定する「filesperset」オプションで調整することも可能です。ファイルの読み込み量に対して書き込み量が少ない(例えば、ブロック・チェンジ・トラッキング機能を使用しない増分バックアップなど)環境では、多重度を上げることにより読み取りのパフォーマンスが向上し、バックアップ時間を短縮できます。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
ただし、このオプションを指定する場合は以下の3つの注意点があります。
- 多重化の指定はバックアップ方法がバックアップ・セットのみ有効です(イメージ・コピーでは多重化不可)。
- RMANではバックアップをバックアップ・セット単位で行っているため、何らかの原因でバックアップが失敗した場合、処理が完了していないバックアップ・セットについては再取得が必要になります。よって、多重度が高いと低い場合に比べて再取得の時間が増加することがあります。
- バックアップをリストアする場合もRMANではバックアップ・セット単位でリストアを行います。バックアップ・セット内の1つのデータファイルだけリストアしたいような場合は、多重度が低い場合と比べてリストアに時間を要します。
次回からは、リカバリ方法について説明します。
- ノーアーカイブログモードでのリストア・リカバリ
- Recovery Managerによるリストア・リカバリの方法
- OSコマンドを使用したリストア・リカバリの方法
- Recovery Managerのチューニング・ポイント集
- バックアップの所要時間を短縮するテクニック
- これだけでRecovery Managerは完全マスター
- 物理バックアップの失敗を根絶するノウハウ
- OSコマンドによる物理バックアップの全手順
- Data Pumpを使った論理バックアップの実践
- Recovery Managerを使ったバックアップ方法
- Oracleの代表的なバックアップ方法
- アーキテクチャから理解するOracleリカバリ
- プロとしてのバックアップ/リカバリ基礎知識
Copyright © ITmedia, Inc. All Rights Reserved.