Presented with 第127回 夜な夜な! なにわオラクル塾 Oracle Database12c 新機能! 情報ライフサイクル管理の自動化 日本オラクル株式会社 データベース事業統括 ソリューション本部 中部・西日本SC部 2014年07月16日 Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 2 Program Agenda 1 ILMの課題とソリューション 2 パーティショニング 3 パーティションの新機能 4 ILMの新機能 Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 3 ILMの課題とソリューション Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 4 ILM(Information Lifecycle Management)とは • 同じ表でもアクセスが高い部分と低い部分を分割して運用管理する事に よって、データを効率的に保存管理する考え方。 • これにより、大幅なコスト削減も可能 高アクセス 低アクセス ハイパフォーマンス ストレージ層 ローコスト ストレージ層 履歴データ オンラインアーカイブ ストレージ層 Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | アーカイブ オフライン アーカイブ 5 11g以前 ILMの課題とソリューション ストレージコスト削減 圧縮 − Basic圧縮 − OLTP圧縮 − Hybrid Columnar圧縮 低コスト・ストレージへの移動 使われなくなったデータのパージ 性能改善 安全なデータ パーティション(行移動) 権限とビューの設定 DB/Audit Vault の利用 VPD/OLS の利用 Flashback Data Archive の利用 高性能ストレージへの移動 監査/ファイングレイン監査の利用 データの暗号化 Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 6 11g以前 ILMの構築 データ区分 経過時間に応じて決められた処理 スコープ ステージ① :1ヶ月経過後 − − 表 OLTP圧縮 ステージ② : 2ヶ月経過後 − 表パーティション − HCC圧縮 + 低コスト・ストレージへ移動 ステージ③ : 11ヶ月経過後 − HCC圧縮 + さらに低コスト・ストレージへ移動 最終ステージ : 6年経過後 ⇒ パージ ステージ ステージ⓪ ステージ① ステージ② ステージ③ ストレージ層 高性能 高性能 低コスト オンライン・アーカイブ 圧縮属性 なし OLTP圧縮 HCC圧縮 クエリー・モード HCC圧縮 アーカイブ・モード 期間 1カ月間 2か月間 11か月間 6年間 Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 最終ステージ パージ 7 12c ILMの課題 ストレージコスト削減 安全なデータ データ増 VS I/O性能 爆発的なデータ増 規制による要件の増加 性能改善 規制による要件の増加 Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 8 12c ILM ソリューション ILM アクションの自動化 ストレージ・コスト削減 ▪ 実際のアクセス・パターンに応じて、最適なストレージ層に データを配置することで、より効果的なストレージ管理 ▪ 圧縮の利用による許容データ量の拡大 性能改善 • 実際のアクセス・パターンに応じて、圧縮レベルの使い分け 適切なタイミングで実施 時間経過と共にアクセス頻度が低下するデータ 最も アクティブ アクティブ •更新:低、 検索:高 •HCC 圧縮クエリー・モード(10x) •高性能ストレージ層 低頻度 •更新: ≒なし、 検索: 低 •HCC 圧縮 クエリー・モード (10x) •低コスト・ストレージ層 Automatic Data Optimization ▪ ユーザ定義のルール(ポリシー)に従って圧縮 ▪ 表領域が逼迫したら、利用頻度の低いものから移動 In-Database Archiving • 行単位でのアーカイブ属性 • 行単位での有効期間属性 •最近作成/更新されたデータ •Advanced Row Compression (2-4x) ※OLTP圧縮 •SSD または メモリー内へのキャッシュ 休眠 •長期間データの分析/コンプライアンス用途 •HCC 圧縮 アーカイブ・モード(15-50x) •アーカイブ層 (DB or tape) Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 9 12c ILMの構築 Automatic Data Optimization / Heat Map データ区分 何を? 自動検知 アクセスパターンがどうなった時? スコープ 行レベル 自動実行 ILM 操作は? アクション 起動条件 追跡対象の操作は? セグメントレベル − Creation 表領域レベル − Access グループ・レベル − Modification 圧縮 − 段階的に高い圧縮レ ベルを適用 タイミングは? − After n days − After n year − Tablespace full 移動 − 低コストストレージへ の移動 圧縮 + 移動 Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 10 パーティショニング Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 11 パーティショニングとは? 大きな表や索引をデータベース内部で 複数の領域に分割して管理する 通常の1つの表 パーティション化された表 1月 4月 2月 3月 5月 6月 内部的に 表を分割 検索したいデータが一部でも、 表全体または索引を利用してアクセス 検索したいデータが格納されている パーティションにのみアクセス 各種メンテナンス作業も 表全体に影響が及んでしまう 各種メンテナンス作業も パーティション単位で実施可能 Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 12 アプリケーションの変更が不要! • クライアント側では特に意識することなく、対象のデータが格納されている パーティションだけにアクセスすることが可能 emp表 • テーブル構造の変更も必要なし 0~999 ⇒ アプリケーションの変更が発生しない! (emp_id) 社員番号1000番のデータ が見たい 1000~1999 (emp_id) 2000~2999 オプティマイザ (emp_id) 3000~3999 SELECT * FROM emp WHERE emp_id = 1000; (emp_id) Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 13 このような売上表をパーティショニングすると… 売上日 製品 支店 顧 客 名 売上 ・・・ 2013/04/03 液晶テレビ 丸の内 井上 憲三郎 ¥183,620 ・・・ 2013/04/03 液晶テレビ 丸の内 椛田 正臣 ¥43,3800 ・・・ 2013/04/04 炊飯器 神奈川 藤田 佳子 ¥26,320 ・・・ 2013/04/05 携帯電話 井上 あつし ¥23,620 ・・・ 多摩 ・・ ・ 2013/06/26 腕時計 ・・ ・ 2013/12/31 ・・ ・ 電気ポット ・・ ・ 埼玉 ・・ ・ 影山 治子 2014/01/01 携帯電話 新潟 山本 健 ・・ ・ ・・ ・ ・・ ・ ・・ ・ 丸の内 ・・ ・ ・・ ・ ・ ・ ・ ・・ ・ 松沢 惇 ¥155,490 ・・ ・ Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | ・ ・ ・ ・・ ・ ・・ ・ ・・・ ¥25,400 ・・・ ¥23,620 ・・・ ・ ・ ・ 14 DB内部で分割して管理します 売上日 製品 支店 顧 客 売上 ・・・ 2013/01/03 液晶テレビ 丸の内 井上 憲三郎 ¥83,620 ・・・ 2013/02/12 液晶テレビ 丸の内 椛田正臣 ¥43,380 ・・・ 2013/03/19 炊飯器 神奈川 藤田佳子 ¥96,320 ・・・ 2013年Q1 売上日 製品 支店 顧客名 売上 ・・・ 2013/01/03 液晶テレビ 丸の内 井上 憲三郎 ¥83,620 ・・・ 2013/02/12 液晶テレビ 丸の内 椛田正臣 ¥43,380 ・・・ 2013/03/19 炊飯器 神奈川 藤田佳子 ¥96,320 ・・・ 2013/04/05 携帯電話 井上 あつし ¥43,620 ・・・ ¥155,490 ・・・ ¥265,420 ・・・ ¥35,830 ・・・ 多摩 ・ ・・ ・ ・・ 2013/06/26 腕時計 ・・ ・ ・ ・・ 丸の内 ・・ ・ ・ ・ ・ 松沢惇 ・・ ・ ・ ・ ・ 2013/10/31 電気ポット 埼玉 影山治子 2013/11/20 携帯電話 新潟 山本 健 ・・ ・ ・・ ・ ・・ ・ ・ ・ ・ ・ ・ ・ 売上日 製品 支店 売上 ・・・ 2013/04/05 携帯電話 丸の内 井上 あつし ¥33,620 ・・・ 2013/05/03 液晶テレビ 丸の内 田中 大輔 ¥43,380 ・・・ 2013/06/26 炊飯器 千葉 由 ¥96,320 ・・・ 埼玉 2013年Q2 ・・ ・ ・ ・ ・ ・ ・ ・ 顧 客 売上日 製品 支店 顧 客 売上 ・・・ 2013/10/31 携帯電話 丸の内 影山 治子 ¥83,620 ・・・ 2013/11/20 液晶テレビ 丸の内 山本 健 ¥43,380 ・・・ 2013/12/20 炊飯器 林順 ¥96,320 ・・・ 埼玉 2013年Q4 アプリケーションから見たら 1つの表ですが… 内部的には表を分割して管理します Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 15 表・パーティションの種類 • 単一レベル・パーティション – レンジ・パーティション – リスト・パーティション – ハッシュ・パーティション • コンポジット・パーティション サブ メ イ ン レンジ リスト ハッシュ レンジ 11g 9i 8i リスト 11g 11g 11g • パーティション化の拡張 – インターバル・パーティション – リファレンス・パーティション – バーチャルカラム・パーティション Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 16 レンジ・パーティション リスト・パーティション ハッシュ・パーティション レンジ・パーティション • 値の範囲でデータを分割する 特定の連続するデータ(売上日、ログ取得日 etc)の範囲によって分割 ※パーティションキーが文字の場合、文字の各バイトのバイナリ値の範囲で区切られます 売上表 2013年 1~3月 (orderdate) 2013年 4~6月 (orderdate) 2013年 7~9月 (orderdate) 2013年 10~12月 (orderdate) Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 17 レンジ・パーティション リスト・パーティション ハッシュ・パーティション レンジ・パーティション • レンジ・パーティションのメリット 履歴管理がしやすい パーティション・プルーニングによる範囲検索の高速化 (例) ・ 売上データを日付単位、週単位、月単位で管理 ・ 従業員表の従業員番号など、順序付けられた番号の範囲で管理 ・ アルファベット順に並べられたデータのアルファベットの範囲で管理 売上表 2013年 1~3月 Sales_p1 (orderdate) 2013年 4~6月 Sales_p2 (orderdate) 2013年 7~9月 Sales_p3 (orderdate) 2013年 10~12月 (orderdate) Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Sales_p4 18 レンジ・パーティション リスト・パーティション ハッシュ・パーティション リスト・パーティション • 値の集合でデータを分割する 特定のデータ(製品名、店舗名 etc)のカテゴリーによって分割 売上表 東京 神奈川 大阪 京都 福岡 長崎 宮城 青森 関東パーティション 近畿パーティション 九州パーティション 東北パーティション Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 19 レンジ・パーティション リスト・パーティション ハッシュ・パーティション リスト・パーティション • リスト・パーティションのメリット 不連続な値の集合を管理できる 関連もなく順序づけもされていないデータのセットを、自然な形でグループ化して管 理できる (例) ・ 売上履歴データを支店ごとに管理 ・ 仕入履歴データを商品ごとに管理 ・ ログデータを支社ごとに管理 売上表 東京 神奈川 大阪 京都 関東パーティション 近畿パーティション 福岡 長崎 九州パーティション 宮城 青森 東北パーティション Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 20 レンジ・パーティション リスト・パーティション ハッシュ・パーティション ハッシュ・パーティション • パーティションにデータを均等に配分する 内部的に生成されるハッシュ値を使って、データを分割する 売上表 ハッシュ値1 ハッシュ値2 ハッシュ値3 ハッシュ値4 Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 21 レンジ・パーティション リスト・パーティション ハッシュ・パーティション ハッシュ・パーティション • ハッシュ・パーティションのメリット Partition Size レンジ、リストパーティション データ量に差があるため、 各パーティションサイズが均等ではない P1 1-3月 P2 4-6月 P3 7-9月 P4 10-12月 ハッシュパーティション パラレル プロセス パラレル プロセス パラレル プロセス パラレル プロセス 各パーティションサイズがほぼ均等になる Partition Size パラレルDMLなどのパフォーマンスが最適化できる P1 P2 Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | P3 P4 22 レンジ-リスト・コンポジット・パーティション • レンジ・パーティションをさらにリスト・パーティションに分割 例えば、売上表を「期間」(レンジ)と「地域」(リスト)で分割する リスト・サブパーティション レンジ・パーティション 東京 神奈川 大阪 京都 福岡 長崎 宮城 青森 2013年 1~3月 売上表 (orderdate) 2013年 4~6月 (orderdate) 2013年 7~9月 (orderdate) 2013年 10~12月 (orderdate) Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 23 レンジ-リスト・コンポジット・パーティション • レンジ-リスト・コンポジット・パーティションの使用例 【メンテナンス要件】 – 毎日各支店ごとにデータローディング 【検索要件】 ・ 全支店横断的に検索 ・ 1日単位、1週間単位、1ヶ月単位、 四半期単位などの売上を集計 支店ごとの売上 データの集計 リスト・サブパーティション A支店 B支店 C支店 D支店 レンジ・パーティション 毎日支店ごとに データローディング 2013年 6月1日 (orderdate) 2013年 6月2日 (orderdate) 2013年 6月3日 全支店横断的に検索 (orderdate) 2013年 6月4日 (orderdate) Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 24 レンジ-ハッシュ・コンポジット・パーティション • レンジ・パーティションをさらにハッシュ・パーティションに分割 ハッシュ・サブパーティション ハッシュ値1 ハッシュ値2 ハッシュ値3 ハッシュ値4 レンジ・パーティション 売上表 2013年 4~6月 (date) 2013年 7~9月 (date) 2013年 10~12月 (date) 2014年 1~3月 (date) Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 25 レンジ-ハッシュ・コンポジット・パーティション • レンジ-ハッシュ・コンポジット・パーティションの使用例 • 【メンテナンス要件】 – バッチ処理が頻繁に走る • 【検索要件】 バッチ処理 – 1日、1週間、1ヶ月、四半期単位での範囲指定の検索が必要 ハッシュ・パーティションにより 各パーティションのデータ量が均一の為、 パラレルでのバッチ処理が高速化 パラレル プロセス ハッシュ値1 パラレル パラレル パラレル プロセス ハッシュ値2 ハッシュ値3 ハッシュ値4 ハッシュ・サブパーティション プロセス プロセス レンジ・パーティション 2013年 1~3月 (date) 2013年 10~12月 (date) 2013年 7~9月 (date) 2013年 4~6月 (date) Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 26 レンジ-レンジ・コンポジット・パーティション • レンジ・パーティションを2段階設定 「受注日付」と「出荷日付」のように、時系列データを複数持つ場合に有効 レンジ・サブパーティション レンジ・パーティション 売上表 2013年 4~6月 2013年 7~9月 2013年 10~12月 2014年 1~3月 (shipdate) (shipdate) (shipdate) (shipdate) 2013年 4~6月 (oderdate) 2013年 7~9月 (oderdate) 2013年 10~12月 (oderdate) 2014年 1~3月 (oderdate) Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 27 リスト-レンジ・コンポジット・パーティション • リストとレンジ・パーティションを組み合わせて設定 地域別や担当者別のように不連続値で分割したデータを、 レンジ・サブパーティション さらに時系列で分割する場合に有効 リスト・パーティション 売上表 2013年 4~6月 2013年 7~9月 2013年 10~12月 2014年 1~3月 (oderdate) (oderdate) (oderdate) (oderdate) 東京 神奈川 大阪 京都 福岡 長崎 青森 宮城 Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 28 リスト-リスト・コンポジット・パーティション • リスト・パーティションを2段階設定 地域別、販売チャネル別、担当営業別等、複数の不連続値を複数持つ場合に有効 リスト・サブパーティション 直接販売 間接販売 カタログ販売 ネット 販売 リスト・パーティション 売上表 東京 神奈川 大阪 京都 福岡 長崎 青森 宮城 Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 29 リスト-ハッシュ・コンポジット・パーティション • リストとハッシュ・パーティションを組み合わせて設定 ハッシュ・サブパーティション ハッシュ値1 ハッシュ値2 ハッシュ値3 ハッシュ値4 リスト・パーティション 売上表 東京 神奈川 大阪 京都 福岡 長崎 青森 宮城 Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 30 パーティションの新機能 Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 31 パーティションの新機能 1. 複数パーティションへの対応 2. パーシャル索引 3. グローバル索引メンテナンスの非同期実行 4. インターバル・リファレンス・パーティショニング 5. リファレンス・パーティションの CASCADE 処理 6. オンラインでのパーティションの移動 7. XMLIndex の対応拡張 Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 32 1 複数パーティションへの対応 一つのコマンドで複数パーティションへをメンテナンス 11g 複数のパーティションのメンテナンスは パーティション毎にコマンド実行が必要 12c 複数のパーティションのメンテナンスを 一つのコマンドで一括して実行可能 パーティション表 (ex) 3つのパーティションの削除は DROP PARTITION を3回実行 drop partition Partition P02 drop partition Partition P03 drop partition Partition P04 (ex) 3つのパーティションの削除は DROP PARTITION を1回実行 拡張された処理 DROP / ADD / TRUNCATE / MERGE / SPLIT Partition P01 パーティション表 Partition1 Partition2 drop partition Partition3 Partition4 Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 33 複数パーティションへの一括処理 1 実行コマンドの例 • ADD PARTITION ALTER TABLE parttab ADD PARTITION p11 VALUES LESS THAN (111), PARTITION p12 VALUES LESS THAN (121), PARTITION p13 VALUES LESS THAN (131); • DROP PARTITION ALTER TABLE parttab DROP PARTITION p02, p03, p04; • TRUNCATE PARTITION ALTER TABLE parttab TRUNCATE PARTITION p01, p02, p03; Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 34 複数パーティションへの一括処理 1 実行コマンドの例 • MERGE PARTITION ALTER TABLE parttab MERGE PARTITIONS p11, p12, p13 INTO PARTITION p10; • SPLIT PARTITION ALTER TABLE ( PARTITION PARTITION PARTITION PARTITION parttab SPLIT p10 INTO p11 VALUES LESS THAN (111), p12 VALUES LESS THAN (121), p13 VALUES LESS THAN (131), p14 ); Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 35 2 パーシャル索引 特定のパーティション/サブパーティションに対する索引の作成 • パーシャル索引 – 特定のパーティションのみに作成する索引 アクセス頻度が低い パーティション 未使用だが削除不可な パーティション パーティション表 索引未作成 Partition P01 Partition P02 Partition P03 索引作成 Partition P04 ◆ 索引付けを行わない ・ DISK領域の削減 ・ 統計情報取得時間削減 Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 36 2 パーシャル索引 パーシャル索引とは • パーシャル索引 – パーティション/サブパーティション毎に設定した INDEXING 属性のON / OFF で制御 – 索引作成時に INDEXING PARTIAL を指定 – ローカル索引・グローバル索引の両方で 使用可能 – 索引作成後に、INDEXING 属性を変更する ことも可能 索引未作成 パーティション表 INDEXING OFF Partition P01 INDEXING OFF Partition P02 INDEXING ON Partition P03 INDEXING ON Partition P04 索引作成 • 動的な索引付け・排除が可能 Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 37 2 パーシャル索引 パーシャル索引の作成方法 • パーシャル索引の作成 – パーティション表作成時に INDEXING を指定 – 索引作成時に INDEXING PARTIAL を指定 CREATE TABLE parttab (c1 number, c2 number) PARTITION BY RANGE(c1) (PARTITION p01 VALUES LESS THAN (10001) INDEXING OFF, PARTITION p02 VALUES LESS THAN (20001) INDEXING OFF, PARTITION p03 VALUES LESS THAN (30001) INDEXING ON, PARTITION p04 VALUES LESS THAN (maxvalue)); 索引未作成 パーティション表 INDEXING OFF Partition P01 INDEXING OFF Partition P02 INDEXING ON Partition P03 INDEXING ON Partition P04 索引作成 CREATE INDEX parttab_ind1 ON parttab(c1) LOCAL INDEXING PARTIAL; CREATE INDEX parttab_ind2 ON parttab(c2) GLOBAL INDEXING PARTIAL; Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 38 2 パーシャル索引 パーティション/サブパーティションの指定と索引の指定 • パーティション表、索引での INDEXING 属性指定による 索引の作成状況の違い 索引未作成 索引作成 デフォルト値に依存 パーティション/サブパーティションでの指定 INDEXING OFF 索 引 で の 指 定 INDEXING ON INDEXING 未指定 INDEXING PARTIAL INDEXING FULL INDEXING 指定なし Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 39 3 グローバル索引メンテナンスの非同期実行 DROP/TRUNCATE PARTITION でのグローバル索引のメンテナンス • DROP/TRUNCATE PARTITION 文で UPDATE INDEXES を指定した場合の グローバル索引のメンテナンス処理を非同期に実行 – SYS.PMO_DEFERRED_GIDX_MAINT_JOB のジョブが索引データを更新 – UPDATE INDEXES 未指定時は、11g と同様に索引が UNUSABLE となる drop partition P03 索引データの更新 [ AM 02:00 ] Job drop partition P03 Part P01 Part P02 Part P03 UPDATE INDEXES Global Index ◆ 非同期メンテナンス • メタデータのみ更新 することで高速化 メタデータのみ更新 Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 40 グローバル索引メンテナンスの非同期実行 3 DROP/TRUNCATE PARTITION でのグローバル索引のメンテナンス • 自動メンテナンス – ジョブにより毎日 AM2時にメンテナンス処理を実行 – ジョブのスケジュールの手動での変更は可能 • ジョブの削除は非推奨 • 対象外のケース : 11g と同様の動作となる – オブジェクト型を含む表 – ドメイン索引を含む表 – SYS スキーマの表 • ユーザが新規に作成した表も含む Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 41 グローバル索引メンテナンスの非同期実行 3 DROP/TRUNCATE PARTITION でのグローバル索引のメンテナンス • 手動でのメンテナンス – 一括メンテナンス (DB全体) SQL> EXECUTE DBMS_PART.CLEANUP_GIDX; – スキーマ単位でのメンテナンス SQL> EXECUTE DBMS_PART.CLEANUP_GIDX ('SCOTT'); – 表単位でのメンテナンス SQL> EXECUTE DBMS_PART.CLEANUP_GIDX ('SCOTT', 'PARTTAB'); – 索引単位でのメンテナンス SQL> ALTER INDEX parttab_ind_global COALESCE CLEANUP; – ジョブの実行 SQL> EXECUTE DBMS_SCHEDULER.RUN_JOB('PMO_DEFERRED_GIDX_MAINT_JOB'); Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 42 3 グローバル索引メンテナンスの非同期実行 DROP/TRUNCATE PARTITION でのグローバル索引のメンテナンス • メンテナンス必要性の判断 – *_INDEXES の ORPHANED_ENTRIES 列から確認可能 実行例 SQL> select table_name, index_name,partitioned,status,orphaned_entries from user_indexes; TABLE_NAME INDEX_NAME PARTITIONED STATUS ORPHANED_ENTRIES ---------- ------------------ ----------- -------- ---------------PARTTAB PARTTAB_IND_GLOBAL NO VALID NO メンテナンス不要 SQL> ALTER TABLE parttab TRUNCATE PARTITION p01 UPDATE GLOBAL INDEXES; SQL> select table_name, index_name,partitioned,status,orphaned_entries from user_indexes; TABLE_NAME INDEX_NAME PARTITIONED STATUS ORPHANED_ENTRIES ---------- ------------------ ----------- -------- ---------------メンテナンスが必要 PARTTAB PARTTAB_IND_GLOBAL NO VALID YES Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 43 4 インターバル・リファレンス・パーティショニング リファレンス・パーティションの親表をインターバル・パーティションで作成可 ◆ 親表 Orders 表名 列名 order_id Ordes ◆ リファレンス・パーティション 12c • インターバル・パーティションを 親表とした構成をサポート customer_id 自動的に追加 order_date パーティション・キー ◆ 子表 OrderItems 表名 列名 参照整合性制約 orderitems_fk Y2012Q3 Y2012Q4 order_id OrderItems Y2013Q1 Y2013Q2 自動的に追加 line_item_id product_id quantity パーティション・キー不要 Y2012Q3 Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Y2012Q4 Y2013Q1 Y2013Q2 44 5 リファレンス・パーティションの Cascade 処理 1. CASCADE での TRUNCATE PARTITION ◆ 親表 Orders 表名 列名 order_id Ordes ◆ リファレンス・パーティション 12c • 親表への TRUNCATE 時に 子表への TRUNCATE を自動実行 customer_id TRUNCATE order_date ON DELETE CASCADE ◆ 子表 OrderItems 表名 列名 参照整合性制約 orderitems_fk CASCADE Y2012Q3 Y2012Q4 order_id OrderItems Y2013Q1 TRUNCATE line_item_id product_id quantity Y2012Q3 Y2012Q4 Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Y2013Q1 45 5 リファレンス・パーティションの Cascade 処理 2. CASCADE での EXCHANGE PARTITION 表名 列名 order_id Orders (親表) ◆ リファレンス・パーティション 12c • 親表への EXCHANGE 時に 子表への EXCHANGE を自動実行 customer_id order_date 表名 order_id Y2013Q1_P (親表) 列名 参照整合性制約 Y2013Q1_fk Y2012Q3 Y2012Q4 Y2013Q1 CASCADE 表名 order_id OrderItems (子表) customer_id order_date EXCHANGE 参照整合性制約 orderitems_fk 表名 列名 列名 order_id line_item_id Y2013Q1_S (子表) product_id EXCHANGE quantity Y2012Q3 Y2012Q4 line_item_id product_id quantity Y2013Q1 Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 46 オンラインでのパーティションの移動 6 オンラインでのパーティションの移動 • DML 実行中の ALTER TABLE .. MOVE PARTITION / SUBPARTITION の実行が可能に 実行例 SQL> ALTER TABLE parttab MOVE PARTITION p01 TABLESPACE newtbs ONLINE; SQL> ALTER TABLE parttab MOVE SUBPARTITION p01_s01 TABLESPACE newtbs ONLINE; • 制限 : ONLINE で実行できないケース – 以下の表に対する処理は実行不可 • • • • SYS スキーマの表 索引構成表 オブジェクト型の列を持つヒープ構成表 ビットマップ索引 / ビットマップ結合索引 / ドメイン索引 が作成されている表 – データベースでサプリメンタル・ロギングが設定されている場合 Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 47 7 XMLIndex の対応拡張 XMLIndex 作成可能なパーティショニング・メソッドの追加 • XMLType 表 / XMLType 列を含む表のパーティション化 – ハッシュ / インターバル・パーティションにも XMLIndex の作成が可能に パーティショニング・メソッド 11g 12c レンジ リスト ハッシュ インターバル ◆ XMLType 表 / XMLType 列を含む表のパーティショニング メソッドによる XMLIndex 作成の可否 Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 48 ILMの新機能 ~データの移動・圧縮の自動化~ Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 49 ILM の新機能 ~データの移動・圧縮の自動化~ • Automatic Data Optimization – ILMアクション(圧縮/移動)と、そのアクションをどのタイミングで実行するかをポリ シーとして設定し自動実行 • Heat Map – データへのアクセスパターン、アクセス頻度を記録・管理 Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 50 Automatic Data Optimization とは 概要 • Automatic Data Optimization(以下ADO) では、ILM処理(移動・圧縮)と起動 条件をポリシーとして定義し、ILM処理を自動実行 – 移動は表領域の利用率に応じて実施 – 圧縮はアクセスパターンの変化に応じて実施 – 実施条件は上記のデフォルトの記述方法に加え、PL/SQLファンクション を使ったカスタム条件の利用も可能 • Heat Map機能では、データへのアクセスパターンとそのアクセスが最後に発 生した日時を記録 – ADOポリシーが起動タイミングを自動検知するために利用 Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 51 Automatic Data Optimization とは 動作の仕組み 1 DBA 3 初期化パラメータ HEAT_MAP = ON 圧縮ポリシーの作成 V$HEAT_MAP_SEGMENT SGA ディクショナリー 1時間毎にフラッシュ 2 DB サーバー Real Time ILM処理の登録 Rowレベルポリシー以外 メンテナンス Window DBA_HEAT_MAP_SEGMENTS アクセス統計の収集 移動ポリシーの作成 4 ポリシー 評価・実行 MMON HEAT_MAP_STAT$ 表 15分毎(Rowレベルポリシーのみ) データへのアクセス ステージ⓪ 一般ユーザー ステージ① ステージ② ステージ③ ストレージ 高性能 高性能 低コスト アーカイブ 圧縮 なし OLTP圧縮 HCC圧縮 :クエリー HCC圧縮 :アーカイブ Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 最終ステージ 52 1 Automatic Data Optimization とは 1 DBA 3 初期化パラメータ HEAT_MAP = ON 圧縮ポリシーの作成 V$HEAT_MAP_SEGMENT SGA ディクショナリー 1時間毎にフラッシュ 2 DB サーバー Real Time ILM処理の登録 Rowレベルポリシー以外 メンテナンス Window DBA_HEAT_MAP_SEGMENTS アクセス統計の収集 移動ポリシーの作成 4 ポリシー 評価・実行 MMON HEAT_MAP_STAT$ 表 15分毎(Rowレベルポリシーのみ) データへのアクセス ステージ⓪ 一般ユーザー ステージ① ステージ② ステージ③ ストレージ 高性能 高性能 低コスト アーカイブ 圧縮 なし OLTP圧縮 HCC圧縮 :クエリー HCC圧縮 :アーカイブ Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 最終ステージ 53 Automatic Data Optimization とは 1 ①初期化パラメータの設定 • Heat Map 情報の収集を有効にするためSYSTEMレベルで初期化パラメー タを設定 • この設定により SYSTEM および SYSAUX 表領域以外に格納されているオ ブジェクトへのアクセス追跡を開始 • セッションレベルでも設定可能 – この場合は、アクセス統計の収集(Heat Map機能)のみが有効化/無効化 Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 54 2 Automatic Data Optimization とは 1 DBA 3 初期化パラメータ HEAT_MAP = ON 圧縮ポリシーの作成 V$HEAT_MAP_SEGMENT SGA ディクショナリー 1時間毎にフラッシュ 2 DB サーバー Real Time ILM処理の登録 Rowレベルポリシー以外 メンテナンス Window DBA_HEAT_MAP_SEGMENTS アクセス統計の収集 移動ポリシーの作成 4 ポリシー 評価・実行 MMON HEAT_MAP_STAT$ 表 15分毎(Rowレベルポリシーのみ) データへのアクセス ステージ⓪ 一般ユーザー ステージ① ステージ② ステージ③ ストレージ 高性能 高性能 低コスト アーカイブ 圧縮 なし OLTP圧縮 HCC圧縮 :クエリー HCC圧縮 :アーカイブ Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 最終ステージ 55 Automatic Data Optimization とは 2 ②アクセス統計(Heat Map)の自動収集 • 初期化パラメータ HEAT_MAP=ON の設定レベルによる設定範囲の違い – SYSTEMレベル – SESSIONレベル データ区分 何を? スコープ :ADOの機能も同時に有効化/無効化 :Heat Map機能のみ有効化/無効化 自動検知 アクセスパターンがどうなった時? 起動条件 「売上データ」 へのアクセスパターンと頻度 自動実行 ILM 操作は? アクション Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 56 2 Automatic Data Optimization とは ②Heat Map情報のモニター : セグメント・レベル • DBA_HEAT_MAP_SEGMENT より戻される最終アクセス日時の例 : 最終アクセス日時 : 14 : 00 最終アクセス日時 : 13 : 00 最終アクセス日時 : SYSDATE 最終アクセス日時 : SYSDTAE インスタンス 起動 フラッシュ フラッシュ フラッシュ 12 : 00 13 : 00 14 : 00 15 : 00 セグメントへのアクセス(1回目) 12 : 10 セグメントへのアクセス(2回目) 13 : 30 Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 57 Automatic Data Optimization とは 2 ②Heat Map情報のモニター : セグメント・レベル View によるモニター • DBA_HEAT_MAP_SEG_HISTOGRAM • DBA_HEAT_MAP_SEGMENT • V$HEAT_MAP_SEGMENT Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 58 Automatic Data Optimization とは 2 ②Heat Map情報のモニター : セグメント・レベル • セグメント・レベルの最終アクセス日時 • 1時間毎にV$HEAT_MAP_SEGMENTの情報がDBA_HEAT_MAP_SEGMENTへフラッシュされるため DBA_HEAT_MAP_SEGMENTより戻される最終アクセス日時の値は、最終アクセス後にフラッシュが行われた日時となる • DBA_HEAT_MAP_SEGMENTを問い合わせた時点で、最終アクセス後にフラッシュが実施されていない 場合は問い合わせ時点の日時(SYSDATE)が戻される Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 59 Automatic Data Optimization とは 2 ②Heat Map情報のモニター : ブロック・レベル PL/SQL関数によるモニター • DBMS_HEAT_MAP.BLOCK_HEAT_MAP Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 60 Automatic Data Optimization とは 2 ②Heat Map情報のモニター : エクステント・レベル PL/SQL関数によるモニター • DBMS_HEAT_MAP.EXTENT_HEAT_MAP Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 61 2 Automatic Data Optimization とは ②Heat Map情報のモニター : アクセス・ランキング(表領域・レベル) SQL> SELECT TABLESPACE_NAME, SEGMENT_COUNT 2 , ALLOCATED_BYTES, MAX_WRITETIME 2 , MAX_READTIME, MAX_FTSTIME, MAX_LOOKUPTIME 3 FROM DBA_HEATMAP_TOP_TABLESPACES; TABLESPACE_NAME SEGMENT_COUNT ALLOCATED_BYTES MAX_WRIT MAX_READ -------------------- ------------- --------------- -------- -------HIGH_PERF_TBS 3 33554432 13-06-04 13-06-04 USERS 19 76349440 13-06-04 13-06-03 Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | MAX_FTST -------13-06-04 13-06-04 MAX_LOOK -------13-05-31 13-06-03 62 Automatic Data Optimization とは 2 ②Heat Map情報のモニター : アクセス・ランキング(オブジェクト・レベル) SQL> SELECT OWNER, OBJECT_NAME, SEGMENT_COUNT 2 , OBJECT_SIZE, MAX_WRITETIME, MAX_READTIME 3 , MAX_FTSTIME, MAX_LOOKUPTIME 4 FROM DBA_HEATMAP_TOP_OBJECTS; OWNER ---------ILM ILM ILM MIGUSER MIGUSER MIGUSER MIGUSER OBJECT_NAME SEGMENT_COUNT OBJECT_SIZE MAX_WRIT MAX_READ MAX_FTST MAX_LOOK ------------- ------------- ----------- -------- -------- -------- -------SALES3_PT 2 16 13-06-04 13-06-04 NOTMOVE 1 15 13-06-04 SALES3_PT 2 16 13-06-04 13-06-04 SALGRADE 1 .0625 13-06-03 EMP 1 .0625 13-06-03 DUMMY 1 .0625 13-06-03 DEPT 1 .0625 13-06-03 Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 63 3 Automatic Data Optimization とは 1 DBA 3 初期化パラメータ HEAT_MAP = ON 圧縮ポリシーの作成 V$HEAT_MAP_SEGMENT SGA ディクショナリー 1時間毎にフラッシュ 2 DB サーバー Real Time ILM処理の登録 Rowレベルポリシー以外 メンテナンス Window DBA_HEAT_MAP_SEGMENTS アクセス統計の収集 移動ポリシーの作成 4 ポリシー 評価・実行 MMON HEAT_MAP_STAT$ 表 15分毎(Rowレベルポリシーのみ) データへのアクセス ステージ⓪ 一般ユーザー ステージ① ステージ② ステージ③ ストレージ 高性能 高性能 低コスト アーカイブ 圧縮 なし OLTP圧縮 HCC圧縮 :クエリー HCC圧縮 :アーカイブ Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 最終ステージ 64 3 Automatic Data Optimization とは ③ADOポリシーの作成 • 宣言型ポリシー設定: (圧縮) ALTER TABLE sales ILM ADD POLICY 圧縮タイプ ROW STORE COMPRESS ADVANCED ROW AFTER 3 DAYS OF NO MODIFICATION; 実行レベル 圧縮タイプ 起動タイミング 実行レベル 圧縮タイプの指定 処理対象 (スコープ) アクセスパターン アクセスパターン 起動タイミング アクセスの状態 指定された「アクセ スパターン」となって からの時間 Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 65 3 Automatic Data Optimization とは ③ADOポリシーの作成 • 宣言型ポリシー設定: (圧縮) ALTER TABLE sales ILM ADD POLICY ROW STORE COMPRESS ADVANCED ROW AFTER 3 DAYS OF NO MODIFICATION; 圧縮タイプ 圧縮タイプ • 圧縮タイプの指定 − ROW STORE COMPRESS (Basic 圧縮) − ROW STORE COMPRESS ADVANCED (Advanced Row 圧縮) − COLUMN STORE COMPRESS FOR QUERY LOW/HIGH (HCC Query モード) − COLUMN STORE COMPRESS FOR ARCHIVE LOW/HIGH (HCC Archive モード) Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 66 Automatic Data Optimization とは 3 ③ADOポリシーの作成 • 宣言型ポリシー設定: (圧縮) ALTER TABLE sales ILM ADD POLICY ROW STORE COMPRESS ADVANCED ROW AFTER 3 DAYS OF NO MODIFICATION; 実行レベル 実行レベル • 処理対象(スコープ)の指定 − Tablespace ---> 格納されるオブジェクトのデフォルトとして設定される − Group ---> 対象オブジェクトの索引やLOBも含めてILM 処理を適用する − Segment ---> 表/パーティション/サブパーティション − Row ---> ブロック単位の処理(Advanced Row圧縮のみ指定可能) Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 67 3 Automatic Data Optimization とは ③ADOポリシーの作成 • 宣言型ポリシー設定: (圧縮) ALTER TABLE sales ILM ADD POLICY ROW STORE COMPRESS ADVANCED ROW AFTER 3 DAYS OF NO MODIFICATION; アクセスパターン アクセスパターン • アクセスの状態 − NO MODIFICATION ---> Insert/Updata/Delete が無い − NO ACCESS ---> Insert/Update/Delete/Select が無い − CREATION ---> セグメントの作成 − ・・・ Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 68 Automatic Data Optimization とは 3 ③ADOポリシーの作成 • 宣言型ポリシー設定: (圧縮) ALTER TABLE sales ILM ADD POLICY ROW STORE COMPRESS ADVANCED ROW AFTER 3 DAYS OF NO MODIFICATION; 起動タイミング 起動タイミング • 指定された「アクセスパターン」となってからの時間 − n DAY[s] − n MONTH[s] − n YEAR[s] Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 69 Automatic Data Optimization とは 3 ③ADOポリシーの作成 • 宣言型ポリシー設定: (移動) ALTER TABLE sales ILM ADD POLICY TIER TO Low_Cost_tbs; 移動タイプ 移動先 移動タイプ 移動先 TIER TO のみ 表領域を指定 Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 70 3 Automatic Data Optimization とは ③ADOポリシーの作成 • 宣言型ポリシー設定: (カスタム・ポリシー) ALTER TABLE emp ILM ADD POLICY ROW STORE COMPRESS ADVANCED SEGMENT ON custom_ilm_rules; ユーザー定義のPL/SQL関数を利用 ALTER TABLE sales ILM ADD POLICY TIER TO users ON custom_ilm_rules; PL/SQLを使って起動条件をカスタマイズ Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 71 Automatic Data Optimization とは 3 ③ADOポリシーの作成 • ポリシーの継承 – 表領域に設定されたポリシー • 格納される表・パーティションに継承 (既存の表・パーティションには継承されない) • 表・パーティションに作成されているポリシーが優先 – 表に設定されたポリシー • パーティションに継承 (既存のパーティションにも継承される) • パーティションに作成されているポリシーが優先 Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 72 3 Automatic Data Optimization とは 設定可能な アクション と アクセスパターン の組合せ Acc Pattern No modification Creation No Access Tablespace fullness Custom Policy Act (Scope) Compression(Row) ✔ Compression(Segment) ✔ ✔ Compression(Group) ✔ ✔ Compression(Tablespace) ✔ ✔ ✔ ✔ Storage Tiering(Segment) ✔ Storage Tiering(Tablespace) ✔ Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | ✔ 73 Automatic Data Optimization とは 3 ③ADOポリシーの作成 : 表領域レベル/グループレベル • 表領域レベル : 圧縮ポリシー • グループレベル : 圧縮ポリシー Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 74 Automatic Data Optimization とは 3 ③ADOポリシーの作成 : セグメントレベル/行レベル • セグメントレベル : 圧縮ポリシー • 行レベル : 圧縮ポリシー Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 75 4 Automatic Data Optimization とは 動作の仕組み 1 DBA 3 初期化パラメータ HEAT_MAP = ON 圧縮ポリシーの作成 V$HEAT_MAP_SEGMENT SGA ディクショナリー 1時間毎にフラッシュ 2 DB サーバー Real Time ILM処理の登録 Rowレベルポリシー以外 メンテナンス Window DBA_HEAT_MAP_SEGMENTS アクセス統計の収集 移動ポリシーの作成 4 ポリシー 評価・実行 MMON HEAT_MAP_STAT$ 表 15分毎(Rowレベルポリシーのみ) データへのアクセス ステージ⓪ 一般ユーザー ステージ① ステージ② ステージ③ ストレージ 高性能 高性能 低コスト アーカイブ 圧縮 なし OLTP圧縮 HCC圧縮 :クエリー HCC圧縮 :アーカイブ Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 最終ステージ 76 Automatic Data Optimization とは 4 ④ポリシーの評価・実行 • 自動実行 – MMON(15分毎) – メンテナンスWindow :処理対象が Row のポリシーのみ :処理対象が Row のポリシー以外 • 強制実行 – DBMS_ILM.EXECUTE_ILM( owner object_name task_id subobject_name policy_name execution_mode IN IN OUT IN IN IN VARCHAR2, VARCHAR2, NUMBER, VARCHAR2 DEFAULT NULL, VARCHAR2 DEFAULT ilm_all_policies, NUMBER DEFAULT ilm_execution_online) Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 77 4 Automatic Data Optimization とは ④ポリシーの評価・実行 • DBA_ILMRESULTS SQL> 2 3 4 5 SELECT task_id, policy_name, object_name, subobject_name, selected_for_execution, job_name FROM DBA_ILMEVALUATIONDETAILS WHERE object_name = 'SALES2_PT' ORDER BY task_id; TASK_ID ---------3580 3580 3580 3580 POLICY_NAME --------------P1734 P1734 P1734 P1734 OBJECT_NAME --------------SALES2_PT SALES2_PT SALES2_PT SALES2_PT SUBOBJECT_NAME -------------------SALES2_PT_Q1_2012 SALES2_PT_Q4_2012 SALES2_PT_Q3_2012 SALES2_PT_Q2_2012 SELECTED_FOR_EXECUTION JOB_NAME ------------------------------ ---------SELECTED FOR EXECUTION ILMJOB4762 PRECONDITION NOT SATISFIED PRECONDITION NOT SATISFIED PRECONDITION NOT SATISFIED Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 78 Automatic Data Optimization とは 4 ④ポリシーの評価・実行 • DBA_ILMRESULTS SQL> 2 3 4 5 6 7 8 SSELECT task_id, job_name, job_state ,TRUNC(start_time) start_time ,TRUNC(completion_time) completion_time FROM DBA_ILMRESULTS WHERE job_name IN (SELECT job_name FROM DBA_ILMEVALUATIONDETAILS WHERE object_name = 'SALES2_PT') ORDER BY job_name; TASK_ID JOB_NAME JOB_STATE START_TIME COMPLETION ---------- ------------- ---------------------- ---------- ---------3446 ILMJOB4566 COMPLETED SUCCESSFULLY 13-05-27 13-05-27 Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 79 制限事項 ILM 新機能 の制限事項 • ADO および Heat Map は、CDB/PDB では非サポート • 処理対象が Row のADOポリシーは、Temporal Validity では非サポート • 期間の終端を示す列でパーティション化されているセグメント・レベルのポリシーの場合はサポート • 処理対象が Row のADOポリシーは、In-Database Archiving では非サポート • ただし ORA_ARCHIVE_STATE 列でパーティション化されているセグメント・レベルのポリシーの場合はサポート • カスタム・ポリシー(ユーザー定義の関数利用)は、表領域レベルでは非サポート • ADOは、移動を実施する際、移動先表領域の空き容量をチェックしない • ADOは、オブジェクト型を持つ表やマテリアライズド・ビューでは非サポート • ADOのジョブ実行の同時実行性は、Oracle Scheduler の同時実行性に依存 • ADOのジョブが2回以上失敗した場合、ジョブが無効とされるため、手動メンテナンスが必要 • ADOのポリシー(処理対象が Row 以外)は、メンテナンスWindow のオープン期間内のみで評価・実行 • 期間外でも強制実行は可能 • 移動を行うADOポリシーでは、表や表パーティションのMOVE句と同じ制約を受けます • Temporal Validity は、CDB/PDBでは非サポート Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 80 その他の新機能 Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 81 その他の新機能 • データ圧縮 • OLTP表圧縮の機能拡張 • ネットワーク圧縮 Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 82 データ圧縮 Oracle Advanced Compression • 格納データ量:約1/2から1/3(ストレージ容量の節約) • ディスクI/O量が減り、性能向上 更新処理時間の検証 検索処理時間の検証 検索処理における 処理時間の内訳イメージ 検索の処理時間が 大幅に短縮 非圧縮環境 圧縮環境 更新処理における 処理時間の内訳イメージ 更新のオーバーヘッド もほとんどない 非圧縮環境 ■CPU時間 ■I/O時間 圧縮環境 Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | ■CPU時間 ■I/O時間 83 Advanced Compression • Advanced Compression はOracle 11g 以降で動作 – – – – 全てのタイプのデータ バックアップ 新しいRMAN 圧縮アルゴリズム Data Pump エクスポート Data Guard ギャップ解決とLGWR ASYNC 転送 • リソース要求とコストを削減!!! – ストレージ – パフォーマンス • 一般的に2倍から4倍の圧縮が可能 DML 非圧縮 PCTFREE 到達: 圧縮! さらなるDML 非圧縮 PCTFREE 到達: 圧縮! オーバーヘッド 空き領域 非圧縮 圧縮 Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 84 Advanced Compression • Compression アドバイザ – DBMS_COMPRESSION since Oracle 11.2 – Download for earlier releases http://www.oracle.com/technetwork/database/options/compression/index.html Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 85 Hybrid Columnar Compression (HCC) • Exadata, ZFS とPillar Axiom 600 Storage のみで利用可能 – – – – 追加ライセンス不要 ほとんど変更のない履歴データ用 とても高い圧縮率 動作 • 表はCompression Units (CUs) 内に構造化される – CUs はデータベース・ブロックより大きい • Compression Units 内で、データは行の代わりに列で構造化される – 列の構造は類似の値をすぐ近くに持ってくる、圧縮の拡張 Compression Unit 10x から15x 削減 WP: http://www.oracle.com/technetwork/middleware/bi-foundation/ehcc-twp-131254.pdf Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 86 Oracle Advanced Compression • 構造化または非構造化、バックアップ、ネットワーク、アーカイブおよび Data Guard REDOトランスポート・トラフィックのすべてのデータ型に対して 包括的なデータ圧縮と情報ライフサイクル管理(ILM)機能を提供 利用可能な機能 高度な行圧縮 Data Guard REDOトランスポート圧縮 高度なLOB圧縮 フラッシュバック・データ・アーカイブ履歴表の最適化 高度なLOB重複除外 記憶域スナップショットの最適化 ヒート・マップ オンライン移動パーティション(任意の圧縮形式に対応) 自動データ最適化 RMANバックアップ圧縮 (RMAN DEFAULT COMPRESSにはAdvanced Compressionオプションが不要) 高度なネットワーク圧縮 データ・ポンプのデータ圧縮 (COMPRESSION=METADATA_ONLYにはAdvanced Compressionオプションが不要) Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 87 OLTP表圧縮の機能拡張 1000列までの表に対するサポート • Oracle Database 12cでは、1000列までの表に対して、Advanced Row圧縮が 可能 – Oracle Database 11g R2までは、254列までの表が対象 • 255以上の列が含まれる表は圧縮不可 • OLTP表圧縮を利用したくても、この上限値により適用できないケースも より広範な表の圧縮が可能となり、ストレージコストの削減に寄与 Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 88 ネットワーク圧縮 • Oracle Netのレイヤーでクライアント間での通信データを圧縮する – ネットワークボトルネックが発生した場合の帯域向上 – 通信データを圧縮することにより、ネットワーク帯域の有効活用が可能 データベース 側で圧縮 LAN or WAN Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 89 ネットワーク圧縮 設定方法 • ネットワーク圧縮を有効化するには、サーバーおよびクライアントの sqlnet.oraファイルにいくつかの項目を手動で追加する – 設定を行うパラメータ • SQLNET.COMPRESSION=[ON/OFF/AUTO] – ネットワーク圧縮の有効化を設定する。デフォルトはOFF • SQLNET.COMPRESSION_LEVELS=[HIGH/LOW] – 圧縮のレベルを設定する。デフォルトはLOW • SQLNET.COMPRESSION_THRESHOLD=1024(bytes) – ネットワーク圧縮が行われるデータサイズを設定する。このサイズ以下のデータは圧縮が行われずに送信 される。デフォルトは1024(bytes) Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 90 Flashback Data Archive とは • 従来の Oracle の Flashback Technology を進化させた長期間型の変更履歴貯蓄機能 – 更新処理があった場合、変更履歴を保存 – 履歴の参照には従来のFlashback Query, Flashback Version Queryを使用 – 保存期間・サイズを指定して使用 履歴表(履歴データを格納) Select Update Update Insert Insert Delete Delete emp表 Flashback Data Archive (履歴表を格納する場所) Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 91 Flashback Data Archive とは • バックグランド・プロセス 'FBDA' により、非同期で UNDO から履歴を自動取得 (基本 5 分間隔) • 履歴データは、自動的に圧縮、パーティション化 DML • 保存期間を過ぎた履歴データは自動で削除 • 表名や列名等のスキーマ変更にも対応 Original data in buffer cache – パーティション化により高速な Flashback Query を実現 DML • 履歴データは Read Only となり、改ざんは不可 – FBDA プロセスは、負荷に応じて自動的にスレッドを 作成しパラレル処理を実行 undo Undo data Background (fbda) process help .. 負荷に応じて拡張 emp 表 Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 履歴データ 92 Flashback Data Archive新機能 • In-Database Archiving – オンライン状態を維持したまま通常セッションからはアクセス制限 • 行単位にアーカイブ属性を設定 • アプリケーション性能を犠牲にすることなく、より長期間オンラインで保持 • Temporal Validity – 属性として有効期間を持つデータに対するアクセス制限 • 有効期間を示す列を定義することにより、ある地点で有効なデータを検索することが可能 – ユーザー定義の列に対して設定する – 隠し列として設定する Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 93 まとめ • Oracle Partitioning / Oracle Advanced Compression オプションにより 様々なレベルで 表パーティション、圧縮、移動の設定が可能で 情報ライフサイクル管理(ILM)の自動化が可能 – Automatic Data Optimization – Heat Map機能 Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 94 Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – 95
© Copyright 2024