ヘッダーをスキップ
Oracle® Database VLDBおよびパーティショニング・ガイド
11g リリース2 (11.2)
B56316-03
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

5 情報ライフサイクル管理のためのパーティション化の使用

この章では、情報ライフサイクル管理(ILM)戦略を構築してデータを管理および維持できるOracle Databaseのコンポーネントについて説明します。

ほとんどの組織で、保管データは最も貴重な企業資産の1つであると考えられてきましたが、データの管理方法やメンテナンス方法は企業によって大きく異なっていました。本来、データの使用目的は、経営目標の達成を支援し、事業を経営し、また将来の方向性を特定し、企業を成功に導くことにありました。

ただし、新しい政府規制とガイドラインが、データ保持の方法や理由において大きな促進力となっています。規制のために、組織は非常に長い期間にわたって情報を保持して管理する必要が生じています。したがって、今や情報テクノロジ(IT)管理者が達成しようとする目標は2つになりました。最低限のコストで大量のデータを格納することと、データの保存と保護について新しい規制要件を満たすことです。

この章では次の項について説明します。

ILMとは

現在、情報の形式は、電子メール・メッセージから、写真、オンライン・トランザクション処理(OLTP)システムの注文まで多岐にわたります。データの種類と使用方法がわかれば、データの発展方法や最終的な状態を理解したことになります。

各組織が直面する1つの目標は、データに適用されるようになった規則や規制を守る一方で、自らのデータがどのように発展および増大するかを理解し、使用方法が時間につれて変化する様子を監視し、保管すべき期間を決定することです。情報ライフサイクル管理(ILM)は、プロセス、ポリシー、ソフトウェアおよびハードウェアを組み合せて、これらの課題に取り組み、データのライフサイクルの各ステージで適切な技術を使用できるようにします。

この項の内容は次のとおりです。

Oracle DatabaseとILM

Oracle Databaseでは、次の機能が提供されるため、ILMソリューションを実装するプラットフォームとして理想的です。

  • アプリケーションの透過性

    アプリケーションの透過性はILMでは大変重要です。アプリケーションをカスタマイズする必要がないことを意味し、様々な変更をデータに加えてもデータを使用するアプリケーションに影響を及ぼさないためです。データをライフサイクルの別のステージに簡単に移動することができ、データベースでのデータ・アクセスを最適化することができます。もう1つの大きな利点は、アプリケーションの透過性により、新たな規制要件に迅速に対応するために必要な柔軟性が得られることです。この場合も、既存のアプリケーションが影響を受けません。

  • ファイングレイン・データ

    Oracleでは、データを非常に細かいレベルや関連グループごとに表示することができます。これに対して、ストレージ・デバイスではバイトやブロックが表示されるだけです。

  • 低コスト・ストレージ

    保管するデータが非常に多い場合、低コスト・ストレージの使用が、ILMを実装する際の重要な要素になります。Oracleは多様なストレージ・デバイスを利用できるため、最小限のコストで最大限の容量のデータを保持できます。

  • 強制可能なコンプライアンス・ポリシー

    コンプライアンスの理由で情報を保存する場合は、規則に従ってデータを保管および管理していることを取締機関に示すことが不可欠です。Oracle Databaseでは、セキュリティ・ポリシーと監査ポリシーを定義し、データのすべてのアクセスに対して施行して、アクセスを記録することができます。

Oracle Databaseでのデータ型の管理

I情報ライフサイクル管理は、組織のすべてのデータに関連します。これには、OLTPシステムでの注文やデータ・ウェアハウスでの売上履歴など、構造化されたデータの他に、電子メール、ドキュメント、イメージなど、構造化されていないデータも含まれます。

Oracle Databaseでは、BLOBおよびOracle Fast Filesによって非構造化データがサポートされますが、Enterprise Editionを使用すると、優れたドキュメント管理システムがOracle Content Databaseで提供されます。これはロールベースのセキュリティを含み、許可されたユーザーと、コンテンツの存続期間に何が起きるかを指定するポリシーだけがコンテンツにアクセスすることを保証します。

組織のすべての情報がOracleデータベースに含まれる場合は、データベースで提供される機能を利用して、存続期間の経過に伴う展開に応じてデータを管理および移動できます。複数の種類のデータ・ストアを管理する必要はありません。

規制の要件

現在、多くの組織は、特定のデータを特定の期間にわたって保管する必要があります。このような規制に従わない組織は、非常に重い罰金を支払うことになります。世界中のさまざまな規制要件(米国のSarbanes-Oxley、HIPAA、DOD5015.2-STD、欧州連合の欧州データ保護指令(European Data Privacy Directive)など)により、組織のデータ管理方法が変化しています。このような規制によって、保管する必要があるデータ、データを変更できるかどうか、保管する必要がある期間(30年以上に及ぶ可能性もある)が定められます。

これらの規制によって頻繁に要求されるのは、未許可のアクセスや変更から電子データを保護することと、データに対する変更や変更者の監査証跡を保持することです。Oracle Databaseでは、アプリケーションのパフォーマンスに影響せずに大容量のデータを保存できます。また、アクセスの制限や未許可のデータ変更の防止に必要な機能も含み、Oracle Database VaultやOracle Audit Vaultを使用して拡張することができます。Oracle Databaseでは暗号化機能も提供され、これにより、高度な権限を持つユーザーが意図的にデータを変更したのではないことを示すことができます。フラッシュバック・データ・アーカイブでは、存続期間における行のすべてのバージョンを表示できます。

Oracle Databaseを使用したILMの実装

Oracle Databaseを使用した情報ライフサイクル管理ソリューションの構築は、きわめて単純です。次の4つの手順を実行すれば完了します。ただし、ILMをコンプライアンスのために実装するのでない場合、手順4はオプションです。

手順1: データ・クラスの定義

情報ライフサイクル管理を有効に利用するには、まず最初に、組織のすべてのデータを調べて次の事柄を判別します。

  • 重要なデータは何か、どこに格納されているか、保管する必要があるデータは何か

  • そのデータの組織でのフロー

  • 時間経過につれてそのデータがどのように扱われるか、そのデータはまだ必要か

  • データ可用性の程度と必要な保護

  • 法的および業務上の要件に対応するデータ保存

データの使用方法を理解すれば、それに基づいてデータを分類できます。最も一般的なタイプの分類は、経過時間つまり日付によるものですが、製品やプライバシなどその他のタイプの分類も可能です。プライバシと経過時間など、混合型の分類を使用することもできます。

データ・クラスの処理方法を変えるには、データを物理的に分ける必要があります。情報が作成されると最初のうちはよくアクセスされますが、時間が経過するとほとんど参照されなくなることがあります。たとえば、顧客が注文を行うと、ステータスや注文品が発送されたかどうかを確認するために定期的に注文を表示します。注文品が届いた後は、おそらくその注文を参照することはありません。この注文も、注文されている品物を確認するために実行する定期レポートに含まれます。ただし、時間がたつとどのレポートにも含まれなくなり、将来的に参照されるのは、そのデータに関する詳しい分析が行われる場合のみになります。たとえば、注文を財務四半期Q1、Q2、Q3およびQ4に分け、さらに履歴注文として分類することができます。

この方法を使用する利点は、データがクラス(この例では注文日付)ごとに行レベルでグループ化されることです。Q2の注文は別のクラスに存在するため、Q1のすべての注文を自己完結した単位として管理できます。これはパーティション化の使用によって実現できます。パーティションはアプリケーションに対して完全に透過的であるため、データを物理的に分離しても、アプリケーションはすべての注文を見つけることができます。

パーティション化

パーティション化では、データ値に基づいてデータを物理的に配置します。日付によってデータをパーティション化する方法がよく使用されます。図5-1に示すシナリオでは、Q1、Q2、Q3およびQ4の注文を個別のパーティションに格納し、前年までの注文を他のパーティションに格納します。

図5-1 データ・クラスのパーティションへの割当て

図5-1の説明が続きます
「図5-1 データ・クラスのパーティションへの割当て」の説明

