Oracle SOA Suite Enterprise Service Bus Enterprise Manager Oracle Advanced Compression: ディスクの節約とデータベースの高速化を可能にする包括的な圧縮機能 Oracle integration Product Management Sushil Kumar Vineet Marwah
本書は 弊社の一般的な製品の方向性に関する概要を説明するものです また 情報提供を唯一の目的とするものであり いかなる契約にも組み込むことはできません 本書は マテリアルやコード 機能の提供を確約するものではなく また 購買を決定する際の判断材料とはなりえません オラクルの製品に関して記載されている機能の開発 リリース および時期については 弊社の裁量により決定いたします
アジェンダ データの増加に伴う課題 Oracle Advanced Compression 機能の概要 表の圧縮 非構造化データの圧縮 バックアップの圧縮 Oracle Data Guard によるネットワーク転送時の圧縮 競合分析 Q&A
課題 データ量の急増 政府による規制 ( サーベンス オクスリー法など ) ユーザーが生成するコンテンツ (Web 2.0) アプリケーションの統合 限られたIT 予算で大量のデータへの対応を迫られている ITマネージャーに課せられた課題 ストレージ消費の最適化 許容レベルのアプリケーション パフォーマンス維持 上記の課題への対応を可能にするインテリジェントかつ効率的な圧縮テクノロジーの確保
Oracle Advanced Compression オプションとは Oracle Database 11gで導入された一連の包括的な圧縮機能 構造化データおよびリレーショナル データの圧縮 非構造化データの圧縮 バックアップ データの圧縮 ネットワーク転送時の圧縮 リソース要件とコストを削減 ストレージ システム ネットワーク帯域幅 メモリ使用量
表圧縮 Oracle9i Database Release 2 で導入 バルク ロード処理時の圧縮 ( ダイレクト ロード CTAS) 従来の DML を使用して変更されたデータは圧縮されない リレーショナル データ用に最適化された圧縮アルゴリズム 大量のデータにアクセスする問合せのパフォーマンスを改善 I/O の削減 バッファ キャッシュの効率性向上 データの圧縮はデータベースのブロック レベルで実行 表レベルまたはパーティション レベルでの圧縮が可能 アプリケーションに対して完全に透過的
OLTP の表圧縮 Oracle Database 11g からは OLTP データの表圧縮に対応 従来の DML 操作時の圧縮もサポート (INSERT UPDATE) 書込みオーバーヘッドの大幅な削減を可能にする新しいアルゴリズム バッチ ベースでの圧縮により ほとんどのOLTPトランザクションへの影響を回避 読取りへの影響がない圧縮機能 I/O 削減とメモリ効率向上の結果として 読取りパフォーマンスの改善が可能
OLTP 表圧縮のプロセス 空のブロック 圧縮されていない初期のブロック 圧縮済みのブロック 部分的に圧縮されたブロック 圧縮済みのブロック 説明 ヘッダー データ 非圧縮データ 空き領域 圧縮データ
ブロック レベルでのバッチ圧縮 独自のアルゴリズム ( 特許出願中 ) によりパフォーマンス オーバーヘッドの最小化と圧縮の最大化を実現 個別の INSERT および UPDATE では再圧縮はおこなわれない 圧縮コストが複数の DML 操作に分割 ブロック レベル ( ローカル ) での圧縮により OLTP 環境における頻繁なデータ変更への対応が可能 サイズが固定された静的なディクショナリ表を使用している競合製品では 圧縮のメリットを活かしきれない 業界標準の圧縮アルゴリズムをデータベースにも適用 GZIPやBZ2などの圧縮ユーティリティが 同様の適応性の高いブロック レベルを使用
OLTP の表圧縮 従業員表 圧縮されていない初期のブロック ヘッダー 空き領域
OLTP の表圧縮 従業員表 圧縮済みのブロック ヘッダー 空き領域 ローカルのシンボル テーブル
OLTP の表圧縮 圧縮されていないブロック ヘッダー 圧縮済みのブロック ヘッダー 空き領域 空き領域 ローカルのシンボル テーブル 各ブロックのデータ容量が拡大
表圧縮の構文 OLTP 表圧縮の構文 ダイレクト ロードによる圧縮の構文 ( デフォルト )
OLTP の表圧縮 ベスト プラクティス もっとも大きい表 10 個を圧縮 80 対 20 の法則 使用可能な領域の 80% は 20% の表で消費される ブロック サイズが大きいほど圧縮率が向上 重複値が含まれる可能性が高いため B ツリー索引の圧縮 索引の検証と INDEX_STATS の確認 INDEX_STATS.OPT_CMPR_COUNT INDEX_STATS.OPT_CMPR_PCTSAVE ビットマップ索引に対する高い圧縮率 低 / 中カーディナリティに最適
OLTP の表圧縮 圧縮処理の基礎 Compression Advisor 圧縮されていない表の予測圧縮率を表示 圧縮された表の実際の圧縮率を報告
OLTP の表圧縮 圧縮処理の基礎 圧縮状況の監視 DBA_TABLES COMPRESSION(ENABLED/DISABLED) COMPRESS_FOR(ALL OPERATIONS/DIRECT LOAD
表圧縮の結果
実環境における圧縮の概要 オラクルでおこなったOracleアプリケーション実装からのデータ もっとも大きい10の表を圧縮 各表につき2つのコピー : 圧縮表と非圧縮表 Oracle Enterprise Linux Oracle Database 11g Release 1 問合せのテスト 全表スキャン 索引レンジ スキャン DML 操作 ( 挿入 更新 削除 )
実環境における圧縮の結果 ストレージ使用量 MB 70% 以上のストレージを節減 圧縮なし 圧縮あり
実環境における圧縮の結果 表スキャンのパフォーマンス 時間 ( 秒 ) 2.5 倍の圧縮速度 圧縮なし 圧縮あり
実環境における圧縮の結果 表スキャンの読取り 物理読取り 圧縮時の読取りが 3 分の 1 に減少 圧縮なし 圧縮あり
実環境における圧縮の結果 索引レンジ スキャンのパフォーマンス 時間 ( 秒 ) 索引スキャンのパフォーマンスへの影響なし 圧縮なし 圧縮あり
実環境における圧縮の結果 DML のパフォーマンス 3% 未満の圧縮オーバーヘッド 時間 ( 秒 ) 圧縮なし 圧縮あり
Oracle SecureFiles の概要 データベースでのファイル データ処理を可能にする 11g の新機能 次世代 LOB LOB インタフェースのスーパーセットにより LOB からの移行が簡単に 透過的な非重複 圧縮 および暗号化処理 データベースのもつセキュリティ 信頼性 およびスケーラビリティを活用 ファイル データと関連するリレーショナル データとの統合を実現 単一のセキュリティ モデル 統一されたデータ ビュー データの一元管理 SMP によるスケール アップまたはグリッド ベースのスケール アウトにより あらゆるレベルへの拡張が可能
SecureFiles の非重複機能 セキュアなハッシュ 重複データが単一の物理イメージで保存されるようにする機能 消費領域を大幅に削減 書込みとコピーの操作効率が飛躍的に向上 読取り操作への悪影響を解消 キャッシュ データの読取りパフォーマンスが改善 重複の検出は 表 パーティション またはサブパーティション内で実行 とくにコンテンツ管理 電子メール アプリケーション およびアーカイブ アプリケーションでの使用に威力を発揮
SecureFiles の圧縮機能 ストレージの大幅な節約を実現 業界標準の圧縮アルゴリズム 一般的なファイル (doc pdf xml など ) の場合 2~3 倍の圧縮率 ランダムな読取りと圧縮済み SecureFile データへの書込みが可能 パーティション レベルでの指定が可能 圧縮可能な SecureFile データを自動検出 すでに圧縮されているデータをスキップ 節約できる領域がゼロに近い場合 自動的に圧縮を無効化 2 つの圧縮レベルにより異なる圧縮率をサポート 表圧縮または索引圧縮に依存せず 独立して動作
SecureFiles 圧縮の構文 SecureFiles 圧縮の構文 SecureFiles 非重複の構文
Oracle Data Pump の圧縮機能 Oracle Database 10g 以降はメタデータの圧縮が可能 Oracle Database 11gからはエクスポート時の表データ圧縮にも対応 インポート前の解凍は不要 データとメタデータの両方を単一ステップで圧縮 ディスクに直接アクセスして圧縮済みデータを検出するため 必要なディスク領域が減少 内部テストでは ダンプ ファイル サイズが最大 75% 縮小 GNU gzipユーティリティに匹敵する圧縮係数 アプリケーションに対して透過的 圧縮済みのファイルに対しても Data Pumpの全機能を使用可能
Oracle Data Pump の圧縮機能 パフォーマンス コスト :10% 以下のオーバーヘッド 圧縮率 :gzip に匹敵 圧縮メソッド OE/SH スキーマ 空間表 空間スキーマ
バックアップ圧縮 Oracle Recovery Manager(Oracle RMAN) の高速圧縮機能 ディスクまたはテープへの書込み前にバックアップ セットの内容を圧縮 Oracle RMANの圧縮を使用している場合 リカバリ時に追加の解凍手順が不要 業界標準の高性能圧縮アルゴリズム Oracle Database 10gと比べて40% 速いバックアップ圧縮 迅速さが求められる日次増分バックアップに最適 ネットワーク使用量を削減
バックアップ圧縮の構文 Oracle RMAN 高速圧縮機能の構成 Oracle RMAN による圧縮の構文 Oracle Data Pump の構文
Oracle RMAN による圧縮の結果
Oracle RMAN による圧縮の概要 オラクルでおこなったOracleアプリケーション実装からのデータ 3.5GBデータベース Oracle Enterprise Linux Oracle Database 11g Release 1 テスト1: 低速 I/O(16MB/ 秒 ) Oracle RMAN 11g 圧縮未使用 Oracle RMAN 10g 圧縮使用 Oracle RMAN 11g 高速圧縮使用 テスト2: 高速 I/O(200MB/ 秒 ) Oracle RMAN 11g 圧縮未使用 Oracle RMAN 10g 圧縮使用 Oracle RMAN 11g 高速圧縮使用
バックアップ圧縮の結果 バックアップ サイズの比較 GB 圧縮によりバックアップ サイズが 6 分の 1 に減少 圧縮なし 10g による圧縮 11g による圧縮
バックアップ圧縮 低速 I/O( テープ ) でのバックアップ速度の比較 11g の圧縮ではバックアップ時間がほぼ 3 分の 1 に短縮 時間 ( 秒 ) 圧縮なし 10g による圧縮 11g による圧縮
バックアップ圧縮 低速 I/O( テープ ) でのバックアップ速度の比較 11g の圧縮速度は 10g のほぼ 2.5 倍 時間 ( 秒 ) 圧縮なし 10g による圧縮 11g による圧縮
バックアップ圧縮 高速 I/O( ディスク ) でのバックアップ速度比較 時間 ( 秒 ) 11g の圧縮速度は 10g のほぼ 2.5 倍 圧縮なし 10g による圧縮 11g による圧縮
Oracle Data Guard プライマリ データベース Data Guard スタンバイ データベース REDO 送信 REDO 送信 ネットワークを介してプライマリからスタンバイに REDO データを送信 通常 REDO データのサイズは小規模 ( トランザクション ベース ) で ネットワークによる制限は受けない ギャップの解消 ネットワーク停止後 スタンバイの再同期を実行 REDO データのサイズが通常よりも大きい
ネットワーク圧縮 Oracle Data Guard REDO 転送サービス ネットワーク停止後のスタンバイ データベースにおける高速再同期が可能 低い帯域幅のネットワーク (100Mbps 未満 ) 1GBのデータ転送に必要な時間を15~35% 短縮 帯域幅の消費を最大 35% 削減 高い帯域幅のネットワーク (100Mbps 超 ) 圧縮による転送時間の短縮なし 帯域幅の消費は最大 35% 削減
競合分析
競合分析 IBM DB2 ブロック レベルでの圧縮 - 適応型の動的な圧縮 - 無制限の圧縮値 解凍時のオーバーヘッドなし - 最小の圧縮オーバーヘッド - バッチ ベースの圧縮 索引圧縮 非構造化データの圧縮と非重複 (SecureFiles) 表 / パーティション レベルの圧縮ディクショナリ - 新規データが圧縮されない可能性あり / オフラインで再構築されるシンボル テーブル - 表ごとに最大 4,000 の値 解凍時に若干のオーバーヘッドあり - 圧縮オーバーヘッドが大きい - トランザクション ベースの圧縮 なし なし
競合分析 IBM DB2 圧縮を使用しない場合でも Oracle のほうが DB2 よりも必要なディスク領域が少ない Oracle では数値に対して可変長のデータ型を使用 DB2 では固定長を使用 DB2 では VARCHAR データに対するオーバーヘッドが大きい Oracle に保存した場合 SAP BW(Business Information Warehouse) のデータに必要なディスク領域が 30~50% 減少
競合分析 Teradata ブロック レベルでの圧縮 - 動的な圧縮値 - 無制限の値 フィールド レベルでの圧縮 - 管理者による圧縮値の定義が必要 - 最大 255 の圧縮値 あらゆるデータ型をサポート - 最小の圧縮オーバーヘッド - バッチ ベースの圧縮 バックアップ圧縮機能あり 非構造化データの圧縮と非重複 (SecureFiles) サポート対象のデータ型に制限あり - 圧縮オーバーヘッドが大きい -トランザクション ベースの圧縮 なし なし
競合分析 ハードウェア ベースの圧縮 データベース固有の圧縮アルゴリズム 粒度の細かい圧縮機能 - 表領域 表 またはパーティション レベルでの圧縮が可能 複数のケースで読取りパフォーマンスが向上 解凍時のオーバーヘッドがないため メモリ効率の改善 - メモリ内でもデータが圧縮されているため ハードウェアでの圧縮 一般的な圧縮アルゴリズム データベース用としては不十分 粒度の荒い圧縮機能 ファイル レベルで圧縮 読取りパフォーマンスが低い - 解凍時のオーバーヘッドが大きいため メモリ効率の改善効果なし データの解凍が必要なため 圧縮オーバーヘッドを最小限に抑えるバッチ ベースのアルゴリズム あらゆる環境に自動的にカスケード可能 データ更新コストが非常に高い 圧縮機能の有効性が特定のハードウェア環境に限られている
競合分析 Oracle と競合製品の比較 :ERP アプリケーションでの最大の表 10 個に対する圧縮 サイズ (MB) Oracle 圧縮なし 競合製品圧縮なし Oracle 圧縮あり 競合製品圧縮あり
まとめ Oracle Advanced Compression オプションでは あらゆるデータ型に対応可能な包括的なデータ圧縮機能を提供 構造化データ 非構造化データ バックアップ データ ネットワーク転送に対応 ストレージ消費を2 分の1から4 分の1に削減 読取りパフォーマンスを改善 メモリおよびバッファ キャッシュの使用効率を改善 アプリケーションに対して完全に透過的 さまざまなアプリケーション ワークロードをサポート