第8回:Oracleバックアップの速度改善(Oracle Recovery Manager 編)

技術者向け・データベースの技術情報発信
はじめに
皆様、こんにちは。マルチDBソリューション部の望月です。
ITの普及により、取引情報や顧客情報、売上げ情報他、あらゆるデータは業務を遂行する上で必要不可欠なものとなっています。その必要不可欠なものを保存する技術、そうバックアップ。
企業活動を継続するためには欠かせないバックアップですが、24時間/365日止まらないようなシステムでは、そのバックアップ取得のための時間さえもシビアになってきます。
今回は Oracle Recovery Manager(以下RMAN)のチューニングで実現することが出来たバックアップ速度改善についてお話します。
発生した事象
とある現場で、RMANバックアップに関する以下内容の相談を頂きました。
※検証機と本番機のサーバスペックは同等。
そこで、相談を受けた私がRMANバックアップのチューニングに着手致しました。
ポイントは2つ!ファイルサイズとパラレル数!
RMANのデフォルト設定では、生成されるバックアップファイルを、出来る限り最大のサイズで指定したディレクトリに作成しようとします。
図1では1つのプロセスが、バックアップセットの大きなファイルをディスクに書き込もうとしています。
【図1】 1プロセスでの実行イメージ
一方の図2では5つのプロセスが小さなファイルを同時に書き込んでいます。
【図2】 5プロセスでの実行イメージ
私の実施した検証では、パラレス数とファイルサイズを以下の通りチューニングすることで、バックアップ時間を大きく短縮することができました。(※検証機にて確認)
設定 | ファイルサイズ | パラレル数 | 処理時間 |
---|---|---|---|
デフォルト | UNLIMITED | 1 | 20分 |
設定1 | UNLIMITED | 9 | 13分 |
設定2 | 300MB | 9 | 9分 |
設定3 | 500MB | 9 | 7分 |
設定4 | 700MB | 9 | 7分 |
設定5 | 700MB | 15 | 5分 |
上記の結果から、検証機での確認ではあるものの、20分⇒5分の短縮に成功しました!!
本番機でも、同様の観点でチューニングを行い、大幅に短縮できました。
設定の確認と設定方法
RMAN > show all ;
db_unique_name ****のデータベースにおけるRMAN構成パラメータ :
~ 中略 ~
・・・・・・・・・・・・・・・・・・・・・・・・・・・
CONFIRURE DEVICE TYPE DISK BACKUP TYPE TO COPY PARALLELISM 1; ※1
CONFIRURE MAXSETSIZE TO UNLIMITED ; ※2
・・・・・・・・・・・・・・・・・・・・・・・・・・
~ 中略 ~
RMAN >
※1 書き込み対象DISKに対してパラレル1を設定する。
※2 バックアップセットの1ファイル最大サイズ。
実際に設定してみましょう。
RMAN >
RMAN >
RMAN > CONFIRURE DEVICE TYPE DISK BACKUP TYPE TO COPY PARALLELISM 5;
RMAN > CONFIRURE MAXSETSIZE TO 500M ;
RMAN >
RMANのコマンドで、パラレル数5最大サイズ500MBに設定されました。
適切な設定値について
では、どのくらいのパラレル数と最大ファイルサイズが最適なのでしょうか?
パラレル数は検証で20、30まで設定してみましたが処理速度に変化はありませんでした。推測にはなりますがCPUやメモリなどのリソースが分散されてしまい、パフォーマンスの向上につながらなかったものと思われます。
一方の最大サイズの設定値ですが、あまり低い数値を設定してしまうとディスクI/Oやファイル書き込みのオーバーヘッドの懸念が発生するため過度に低い数値の設定はお勧めできません。
あくまでも個人的な検証での感覚ですが、パラレル数5~10、ファイルサイズは500MB~1000MBからチューニングしてみてはいかがでしょうか。
最後に
最適なパラレス数とファイルサイズは、データベースの全体サイズや搭載CPU・メモリなどのH/W構成により異なります。パラメータを変更しテストした上で最適な値を設定して下さい。
なお、今回ご紹介した内容は、改善案のほんの一例です。お客様の環境に応じて、今回ご紹介した以外のRMAN設定や、RMAN以外でのバックアップソリューションを含めて、弊社から様々な提案をすることが可能です。
もし、何かお悩みのことがあれば、ぜひ弊社までお気軽にご相談下さい。