Oracleではいくつかのパーティション化方法が提供されます。レンジ・パーティション化は、ILMのためによく使用されるパーティション化方法の1つです。時間隔パーティション化および参照パーティション化も、ILM環境での使用に特に適しています。

データのパーティション化には様々な利点があります。パーティション化により、データを使用方法に応じて適切なストレージ・デバイスに簡単に分散すると同時に、データをオンラインに保ち、最もコスト効果の高いデバイスに格納できるようになります。パーティション化はデータにアクセスするすべてのユーザーにとって完全に透過的であるため、アプリケーションの変更が必要ありません。このため、いつでもパーティション化を実装できます。新しいパーティションが必要なときには、ADD PARTITION句を使用して追加するだけです。あるは、時間隔パーティションを使用している場合には、パーティションが自動的に作成されます。

その他の利点に加えて、各パーティションが独自のローカル索引を持つことが可能です。オプティマイザがパーティション・プルーニングを使用すると、問合せは、すべてのパーティションではなく関連するパーティションのみにアクセスするため、問合せのレスポンス時間が短縮されます。

データのライフサイクル

データを分析すると、多くの場合、当初はアクセスや更新が非常に頻繁に行われることがわかります。データが古くなるにつれて、アクセス頻度は減少し、あるとしてもごく少数になります。図5-2に示すように、ほとんどの組織では、多くのユーザーが現行データにアクセスするが、それよりも古いデータにアクセスするユーザーはほとんどいないという状況が見られます。データは、アクティブ、非アクティブ、履歴、アーカイブ可能のいずれかとみなすことができます。

非常に多くのデータを保持するときは、その存続期間において物理的に場所を移す必要があります。データがライフサイクルのどの時点にあるかによって異なりますが、最も適切なストレージ・デバイスに格納する必要があります。

図5-2 時間経過に伴うデータ使用状況

図5-2の説明が続きます
「図5-2 時間経過に伴うデータ使用状況」の説明

手順2: データ・クラスに対応したストレージ層の作成

Oracle Databaseは様々な格納オプションを利用できるため、次の手順で必要なストレージ層を設定します。必要に応じていくつでもストレージ層を作成できますが、最初は次のストレージ層をお薦めします。

  • 高パフォーマンス

    高パフォーマンス・ストレージ層には、Q1の注文を保持するパーティションなど、重要で頻繁にアクセスされるデータがすべて格納されます。これには、高パフォーマンスのストレージ・デバイスの小型で高速なディスクが使用されます。

  • 低コスト

    低コスト・ストレージ層には、Q2、Q3、Q4の注文を保持するパーティションなど、それほど頻繁にアクセスされないデータが格納されます。この層は、モジュール式ストレージ・アレイや低コストATAディスクなど、低コストで最大限の記憶域を提供する大容量ディスクを使用して構築されます。

  • オンライン・アーカイブ

    オンライン・アーカイブ・ストレージ層には、ほとんどアクセスまたは変更されないすべてのデータが格納されます。このストレージ層は、非常に大きくなり、最大のデータ容量を格納する可能性があります。様々な方法でデータを圧縮できます。この層はデータベースに配置できます。または、企業内のすべての情報の集中アーカイブ・データベースとして利用される別のデータベースに配置することもできます。ATAドライブのような低コスト・ストレージ・デバイスに格納しても、データをオンラインで利用できます。コストは情報をテープに格納するよりわずかに高いだけで、テープにアーカイブした場合の不便さもありません。オンライン・アーカイブ・ストレージ層を読取り専用に指定すると、データを変更できなくなります。最初にデータベース・バックアップを取得すると、それ以降バックアップする必要はありません。

  • オフライン・アーカイブ(オプション)

    オフライン・アーカイブ・ストレージ層はオプションです。データベースからデータを削除する必要がある場合のみ使用され、データはXMLなど別の形式でテープに格納されます。

図5-2は、一定の期間でデータがどのように使用されるかを示しています。この図から、すべての情報を保管するには、すべてのデータを保存する複数のストレージ層が必要となり、さらに、それによってストレージの合計コストが大幅に節減されるというメリットがもたらされることがわかります。

ストレージ層を作成すると、「手順1: データ・クラスの定義」で指定したデータ・クラスが、パーティションを使用してデータベース内に物理的に実装されます。この方法により、データを使用方法に応じて適切なストレージ・デバイスに簡単に分散し、一方で、データをオンラインに保っていつでも利用できるようにし、最もコスト効果の高いデバイスに格納することができるようになります。

自動ストレージ管理(Oracle ASM)を使用して、複数のストレージ層のデータを管理することもできます。Oracle ASMは、Oracle Databaseファイル用の高パフォーマンスで管理が容易なストレージ・ソリューションです。Oracle ASMはボリューム・マネージャで、データベース専用に設計されたファイル・システムを提供します。Oracle ASMを使用するには、ストライプ化およびミラー化のプリファレンスが設定されたOracle Databaseに対してパーティション化されたディスクを割り当てます。Oracle ASMは、I/Oロードを使用可能なすべてのリソースに分散し、手動によるI/Oチューニングの必要性を解消しながらパフォーマンスを最適化して、ディスク領域を管理します。たとえば、データベースをシャットダウンすることなくデータベース用のディスクのサイズを増やしたり、データベースの一部を新しいデバイスに移すことができます。

ストレージ層へのクラスの割当て

ストレージ層を定義すると、手順1で指定したデータ・クラス(パーティション)を適切なストレージ層に割り当てることができます。これで、データを使用方法に応じて適切なストレージ・デバイスに簡単に分散し、一方で、データをオンラインに保っていつでも利用できるようにし、最もコスト効果の高いデバイスに格納することができます。これを図5-3に示します。この方法を使用すると、アプリケーションによってデータが引き続き認識されるのでアプリケーションを変更する必要はありません。

図5-3 データのライフサイクル

図5-3の説明が続きます
「図5-3 データのライフサイクル」の説明

階層ストレージの使用によるコスト節減

ILM戦略を実装する利点の1つは、複数階層ストレージの使用によりコストを節減できることです。格納するデータが3TBあり、内訳は高パフォーマンス200GB、低コスト800GB、オンライン・アーカイブ2TBであるとします。また、1GB当たりのコストは、高パフォーマンス層では72ドル、低コスト層では14ドル、オンライン・アーカイブ層では7ドルと仮定します。

表5-1に、すべてのデータを1クラスのストレージに格納するかわりに階層ストレージを使用することで実現できるコスト節減を示します。ここでわかるように、非常に大きなコスト節減が可能です。データがデータベース圧縮に適している場合は、さらにコスト節減を行うことができます。

表5-1 階層ストレージ使用によるコスト節減

ストレージ層 単一層(高パフォーマンス・ディスク使用) 複数ストレージ層 複数層(データベース圧縮)

高パフォーマンス(200GB)

$14,400

$14,400

$14,400

低コスト(800GB)

$57,600

$11,200

$11,200

オンライン・アーカイブ(2TB)

$144,000

$14,000

$5,600


$216,000

$39,600

$31,200


手順3: データのアクセス・ポリシーおよび移行ポリシーの作成

次の手順は、許可されたユーザーのみがデータにアクセスするようにし、存続期間におけるデータの移動方法を指定することです。データが古くなったときにストレージ層の間でデータを移行する方法がいくつかあります。

データへのアクセス制御

データのアクセス権を存続期間中に変更できるため、データのセキュリティは情報ライフサイクル管理のもう1つの重要な側面です。さらに、データのアクセス方法について厳密に要求する規制要件が存在する場合があります。

Oracle Database内のデータは、次のようなデータベース機能を使用して保護されます。

  • データベース・セキュリティ

  • ビュー

  • 仮想プライベート・データベース

仮想プライベート・データベース(VPD)では、データベースに対して非常に細かいレベルのアクセスを定義できます。セキュリティ・ポリシーによって、表示できる行と列が決まります。複数のポリシーを定義することで、様々なユーザーやアプリケーションが同じデータの異なるビューを表示できます。たとえば、Q1、Q2、Q3およびQ4の情報は大半のユーザーが見られるようにして、履歴データは許可されたユーザーのみが見られるようにできます。

