自動化はOracle Databaseならではの強み
Oracle Databaseには初期リリースであるV2から12cまで35年を超える歴史がありますが、RDBMSとしての基本的な機能は8iや9iの時点でほぼ実装を終えています。10g以降のリリースでは、運用管理コストを削減したり、作業の効率性を高めるといった顧客の課題解決を第一に考えた新機能が目立つようになってきました。
その中でも、Oracle Databaseならではの強みと言えるのが「自動化」に関する機能です。手動でコマンドを発行したり、スクリプトやプログラムとして作り込みが必要だった部分を自動化することで、運用フェーズのコストを大きく削減することができます。Oracle Database 11gR2(以下、11gR2)までに実装されている代表的な自動化の機能は以下のとおりです。
機能名 | 概要 |
自動メモリー管理 | システム・グローバル領域(SGA)とプログラム・グローバル領域(PGA)をまとめて自動的に調整する機能。 |
自動共有メモリー管理 | システム・グローバル領域(SGA)とプログラム・グローバル領域(PGA)をそれぞれ自動的に調整する機能。Linux環境でHugePagesを使用している場合、自動メモリー管理ではなく必ずこちらを使用する。 |
自動化メンテナンス・タスク | 一定の間隔でデータベースのメンテナンス操作を自動的に実行する機能。自動オプティマイザ統計収集などが含まれる。 |
自動ストレージ管理 (ASM) | データのストライピング、ミラーリング、リバランシングを自動的に行うボリューム・マネージャ。Real Application Clusters(RAC)環境を中心に多く採用されている。 |
自動ワークロード・リポジトリ (AWR) | データベースのパフォーマンス統計やセッション・アクティビティの履歴などを自動的に収集/保存する機能。トラブル・シューティングにおいて効果を発揮し、Enterprise Managerを使用してWebブラウザからも情報を参照できる。 |
自動データベース診断モニター (ADDM) | AWRで収集した情報をもとに、パフォーマンス問題の分析と推奨事項の提示を自動的に行う機能。潜在的な問題を早期に検出できる。 |
自動SQLチューニング | AWRで収集した情報をもとに、CPU時間やI/O回数の値が大きいSQLを自動的にチューニングする機能。Oracle Database 11.2.0.2以降ではチューニングのレポートも作成できる。 |
ここでは代表的な機能だけを取り上げましたが、「自動」と名のつくものだけでも相当な数があります。パフォーマンスの改善や問題解決に直結するような機能がほとんどで、もはやOracle Databaseを運用する上で欠かせない存在になっています。他のRDBMSと比べてOracle Databaseが優れている点の1つと言えるでしょう。
このように、今や当たり前となっている自動化の機能ですが、必ずしもリリース直後から積極的に採用されてきたわけではありません。例えば10gで自動共有メモリー管理が実装された当初は、「悪い方向に自動調整されないか心配」「新機能で実績が少ない」といった理由で敬遠されることもありました。運用実績が増えてからはこうしたネガティブな意見はあまり聞かなくなりましたが、手動でのメモリー管理をそのまま使い続けているというケースも存在します。
また、仕様がどの程度明らかにされているかも重要で、あまりにもブラック・ボックスの部分が多すぎると安心して利用することができません。最近ではマニュアルやナレッジ・ベースの情報が充実していますが、性能など実際に検証してみないと分からない部分もあります。自動化が便利な機能であることは間違いありませんが、いわゆる「枯れた」機能になるためには実績とナレッジの充実が不可欠であると言えます。そこで今回は、12cの新機能であるILM(情報ライフサイクル管理)の自動化について、実際の検証結果を交えながら内部動作を詳しく紹介していきます。