テスト・チューニング工程が完了すると本番切り替えとなり、新本番環境での運用が始まります。日を追うごとに、データ量が増加して新しい索引を作成しなければならない、セキュリティ要件に合わせて個別パッチを適用しなければならないといった、さまざまなメンテナンス作業が発生します。
データベースに対する変更作業後はSQLの挙動が変化する可能性があります。全てのSQLでテストを実施したいところですが、やはり工数の問題などから、なかなか難しいでしょう(図8)。
そのような場合は新本番環境と同じバージョンの検証環境で、メンテナンス作業とSPAを実施するユースケース3の方法が有効です(図9)。
新本番環境で取得したSTSを検証環境に配置後、まずTest Executeを実行します。新本番環境で実施予定のメンテナンス作業(個別パッチ適用や索引作成など)を行った後に、再度Test Executeを実行します。これによりメンテナンス作業前後で、Test Executeの結果を得ることができました。2つの結果を比較することで性能値を含めた評価が可能です。
個別パッチ適用や索引作成だけではなく、統計情報のリフレッシュやパラメータの変更、新機能の導入など活用シーンが広がります。その度に高精度なテストを迅速に実行できることは大きな強みです。
SQLのパフォーマンスはデータの「入り方」によっても左右されます。例えば、断片化が進んだデータへのアクセスでは、I/O効率が悪くなり、パフォーマンス劣化の可能性があります。つまりSPA利用時には、検証環境やテスト環境へどのようにデータを移行するのか、これも重要です。
データの移行では、「論理バックアップ」「物理バックアップ」という2種類の方法を利用できます(表1)。どちらの方法を選ぶべきか、バックアップに要する時間やデータベースの停止を伴うかなど、重要な比較要素があります。今回はSQLのパフォーマンスに関係する「断片化の解消」に重点を置いて、比較しました。
種類 | 代表的なツール | 方式 | 断片化の解消 |
---|---|---|---|
論理バックアップ | Data Pump Export/Import | データをファイルに出力する | 可 |
物理バックアップ | Recovery Manager(RMAN) | データベースを構成するファイルをコピーする | 不可 |
表1 データを移行する種類と特徴 |
先ほど紹介したユースケース1でテスト環境にデータを移行する場合は、新本番環境でのデータ移行方式と同じ方法を選択することになるでしょう(新本番環境でData Pump Export/Importを利用する予定であれば、テスト環境でも同じ手法を用いるなど)。
これに対してユースケース3では、検証環境に本番環境と全く同じ状態を再現しなければならないため、物理バックアップを選択します。さらにSTS取得開始時点に極力近い状態が好ましいため、データベースのPoint-in-Timeリカバリ(DBPITR)を利用することもあるでしょう。
Recovery Manager(RMAN)はOracle Databaseの標準機能であるため手軽に利用できます。しかし、物理的なファイルコピーを実行するため、コピー時間やディスク容量が必要です。本番環境のデータを迅速に用意したい、任意の時点で簡単に切り出したい、少ないディスク使用量で多数の検証環境が欲しいといったニーズがあると、RMANでは対応しきれないことがあります。
こうした場合、例えばDelphix(開発元:Delphix)という製品を使えば、任意時点で本番環境のデータを複数のテスト環境へ瞬時に生成して利用できます(図10)。データ生成時にファイルコピー技術を利用せず、スナップショットと呼ばれるポインタ技術を用いるため、瞬時に実行できます。さらに物理的なストレージリソースを大幅に節約可能です。
データの「入り方」として、指定した時点の本番環境の状態を再現できることがテストに役立ちます。GUI画面をスクロールして直感的に日時を指定できる他、複数バージョンのOracle Databaseを並べてバージョン間比較も可能です。バージョンアップ時や運用時、データ準備に臆することなく即座に行動を開始できます。このようなツールが選択肢にあると、コストや時間、精度のどれに重きを置くのか、管理の幅が広がります。
全6回にわたりRATの機能「SPA」を詳細に紹介しました(連載目次)。SPAを利用すると、コスト、時間、精度にメリットが生まれ、データベース運用時の安心感が高くなります(図11)。
テスト時間が短縮されるだけではなく、問題のあるSQLを自動で発見して優先順位を付けたり、カラーリングしたりしてレポートを出力できるため、改修担当者への作業依頼、改修作業ともに効率的になります。
今回の連載では操作手順を分かりやすく伝えるためにEnterprise Managerの画面を使って紹介しました。実際には全ての操作をコマンドから実行可能です。コマンドであれば「実行計画が変わったSQLのみ」や「性能が変化したSQLのみ」といった絞り込みを指定してレポートに出力するなど、細かなパラメータ設定が可能です(図12)。
それでは、全6回にわたりご愛読いただきありがとうございました。皆さまがデータベースのバージョンアップを検討する際に、本連載の内容が少しでもお役に立てば幸いです。
株式会社アシスト所属 入社以来、Oracle Database一筋。2017年現在はOracle Databaseのお役立ち機能を分かりやすく、楽しく伝えることを目標に活動中。アシスト データベース無料セミナーなどの講師も務める。10代の頃の夢は動画クリエーター。当時の知識を生かし、機能解説動画を自作することもある。好きなOracleオプションはReal Application Testing。好きな食べ物はギョーザ。
Copyright © ITmedia, Inc. All Rights Reserved.