セキュリティ・ポリシーはデータベース・レベルで定義され、すべてのデータベース・ユーザーに透過的に適用されます。この方法の利点は、データにアクセスするための安全で管理された環境が提供されることです。この環境を変更することはできず、実装するためにアプリケーションを変更する必要もありません。また、データが変更されないことを保証する読取り専用表領域を定義できます。

パーティション化を使用したデータの移動

データは、その存続期間の途中で移動する必要があります。これには次の理由があります。

  • パフォーマンスを維持するため、高パフォーマンス・ディスクに保持できる注文数には制限があります。

  • データが頻繁にアクセスされなくなっても、高価な高パフォーマンス・ストレージを使用している場合には、低コスト・ストレージ・デバイスに移動する必要があります。

  • 法的要件により、情報は指定の期間にわたって利用可能であることが必要です。最低限のコストで安全に保存する必要があります。

様々なストレージ層を活用するようにOracle Database内でデータを物理的に移動する方法は多数あります。たとえば、データがパーティション化されている場合、Q2の注文を含むパーティションを、高パフォーマンス・ストレージ層から低コスト・ストレージ層にオンラインのまま移動することができます。データはデータベース内で移動されるため、物理的に移動しても、データを必要とするアプリケーションに影響したり、通常のユーザーの作業を中断したりすることはありません。

場合によっては、データのグループではなく、個々のデータ項目を移動する必要があります。たとえば、プライバシとレポートのレベルに従ってデータが分類されており、以前は機密扱いだったデータが、現在は公開できるようになったとします。データがプライバシの分類に基づいてパーティション化されているときに、分類が機密から公開に変更されると、データ行は公開データを含むパーティションに自動的に移動されます。

データを元の場所から移動するときは、選択したプロセスがすべての規制要件に準拠するように常に確認することがきわめて重要です。たとえば、データを変更できない、未許可のアクセスから保護する、容易に参照できる、承認された場所に格納するといった要件があります。

手順4: コンプライアンス・ポリシーの定義と施行

情報ライフサイクル管理ソリューションの最後の手順は、コンプライアンスのためのポリシーの作成です。データが集中管理されず断片化している場合は、すべての場所でコンプライアンス・ポリシーを定義して施行する必要がありますが、コンプライアンス・ポリシーが見逃されやすくなります。ただし、Oracle Databaseを使用して、データを集中的に格納できる場所を提供すると、すべてのコンプライアンス・ポリシーを1箇所で管理および施行でき、コンプライアンス・ポリシーの施行が非常に容易になります。

コンプライアンス・ポリシーを定義するときは、次の点を考慮してください。

  • データの保存

  • 不変性

  • プライバシ

  • 監査

  • 有効期間

データの保存

保存ポリシーでは、データの保存方法、保存が必要な期間、最終的な処理方法が指定されます。例としては、レコードを元の形式で格納する必要があり、変更は許可されず、7年間保存する必要があるが、その後は削除できるというような保存ポリシーがあります。Oracle Databaseセキュリティを使用すると、データを変更せずに保持し、許可されたプロセスのみが適切なときにデータを削除することを保証できます。保存ポリシーは、ILMアシスタントのライフサイクル定義を使用して定義することもできます。

不変性

不変性は、データが完全であり変更されていないことを外部機関に証明することに関連します。データが変更されていないことを示すために、暗号署名すなわちデジタル署名をOracle Databaseによって生成して、データベースの内外に保存できます。

プライバシ

Oracle Databaseではデータ・プライバシを保証するためにいくつかの方法が提供されます。データへのアクセスは、仮想プライベート・データベース(VPD)を使用して定義したセキュリティ・ポリシーにより厳しく制御できます。また、生データを見るユーザーがデータの内容を把握できないように、個々の列を暗号化することができます。

監査

Oracle Databaseは、データに対するすべてのアクセスと変更を追跡できます。これらの監査機能は表レベルで定義することも、ファイングレイン監査を使用して定義することもできます。ファイングレイン監査では、監査レコードをいつ生成するかという基準を指定します。Audit Vaultを使用して監査をさらに拡張できます。

有効期間

最終的には、業務または規制に関する理由からデータの有効期間が終わり、データベースから削除する必要が生じます。Oracle Databaseでは、削除対象として指定された情報を含むパーティションを削除することにより、データを素早く効率よく削除できます。

オンライン・アーカイブの利点

データのライフサイクルのある時点になると、データは定期的にアクセスされなくなり、アーカイブの対象とみなされます。従来、データはデータベースから削除されてテープに格納されました。大容量の情報を非常に低いコストで格納できるためです。現在、データをテープにアーカイブする必要はありません。データベースに残しておくか、集中オンライン・アーカイブ・データベースに移すことができます。このようなすべての情報を、1GB当たりのコストがテープとほとんど変わらない低コスト・ストレージを使用して格納できます。

アーカイブ目的ですべてのデータをデータベースに置いておくと多数の利点が得られます。最も重要な利点は、いつでもすぐにデータを利用できるということです。このため、データがアーカイブされたテープを探したり、テープが読取り可能かどうか、またデータベースにロードできる形式になっているかどうかを判断したりして、時間を無駄にせずにすみます。

データが長い間アーカイブされていた場合は、テープ・アーカイブからデータベースにデータをリロードするためのプログラムを作成する開発時間も必要になります。これにはコストや時間がかかることがわかっており、データが古い場合は特に顕著です。データベースに保存したデータは、オンライン状態で最新のデータベース・フォーマットになっているためこの問題はありません。

現在、データベースに履歴データを保持しても、データベースのバックアップに必要な時間やバックアップのサイズに影響することはありません。RMANを使用してデータベースをバックアップすると、変更されたデータのみがバックアップに取得されます。履歴データが変更される可能性は少ないため、一度データがバックアップされると、その後のバックアップはありません。

検討する必要があるもう1つの重要な要素は、データベースからデータを物理的に除去する方法です(特に本番システムから集中アーカイブに移す場合)。Oracleではトランスポータブル表領域またはパーティションを使用して、データベース間でこのデータを短時間で移動する機能が提供されます。これにより、データがひとまとまりの単位で移動されます。

データベースからデータを削除するにあたり、最も速い方法はデータのセットを削除することです。これには、データがパーティションに保持された状態で削除します。パーティションの削除は非常に高速で処理できます。ただし、データの関係を維持する必要があるためにこの方法が不可能な場合は、従来のSQL delete文を発行する必要があります。delete文の発行に必要な時間を少なく見積もらないようにしてください。

データをデータベースから削除する必要があり、将来、データベースにデータを戻す必要が生じる可能性がある場合は、トランスポータブル表領域などのデータベース・フォーマットのままデータを移動するか、Oracle DatabaseのXML機能を使用してオープン・フォーマットで情報を抽出することを検討してください。

Oracleデータベースでのデータのオンライン・アーカイブを検討する理由は次のとおりです。

Oracle ILM Assistant

Oracle ILM Assistantでは、ILM環境を管理するためのグラフィカル・ユーザー・インタフェース(GUI)が提供されます。図5-4にILMアシスタントの初期画面を示します。ここには、実行する必要がある未処理のタスクが表示されます。

図5-4 ILMアシスタントの初期画面

図5-4の説明が続きます
「図5-4 ILMアシスタントの初期画面」の説明

ILMアシスタントで提供される機能を使用してライフサイクル定義を作成し、データベースの表に割り当てます。ILMアシスタントはこのライフサイクル定義を使用して、データの移動、アーカイブまたは削除をいつ行うかをカレンダに表示して提案します。ストレージの要件やデータ移動によるコスト節減も表示されます。

ILMアシスタントが管理できるのはパーティション表のみです。非パーティション表に対しては、ILMアシスタントは、表のパーティション化方法を示すスクリプトを生成します。また、表のパーティション化をシミュレーションする機能があり、表をパーティション化した場合に行われる処理を確認できます。

ILMアシスタントでは、別のストレージ層へのデータの移行など、実行を推奨するタスクのためにコマンドを実行することはありません。かわりに、実行が必要なコマンドのスクリプトを生成します。

コンプライアンス問題の管理を支援するために、ILMアシスタントは、ILMの制御下にある表に定義されているすべての仮想プライベート・データベース(VPD)ポリシーとファイングレイン監査(FGA)ポリシーを表示します。さらに、データベース監査レコードとFGA監査レコードの両方の表示や、デジタル署名の生成および比較を行うこともできます。

Oracle ILM Assistantを使用するには、管理対象の表が含まれるデータベースにOracle Application Expressがインストールされている必要があります。

ILMアシスタントでは次の領域で機能が提供されます。

ライフサイクル設定

ILMアシスタントのライフサイクル設定領域は次のタスクで構成されます。これらは、データの管理を準備するために実行する必要があります。

ILMアシスタントを初めて使用する場合は、この画面で、ILMアシスタントによってデータを管理する方法を厳密に指定します。ILMアシスタントがデータ配置のアドバイスをできるようにするには、図5-5に示すように次の手順を完了する必要があります。

  1. 論理ストレージ層を定義します。

  2. ライフサイクル定義を定義します。

  3. ライフサイクル定義で管理する表を選択します。

図5-5 ILMアシスタント: データの管理方法の指定

図5-5の説明が続きます
「図5-5 ILMアシスタント: データの管理方法の指定」の説明

設定で使用可能なその他のオプションには、次の機能があります。

  • パーティション・シミュレーションの表示

  • マップされた表と論理ストレージ層のライフサイクル・サマリーおよびライフサイクル定義の表示

  • ストレージのコストの表示

  • ポリシー・ノートの定義

  • プリファレンスによるILMアシスタントのカスタマイズ

論理ストレージ層

論理ストレージ層は、ストレージ・デバイスの論理グループに付けられる名前です。通常、同じタイプのすべてのディスクがこの名前で識別されます。たとえば、「High Performance」と呼ばれるグループが、すべての高パフォーマンス・ディスクを表す場合があります。任意の数の論理ストレージ層を定義することができ、デバイスは、割り当てられる表領域(格納される表領域)によって識別されます。

1GB当たりのコストの値は、0よりも大きな値にする必要があります。この値はILMアシスタントが使用して、データがこの層にマッピングされるときにストレージのコストを予測します。データをこの層に格納する際のコストとして適正な値を入力してください。これには、デバイスの購入価格も含まれます。ただし、メンテナンス・コストやランニング・コストなど、他の関連コストも考慮する必要があります。

各ストレージ層には、読取り/書込み優先表領域、読取り専用優先表領域または2次表領域としてラベル付けされた、一連の表領域が割り当てられます。読取り/書込みデータをこの層に移行できる場合は、読取り/書込み優先表領域が必要です。ストレージ層が読取り専用データしか受け入れない場合は、読取り専用優先表領域を指定する必要があります。

優先表領域に加えて、1つ以上の2次表領域を層に割り当てることができます。通常、2次表領域は、ストレージ層の読取り/書込み優先表領域と同じ場所に配置されます。

ILMアシスタントでは、1つの優先表領域しかサポートされないため、読取り/書込みデータをその層に配置する必要がある場合には、そのデータを読取り/書込み優先表領域に移動する移行イベントが生成されます。不要なデータ移行イベントを回避するために、ILMアシスタントでは、既存のデータがストレージ層の2次表領域に残ることを許可しています。

ライフサイクル定義

ライフサイクルの定義は、データが存続期間において論理ストレージ層でどのように移行されるかを指定します。定義は1つ以上のライフサイクル・ステージで構成され、各ステージでは論理ストレージ層、圧縮や読取り専用などのデータ属性、データがそのライフサイクル・ステージにとどまる期間が選択されます。

ライフサイクル定義は、少なくとも1つのライフサイクル・ステージを含む場合に有効です。最終ステージは必須です。これは、ユーザーが作成するか、ライフサイクル定義プロセスの終了時にILMアシスタントによって自動的に生成されます。最終ステージでは、ライフサイクルの最後でデータをどのようにするかを指定する必要があります。

ライフサイクル定義は、存続期間にデータがどのように処理されるか指定する複数のステージで構成されます。ライフサイクル・ステージは最初は、時間をさかのぼって作成されます(つまり、現在の日付から前に戻ります)。すべてのステージには一意の名前を付ける必要があります。必要に応じて説明を指定することもできます。

ステージが最終ステージでない場合は、データがそのステージに存在する期間と、ステージ属性(データを圧縮する、読取り専用に設定するかなど)があれば指定する必要があります。読取り専用ステージを指定できるのは、そのステージの論理ストレージ層に優先読取り専用表領域が定義されている場合のみです。

現行ステージは現在を表しますが、期間を長くすることもできます。1つのライフサイクルに含まれる現行ステージは1つだけです。最終ステージは必須です。ライフサイクルの最後に到達したときにデータをどのようにするかを指定するためです。1つのライフサイクルは最終ステージを1つだけ含むことができます。ユーザーが作成しない場合は自動的に作成されます。指定できる処理を次に示します。

  • データのパージ

  • データのオフライン・アーカイブ

  • データのオンライン保存の許可

データをオンラインで格納するステージでは、データに関連するいくつかの属性を定義することもできます。サポートされる属性は次のとおりです。

  • 圧縮

  • 圧縮と読取り専用

  • 読取り専用

各ステージは次の情報で構成されます。

  • ステージ・タイプ

    ステージは、現行ステージ、最終ステージ、その他に分類されます。

  • ステージ名

    ユーザー指定のステージ名が表示されます。

  • ステージの説明

    ユーザー指定のステージ説明が表示されます。

  • アクション

    データがステージにマップされたときに実行される処理が表示されます。指定できる処理を次に示します。

    • オンライン

    • オフライン・アーカイブ

    • パージ

  • 層名

    ステージに関連付けられているストレージ層が表示されます。データのパージまたはデータのオフラインへの移動を行うステージでは、層は指定されません。

  • 属性

    データがステージにマップされたときに適用される、オプションのデータ属性が表示されます。指定できる値を次に示します。

    • 圧縮

    • 圧縮と読取り専用

    • 読取り専用

  • ステージの期間

    データがそのステージにマップされている期間が表示されます。

  • ステージ開始日

    ステージ開始の実際のカレンダ日付が表示されます。日付は、前後のステージと、ユーザー指定の会計開始日付に基づいて計算されます。

  • ステージ終了日

    ステージ終了の実際のカレンダ日付が表示されます。日付は、前後のステージと、ユーザー指定の会計開始日付に基づいて計算されます。

ライフサイクル表

ライフサイクル表領域では、ILMアシスタントで管理できる表を指定します。また、図5-6のように、それらの表がここでライフサイクル定義にマッピングされます。1つのデータベースには多くの表が含まれますが、その一部のみをILMの管理対象として検討することもできます。日付列でレンジ・パーティション化されている表は、管理対象としてそのままで適格です。表をライフサイクル定義に関連付けると、ILMアシスタントがデータを管理できます。パーティション化を含まない表については、パーティション化計画のシミュレーションを使用してストレージ・コスト節減とストレージ層移行を確認することができます。

図5-6 ILMアシスタント: ライフサイクル表

図5-6の説明が続きます
「図5-6 ILMアシスタント: ライフサイクル表」の説明

表がまだパーティション化されていない場合は、完全シミュレーションを設定できるパーティション・シミュレーション・ページに進むように指示されます。管理対象の表を設定する場合と同様に、このページでシミュレーションのプレビューと受入れが可能です。シミュレーション・ページからこのページに戻ると、その表に対して、シミュレーション・モードで完全なライフサイクル管理を行えるようになっています。

管理対象の表とシミュレーション表の違いは、管理表には実際のパーティションが含まれるが、シミュレーション表にはシミュレートされた(現実ではない)パーティション化データしか含まれないことです。すべてのレポートとイベント検出は、どちらのタイプのライフサイクル表でも機能します。ただし、パーティション化をシミュレーション中の表は、ILMアシスタント内でのみパーティション化されているように表示されます。その他のすべてのツールでは、引き続き、非パーティション表として認識されます。

ライフサイクル表のビューでは、アクセス可能なすべての表が表示されますが、ILMアシスタントはすべての表を管理できるわけではありません。このような場合、表は不適格としてマークされ、例外を説明するリンクが提供されます。不適格の表の例を次に示します。

  • 日付列がない表

  • 日付列以外でパーティション化されている表

  • レンジ以外のパーティション・タイプでパーティション化されている表

  • LONG列を含む表

  • 索引構成表

ライフサイクル表をカスタマイズして、管理対象、シミュレーション、候補および不適格の表を表示できます。この表示には、次の情報が含まれます。

  • 表所有者

    表を所有するOracleスキーマ。

  • 表名

    ILMによって管理できる表。

  • 記憶域のサイズ

    表の現在の見積りサイズ。この値は、「フィルタ・オプション」に指定する「サイズ・コード測定」に応じて変更されます。

  • データ読取り

    表の論理読取りと物理読取りの現在の合計。

  • データ書込み

    表のすべての物理書込みの現在の合計。

  • ライフサイクル定義

    ILMアシスタントが表を管理している場合、必要なライフサイクル定義がここに表示されます。

  • ライフサイクル・ステータス

    表の現行のステータスを示します。表が、適格かどうか、あるいは管理またはシミュレーションされているかを示します。不適格の表については、ILMアシスタントとの不適合に関する説明がステータス・リンクに示されます。

  • 表のパーティション化

    表のパーティション化のステータスを示します。表のパーティション化について、実装、シミュレート、またはなしにできます。

  • コスト節減

    ILMアシスタントが表を管理している場合、コスト節減の合計額が計算されて、ここに表示されます。

  • パーティション・マップ

    現行の表パーティション化方法がライフサイクル定義と合っていることを示します。アイコンをクリックすると、表のパーティションの詳しいレポートが表示されます。

ライフサイクル表リスト

多くの表がある環境では、ILMアシスタントによって、ページ待機時間の長さやブラウザのタイムアウトの可能性を抑えるために表リスト・キャッシュ・システムが提供されます。表リストは、システムにあるすべてのユーザー表のスナップショットです。ILMアシスタント内での整合性を維持するために定期的にリフレッシュする必要があります。通常、表リストをリフレッシュする必要があるのは、ILMアシスタントの外部でアプリケーション表が追加、変更または削除されたとき、または最新の表統計が必要になる場合です。

デフォルトでは、表リストのリフレッシュ操作は、データベースに定義されているすべての表をスキャンしようとします。大規模アプリケーション環境では、この操作が終了するまでに長い時間がかかることがあります。通常、ILMアシスタントで管理される表は少数に限られています。表リストをリフレッシュするときに、データベースで検出されるすべての表を対象にしないようにするために、フィルタ処理を使用してスキャン対象の表数を絞り込むことができます。たとえば、ユーザーがSHスキーマの表の管理のみに関心がある場合、表所有者フィルタをSHに設定できます。リフレッシュにかかる時間を見積もるには、「リフレッシュ統計の見積もり」をクリックします。フィルタと一致する表の推定数と、データ処理にかかる時間が返されます。

キャッシュの未使用のエントリをパージすると、ILMアシスタントによって現在管理されていないエントリを含むキャッシュがクリーンアップされます。現在フィルタと一致している表には影響ありません。

ガイドラインとして、ILMアシスタントによる表リストのリフレッシュは1分当たり300から350個の表について実行できます。この操作を中断するには、ライフサイクル表画面を使用します。中断すると、表スキャンが正常に終了したようにリフレッシュ操作が停止します。プロセスの性質上、実際のスキャン操作が停止するまでに最大30秒かかることがあります。

パーティション・マップ

ライフサイクル表レポートのパーティション・マップ列には、表のすべてのパーティションがステージ内に収まり、複数のステージにまたがっていないかどうかが示されます。マッピング・ステータスにより、パーティションとステージの関係の性質が示されます。緑色のチェックマークは、パーティションがステージ内に完全に収まり、日付の境界を違反していないことを示します。警告アイコンは、なんらかの種類の不一致を示します。ステージ・マッピングの例外として考えられるのは次の場合です。

  • パーティション位置のずれ

    パーティションがステージ全体に収まらない場合は、パーティションの位置がずれている可能性があります。このようになるのは、ライフサイクル・ステージの期間が最小のパーティション・レンジよりも短い場合です。解決するには、表の管理に適したライフサイクル定義を選択するか、ライフサイクル定義を編集してステージ期間を調整してください。

  • 論理ストレージ層に関連付けられていない表領域

    ILMアシスタントの新しいユーザーにとって一般的な問題です。コスト分析を実行には、ILMアシスタントは、参照されるすべての表領域を1つの層に関連付ける必要があります。通常、最も簡単な修正方法は、論理ストレージ層を編集し、関連付けのない表領域を2次表領域として追加することです。

ストレージ・コスト

図5-7に示すように、ILMアシスタントでは、管理対象表またはシミュレーション表に関連する、ストレージ・コストとコスト節減の包括的なレポートが提供されます。

図5-7 ILMアシスタント: シミュレーション表のパーティション化

図5-7の説明が続きます
「図5-7 ILMアシスタント: シミュレーション表のパーティション化」の説明

このレポートは、次の2つの主な領域にわかれています。レポートの上の部分は、管理対象表またはシミュレーション表についての合計を示すロールアップです。管理対象表の場合は、2つのサブセクションがあり、1つのストレージ層を使用する非ILM環境とILMで管理される複数層環境のそれぞれのデータが表示されます。シミュレーション表の場合は、さらに別のセクションに、ILMによって管理される複数層環境が表示されます。ここには、圧縮の効果見積りが含まれます。

ストレージ・コスト・ページの一番下のセクションは、論理ストレージ層ごとにコストの種類を細分化した詳細セクションです。

  • 単一層のサイズ

    エンティティの合計サイズが表示されます。ライフサイクルベースのレポートでは、この値は、現行のライフサイクル定義に割り当てられているすべての表のサイズの合計を表します。管理対象表の場合、サイズはデータベース記憶域統計で示される実際のサイズです。シミュレーション表の場合、サイズはユーザー指定の行数と行の平均長を計算して見積もられるサイズです。

  • 単一層のコスト

    単一層のコストが表示されます。これは、現行エンティティの単一層のサイズを、ライフサイクル定義内の最も高価な層にデータを格納するためのコストと掛けて計算されます。

  • 1GB当たりのコスト

    ストレージ層を設定するときにユーザーが指定したコストが表示されます。この値は、この層に割り当てられるパーティションのストレージ・コストを計算するために使用されます。

  • 複数層のサイズ

    この層に含まれるエンティティの合計サイズが表示されます。ライフサイクルに関しては、これは、現行層に関連付けられているすべての表パーティションに相当します。表に関しては、これは、この層に関連付けられているすべてのパーティションの合計に相当します。サイズには、圧縮の見積りは含まれません。

  • 複数層のコスト

    コストが表示されます。現行層の1GB当たりのコストと、エンティティが占有する領域を掛けて計算されます。ライフサイクルに関しては、これは、現行層に関連付けられているすべての表パーティションに相当します。表に関しては、これは、この層に関連付けられているすべてのパーティションの合計に相当します。

  • 複数層の節減

    節減される金額が表示されます。単一層を使用して同じデータを格納した場合のコストから複数層のコストを引いて計算されます。

  • 節減率

    同じデータについて単一層に対する複数層の節減率が表示されます。

  • 複数層圧縮のサイズ

    この層に含まれるエンティティの合計サイズが表示されます。ライフサイクルに関しては、これは、現行層に関連付けられているすべての表パーティションに相当します。表に関しては、これは、この層に関連付けられているすべてのパーティションの合計に相当します。このサイズには、ユーザーが指定した推定の圧縮係数に基づいた圧縮の見積りが反映されます。

    このレポート項目は、シミュレーション表のデータを表示する場合のみ含まれます。

  • 複数層圧縮のコスト

    コストが表示されます。現行層の1GB当たりのコストと、エンティティが占有する領域を掛けて計算されます。ライフサイクルに関しては、これは、現行層に関連付けられているすべての表パーティションに相当します。表に関しては、これは、この層に関連付けられているすべてのパーティションの合計に相当します。このサイズには、ユーザーが指定した推定の圧縮係数に基づいた圧縮の見積りが反映されます。

    このレポート項目は、シミュレーション表のデータを表示する場合のみ含まれます。

  • 複数層圧縮の節減

    節減される金額が表示されます。単一層を使用して同じデータを格納した場合のコストから複数層圧縮のコストを引いて計算されます。

    このレポート項目は、シミュレーション表のデータを表示する場合のみ含まれます。

  • 節減率

    同じデータについて単一層に対する複数層圧縮の節減率が表示されます。

    このレポート項目は、シミュレーション表のデータを表示する場合のみ含まれます。

  • ライフサイクル・ステージの圧縮

    ライフサイクル・ステージを設定するとき、ユーザーは、パーティションをステージに割り当てる際に必ず圧縮することを求めるオプションを選択できます。この値は、ストレージ層に割り当てられている、圧縮属性が設定されたステージ数を示します。

  • パーティションの圧縮

    ストレージ層にある、現在圧縮されているパーティションの数が表示されます。

パーティション・シミュレーション

パーティション化の実装は、どの組織にとっても大変な作業になります。ILMアシスタントを使用すると、実際にデータを再編成する前に影響を確認することができます。これを実行するために、ILMアシスタントはシミュレーション・モードで次の情報が必要です。

  • ライフサイクル定義

    シミュレーション表の管理に使用するライフサイクル定義を選択します。シミュレーション・パーティションは、ライフサイクルに定義されているライフサイクル・ステージから導出されます。ILMアシスタントは、提供されるステージ期間の情報に基づいて最適な日付範囲を判別します。

  • パーティション化列

    パーティション化キーとして適切な日付列を選択します。現行表に1つしか日付列がない場合は、その列が自動的に選択され、読取り専用形式で表示されます。

  • パーティション日付間隔

    選択したライフサイクル定義に基づいて最適なパーティション・レンジ間隔が表示されます。ILMアシスタントによって、生成されるすべてのパーティションがライフサイクル・ステージに適切に配置されるように間隔が計算されます。

  • 行数

    現行表の行数を指定します。デフォルト値は、現行表のデータベース統計から取得されます。デフォルト値を使用できない場合、または将来の増加を見込む場合は、0よりも大きい任意の値を入力できます。

  • 平均の行長さ

    表の行の平均の長さを指定します。デフォルト値は、現行表のデータベース統計から取得されます。統計が無効な場合、ILMアシスタントによって表の問合せが行われ、最大行サイズが計算されます。デフォルト値が適切でない場合、または将来の増加を見込む場合は、0よりも大きい任意の値を入力できます。

  • 見積もり圧縮係数

    圧縮係数を指定します。圧縮係数は、ILMアシスタントがストレージ・コストと節減を見積もるためにのみ使用されます。この係数は単なる推定値ですが、この値を使用して節減の見込みを確認できます。値1は圧縮が行われないことを示します。1を超える値は、領域が削減されることを示します。削減率= 1 /係数という式が使用されます。デフォルト値は、圧縮の見込みについて表の一部をサンプリングして計算されます。

図5-7に示すように、シミュレーションをプレビューした後に、もう1つのオプションで移行スクリプトを生成できます。この機能により、既存の非パーティション表をパーティション表に変換するスクリプトをユーザーが作成できます。スクリプトには単純な作成操作と既存データを移行するためのコマンドが含まれていますが、誤った操作を防ぐためにスクリプトの一部がコメント化されていることに注意してください。パーティション表への表の変換は注意深く計画する必要があります。

プリファレンス

「プリファレンス」では、ILMアシスタントの動作やデータの表示(たとえば、入力されるほとんどの値やレポートでのデフォルト日付書式またはデフォルト行数の表示)の様々な面が制御されます。次のプリファレンスを設定できます。

  • 圧縮サンプル・ブロック数

  • 圧縮サンプル率

  • 日付書式(長)

  • 日付書式(短)

  • デモンストレーション・モード

    実際の表サイズを拡大する係数を指定します。値1ではこのモードは実質的に無効になります。1倍では元の値と変わらないためです。

  • 言語プリファレンス

  • ライフサイクル表表示フィルタ

    ライフサイクル表ページを開いたときに表示されるデフォルトの選択内容を指定します。値を加算して、複数の種類の表を指定できます。たとえば、3は、管理対象表とシミュレーション表の両方を表示することを指定します。指定できる値を次に示します。

    1 - 管理対象表
    2 - シミュレーション表
    4 - 候補表
    8 - 不適格表

    デフォルト値は7です。不適格表が含まれません。

  • レポートの最大表示行数

  • 最大表示可能表数

  • 進捗モニターのリフレッシュ間隔

  • レポート列最大表示長

  • ライフサイクル設定の開始ページ

    指定できる値を次に示します。

    • 論理ストレージ層

    • ライフサイクル定義

    • ライフサイクル表

  • 記憶域サイズ・メトリック

    記憶域サイズの値を表示するときに使用されるデフォルト・サイズ・メトリックを指定します。指定できる値を次に示します。

    KB
    MB
    GB
    TB

    この値では大文字と小文字が区別されます。

ライフサイクル管理

「ライフサイクル管理」では、データを情報ライフサイクルの適切な場所に移動するために実行する必要があるタスクを扱います。次の項目に関する情報を得ることができます。

ライフサイクル・イベント・カレンダ

図5-5に示すように、ライフサイクル・イベント・カレンダには、直前、現行および将来(オプション)のライフサイクル・イベントのカレンダが表示されます。これらのイベントは、情報ライフサイクルの適切な場所にデータを配置するために実行する必要があります。イベントを含む前の月ボタンを使用して、ライフサイクル・イベントを含む前の月にナビゲートできます。

移動する必要があるデータを識別するには、イベントについてスキャン・ボタンをクリックします。このとき、すべてのイベントを現在の日付まで、または将来も含めてスキャンするかが確認されます。また、すべての表を評価するか、選択した表を評価するかを選択できます。その後、ILMアシスタントで、ライフサイクル定義に基づいてデータの現在の場所と格納されるべき場所が比較され、適切に移動するように推奨されます。また、データを圧縮すべきか、読取り専用に設定すべきかどうかも、ライフサイクル定義に従ってアドバイスされます。ILMアシスタントによって行われるすべてのアドバイスはパーティションのみに適用されます。

ライフサイクル・イベント

ライフサイクル・イベントレポートでは、データ移行イベントの詳細が表示され、そのための処理を実行するスクリプトの生成方法が提供されます。表示されるイベントの一部またはすべてを選択するには、最初の列のチェック・ボックスを選択します。スクリプトの生成またはイベントの取消しには、イベントを選択する必要があります。選択したイベントについてスクリプトを生成するには、「スクリプトの生成」ボタンをクリックします。選択したイベントを取り消して、永続的に消去するには、選択したイベントの取消しボタンをクリックします。

イベントのサマリーには次の情報が表示されます。

  • 推奨操作

    スキャン操作によって検出されたイベントのタイプを示します。イベントのタイプは次のとおりです。

    • MOVE PARTITION

      パーティションを現行の論理ストレージ層から新しい論理ストレージ層に移動する必要があることを示します。この移動は、パーティションを表領域間で移動して行います。

    • COMPRESSION

      パーティションでデータ圧縮を有効にしておく必要があることを示します。

    • READ-ONLY

      パーティションを読取り専用に設定する必要があることを示します。

    • PURGE

      パーティションを物理的に削除する必要があることを示します。

  • パーティション名

    影響されるパーティションを示します。

  • 現行層

    パーティションの現在の位置を示します。

  • 推奨層

    移動先のストレージ層を示します。

  • コスト節減

    イベントの処理が実装される場合の、ストレージ・コスト節減の見込みを示します。

  • 表の所有者と表名

    パーティション表の所有者と表名を示します。

  • イベント日付

    処理を実行する必要がある日付を示します。解決すべきだったイベントについては、1つのキーワード「過去」が表示されます。将来のイベントについては、カレンダ日付が表示されます。

  • イベントの詳細

    イベントの詳細へのリンクを示します。この領域では、スキャン操作に影響するライフサイクルの詳細が説明されます。

パーティションでいくつかの論理操作(移動や圧縮など)が必要な場合、ILMアシスタントではそれらの操作が個別のイベントとして表示されます。ただし、スクリプトでは、操作を組み合せて1つのSQL DDL文を作成することができます。

現在、ILMアシスタントにはアーカイブ機能はありません。このため、アーカイブ・イベントを選択すると、その時点でアーカイブする必要があるパーティションを識別して、それらをコメント化したスクリプトが生成されます。

イベント・スキャン履歴

許可されているユーザーであれば誰でも、イベントのスキャンをライフサイクル・イベント・カレンダで起動できます。時間が経過するとスキャン・アクティビティの追跡は非常に困難になるため、履歴が使用可能になります。

履歴レポートには次の情報が表示されます。

  • スキャン日付

  • 発行元ユーザー

  • 最も古いイベント日付

  • 最も新しいイベント日付

  • 表の所有者と表名

  • イベント数

  • ライフサイクル・ステータス

コンプライアンスおよびセキュリティ

コンプライアンスおよびセキュリティ領域には、セキュリティを実施して、世界中の無数の規制へのコンプライアンス管理を推進できる項目がすべて表示されます。次のための領域が含まれます。

現在のステータス

「現在のステータス」には、コンプライアンスおよびセキュリティの使用可能な様々な機能すべてのステータスが要約されます。たとえば、仮想プライベート・データベース(VPD)ポリシーの定義数、デジタル署名が最後に生成された日時、デジタル署名の比較が最後に実行された日時などが示されます。

デジタル署名と不変性

規制によっては、データがデータベースに入力されてからずっと変更されていないことを明示する必要性を定めています。データが変更されていないことを証明するために使用できる方法の1つは、デジタル署名の生成です。

Oracle Databaseでは、SQL結果セットに対してデジタル署名を生成できます。署名はILMアシスタント内で生成することができます。レコードのコレクションを記述する問合せを含む名前付きSQL結果セットを作成することで、署名が生成されます。生成されたデジタル署名は、最初はテキスト・ファイルに保存されています。

問合せのデータ・レコードが変更されていないことを示すには、事前に定義されたSQL問合せにデジタル署名を提供し、現在のデータに対して再生成してから署名を比較します。このようにして、デジタル署名が最初に生成されてからデータが変更されていないことを示します。

プライバシおよびセキュリティ

プライバシおよびセキュリティ領域では、次の情報を表示できます。

  • 各ILM表でのプライバシとセキュリティの定義のサマリー

  • 仮想プライベート・データベース(VPD)ポリシー

  • ILMアシスタントで管理される表のセキュリティ・ビュー

  • ILMアシスタントで管理される表についてユーザーに付与されているアクセス権限に関するレポート

デフォルトではライフサイクル表サマリーが表示されます。VPDポリシーとユーザー・アクセス情報は、対応するリンクを選択すると表示されます。

ライフサイクル表サマリー

ライフサイクル表サマリーでは、VPDポリシーと発行されている表権限について、使用されている機能に関する各表の概要が提供されます。

仮想プライベート・データベース(VPD)・ポリシー

標準のデータベース権限を使用して、特定のユーザーに対して表へのアクセスを制限することができます。ただし、このようなアクセス制限では、ユーザーは表のすべての情報を読むことが可能です。VPDポリシーを使用すると、情報にアクセスできるユーザーについてさらに細かいレベルで制御できます。VPDポリシーを使用すると、ユーザーに対して表示するデータを厳密に定義する高機能のファンクションを作成できます。

たとえば、ポリシーによって、特定のユーザーはデータの最新の12か月分のみを表示できるようにし、それ以外のユーザーはすべてのデータを表示できるように指定できます。または、別のポリシーでは、事務所が存在する国のデータのみを表示できるように指定できます。このように、VPDポリシーは、情報へのアクセスを制御するきわめて高機能のツールです。ILMアシスタントで管理されている表に定義されたVPDポリシーのみが、VPDポリシー・レポートに表示されます。

ユーザーによる表アクセス

ユーザーによる表アクセス・レポートでは、ライフサイクル定義に割り当てられている表についてユーザーに付与されているすべてのアクセス権限のリストが提供されます。

監査

規制によっては、データのすべてのアクセスと変更についての監査証跡を管理することが必要です。Oracle Databaseでは、データベース監査とファイングレイン監査を使用できます。どちらでも独自の監査レコードが作成されますが、ILMアシスタントではそれらを1つの統合レポートとして表示できます。レポートの内容は、いくつかの基準を使用してフィルタ処理できます。

ILMアシスタントの監査領域では、次の操作を行うことができます。

  • 現行監査ステータスの表示

  • ファイングレイン監査ポリシーの管理

  • 監査レコードの表示

ファイングレイン監査ポリシー

Oracle Databaseの標準監査では、表に対するすべてのタイプのアクセスがロギングされます。ただし、特定の条件を満たすときのみイベントを監査する場合があります。たとえば、変更されるトランザクションの値が$10,000を超える場合などです。このような監査は、監査条件を指定したファイングレイン監査ポリシーを使用して行うことができます。さらに高度な処理を行うにはオプションのファンクションをコールできます。

監査レコードの表示

ILMアシスタントでは、ライフサイクル定義にマップされた表についてデータベース監査レコードとファイングレイン監査レコードの両方を表示できます。アイコンによって、データベース(ディスクの形)またはFGAという監査レコードのタイプが表されます。フィルタ条件を使用して、表示する監査レコードをフィルタ処理します。また、レポートの見出しをクリックすると、その列についてデータがソートされます。

デフォルトでは、ILMアシスタントには現在の日付の監査レコードしか表示されません。以前の日付の監査レコードを表示するには、フィルタ・オプションを使用して表示するレコードの日付範囲を指定する必要があります。

ポリシー・ノート

ポリシー・ノートによって、データ管理ポリシーのテキスト・ドキュメント、あるいは存続期間を通してのデータ管理に必要なドキュメントが提供されます。ポリシー・ノートは資料としてのみ使用されます。ILMアシスタントによって実行されるタスクには影響しません。ポリシーの説明を集中管理する場所、覚書き、およびポリシーのドキュメント化を証明する方法として使用できます。また、SLA (品質保証契約)のドキュメント化や、施行しようとしているコンプライアンス・ルールのドキュメント化に使用することもできます。

レポート

ILMアシスタントでは、ILM環境を管理するあらゆる局面について様々なレポートが提供されます。次のようなレポートがあります。

  • ライフサイクルまたは表別の複数層ストレージ・コスト

  • 論理ストレージ層サマリー

  • 表またはストレージ層別のパーティション

  • ライフサイクル保管サマリー

  • データ保護サマリー

ILMシステムの手動実装

例5-1では、手動でストレージ層を作成し、それらのストレージ層に対して表をパーティション化し、そのデータベースに対してVPDポリシーを設定して、オンライン・アーカイブ層のデータへのアクセスを制限する方法を示します。

例5-1 ILMシステムの手動実装

REM Setup the tablespaces for the data 

REM These tablespaces would be placed on a High Performance Tier 
CREATE SMALLFILE TABLESPACE q1_orders DATAFILE 'q1_orders'
SIZE 2M AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED LOGGING 
EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ;

CREATE SMALLFILE TABLESPACE q2_orders DATAFILE 'q2_orders'
SIZE 2M AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED LOGGING 
EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ;

CREATE SMALLFILE TABLESPACE q3_orders DATAFILE 'q3_orders'
SIZE 2M AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED LOGGING 
EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ;

CREATE SMALLFILE TABLESPACE q4_orders DATAFILE 'q4_orders'
SIZE 2M AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED LOGGING 
EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ;

REM These tablespaces would be placed on a Low Cost Tier 
CREATE SMALLFILE TABLESPACE "2006_ORDERS" DATAFILE '2006_orders'
SIZE 5M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED LOGGING 
EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ;

CREATE SMALLFILE TABLESPACE "2005_ORDERS"  DATAFILE '2005_orders'
SIZE 5M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED LOGGING 
EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ;

REM These tablespaces would be placed on the Online Archive Tier 
CREATE SMALLFILE TABLESPACE "2004_ORDERS" DATAFILE '2004_orders'
SIZE 5M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED LOGGING 
EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ;

CREATE SMALLFILE TABLESPACE old_orders DATAFILE 'old_orders'
SIZE 15M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED LOGGING 
EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ;

REM Now create the Partitioned Table 
CREATE TABLE allorders (
    prod_id       NUMBER       NOT NULL,
    cust_id       NUMBER       NOT NULL,
    time_id       DATE         NOT NULL,
    channel_id    NUMBER       NOT NULL,
    promo_id      NUMBER       NOT NULL,
    quantity_sold NUMBER(10,2) NOT NULL,
    amount_sold   NUMBER(10,2) NOT NULL)
 --
 -- table wide physical specs
 --
  PCTFREE 5 NOLOGGING   
 --
 -- partitions
 --  
 PARTITION BY RANGE (time_id)
  ( partition allorders_pre_2004 VALUES LESS THAN 
     (TO_DATE('2004-01-01 00:00:00'
             ,'SYYYY-MM-DD HH24:MI:SS'
             ,'NLS_CALENDAR=GREGORIAN'
             )) TABLESPACE old_orders,
    partition allorders_2004 VALUES LESS THAN 
     (TO_DATE('2005-01-01 00:00:00'
             ,'SYYYY-MM-DD HH24:MI:SS'
             ,'NLS_CALENDAR=GREGORIAN'
             )) TABLESPACE "2004_ORDERS",
    partition allorders_2005 VALUES LESS THAN 
     (TO_DATE('2006-01-01 00:00:00'
             ,'SYYYY-MM-DD HH24:MI:SS'
             ,'NLS_CALENDAR=GREGORIAN'
             )) TABLESPACE "2005_ORDERS",
    partition allorders_2006 VALUES LESS THAN 
     (TO_DATE('2007-01-01 00:00:00'
             ,'SYYYY-MM-DD HH24:MI:SS'
             ,'NLS_CALENDAR=GREGORIAN'
             )) TABLESPACE "2006_ORDERS",
    partition allorders_q1_2007 VALUES LESS THAN 
     (TO_DATE('2007-04-01 00:00:00'
             ,'SYYYY-MM-DD HH24:MI:SS'
             ,'NLS_CALENDAR=GREGORIAN'
             )) TABLESPACE q1_orders,
    partition allorders_q2_2007 VALUES LESS THAN 
     (TO_DATE('2007-07-01 00:00:00'
             ,'SYYYY-MM-DD HH24:MI:SS'
             ,'NLS_CALENDAR=GREGORIAN'
             )) TABLESPACE q2_orders,
    partition allorders_q3_2007 VALUES LESS THAN 
     (TO_DATE('2007-10-01 00:00:00'
             ,'SYYYY-MM-DD HH24:MI:SS'
             ,'NLS_CALENDAR=GREGORIAN'
             )) TABLESPACE q3_orders,
    partition allorders_q4_2007 VALUES LESS THAN 
     (TO_DATE('2008-01-01 00:00:00'
             ,'SYYYY-MM-DD HH24:MI:SS'
             ,'NLS_CALENDAR=GREGORIAN'
             )) TABLESPACE q4_orders);

ALTER TABLE allorders ENABLE ROW MOVEMENT;

REM Here is another example using INTERVAL partitioning 

REM These tablespaces would be placed on a High Performance Tier 
CREATE SMALLFILE TABLESPACE cc_this_month DATAFILE 'cc_this_month'
SIZE 2M AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED LOGGING 
EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ;

CREATE SMALLFILE TABLESPACE cc_prev_month DATAFILE 'cc_prev_month'
SIZE 2M AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED LOGGING 
EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ;

REM These tablespaces would be placed on a Low Cost Tier 
CREATE SMALLFILE TABLESPACE cc_prev_12mth DATAFILE 'cc_prev_12'
SIZE 2M AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED LOGGING 
EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ;

REM These tablespaces would be placed on the Online Archive Tier
CREATE SMALLFILE TABLESPACE cc_old_tran DATAFILE 'cc_old_tran'
SIZE 2M AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED LOGGING 
EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ;

REM Credit Card Transactions where new partitions automatically are placed on the high performance tier 
CREATE TABLE cc_tran (
    cc_no       VARCHAR2(16) NOT NULL,
    tran_dt     DATE         NOT NULL,
    entry_dt    DATE         NOT NULL,
    ref_no      NUMBER       NOT NULL,
    description VARCHAR2(30) NOT NULL,
    tran_amt    NUMBER(10,2) NOT NULL)
 --
 -- table wide physical specs
 --
 PCTFREE 5 NOLOGGING   
 --
 -- partitions
 --  
 PARTITION BY RANGE (tran_dt)
 INTERVAL (NUMTOYMINTERVAL(1,'month') ) STORE IN (cc_this_month )
  ( partition very_old_cc_trans VALUES LESS THAN
     (TO_DATE('1999-07-01 00:00:00'
             ,'SYYYY-MM-DD HH24:MI:SS'
             ,'NLS_CALENDAR=GREGORIAN'
             )) TABLESPACE cc_old_tran ,
    partition old_cc_trans VALUES LESS THAN
     (TO_DATE('2006-07-01 00:00:00'
             ,'SYYYY-MM-DD HH24:MI:SS'
             ,'NLS_CALENDAR=GREGORIAN'
             )) TABLESPACE cc_old_tran ,
    partition last_12_mths VALUES LESS THAN
     (TO_DATE('2007-06-01 00:00:00'
             ,'SYYYY-MM-DD HH24:MI:SS'
             ,'NLS_CALENDAR=GREGORIAN'
             )) TABLESPACE cc_prev_12mth,
    partition recent_cc_trans VALUES LESS THAN
    (TO_DATE('2007-07-01 00:00:00'
            ,'SYYYY-MM-DD HH24:MI:SS'
            ,'NLS_CALENDAR=GREGORIAN'
            )) TABLESPACE cc_prev_month,
    partition new_cc_tran VALUES LESS THAN
     (TO_DATE('2007-08-01 00:00:00'
             ,'SYYYY-MM-DD HH24:MI:SS'
             ,'NLS_CALENDAR=GREGORIAN'
             )) TABLESPACE cc_this_month);


REM Create a Security Policy to allow user SH to see all credit card data,
REM PM only sees this years data,
REM and all other uses cannot see the credit card data 

CREATE OR REPLACE FUNCTION ilm_seehist
  (oowner IN VARCHAR2, ojname IN VARCHAR2)
   RETURN VARCHAR2 AS con VARCHAR2 (200);
BEGIN
  IF SYS_CONTEXT('USERENV','CLIENT_INFO') = 'SH'
  THEN -- sees all data
    con:= '1=1';
  ELSIF SYS_CONTEXT('USERENV','CLIENT_INFO') = 'PM'
  THEN -- sees only data for 2007
    con := 'time_id > ''31-Dec-2006'''; 
  ELSE
    -- others nothing
    con:= '1=2';
  END IF;
  RETURN (con);
END ilm_seehist;
/

REM Then the policy is added with the DBMS_RLS package as follows:

BEGIN
  DBMS_RLS.ADD_POLICY ( object_schema=>'SYSTEM'
                      , object_name=>'cc_tran'
                      , policy_name=>'ilm_view_history_data'
                      , function_schema=>'SYSTEM'
                      , policy_function=>'ilm_seehist'
                      , sec_relevant_cols=>'tran_dt'
                      );
END;
/


関連項目:

  • SQL文の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

  • DBMS_RLSパッケージの詳細は、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。