Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Oracle Advanced Compression and Transparent Data Encryption

Oracle Advanced Compression and Transparent Data Encryption

Oracle DatabaseのAdvanced Compressionによるデータ・ブロックの圧縮とAdvanced SecurityによるTransparent Data Encryptionは特に制限なく組み合わせて使用可能である説明です。

oracle4engineer

February 09, 2021
Tweet

More Decks by oracle4engineer

Other Decks in Technology

Transcript

  1. このセッション Advanced Compression – 圧縮 • データ・ブロック • ネットワーク・データ •

    RMANバックアップ・ファイル • Data Pumpダンプ・ファイル Advanced Security – 正規のクライアントからのみ見える • 透過的データ暗号化 (データ・ブロック) - 列暗号化 - 表領域暗号化 • (ネットワーク・データの暗号化はAdvanced Securityライセンス不要) • RMANバックアップ・ファイル • Data Pumpダンプ・ファイル • Data Redaction Copyright © 2020, Oracle and/or its affiliates
  2. Copyright © 2020, Oracle and/or its affiliates Oracle Databaseの圧縮機能 5

    機能名 対象 用途 基本表圧縮 データ・ブロック(表) データの変更が少ない表やパーティション 接頭辞圧縮 データ・ブロック(索引) 索引 高度な行圧縮 データ・ブロック(表) データの変更が頻繁にある表やパーティション 高度なLOB圧縮と重複削除 データ・ブロック(LOB) DWH環境やOLTP環境における非構造化データ 高度な索引圧縮 データ・ブロック(索引) 索引 高度なネットワーク圧縮 ネットワーク クライアントとサーバーの間の通信データ REDO転送の圧縮 ネットワーク Data Guardのネットワーク通信データ RMANバックアップ圧縮 RMANバックアップ・ファイル 物理バックアップ Data Pumpデータの圧縮 Data Pumpダンプ・ファイル 論理バックアップ 自動データ最適化(ADO)/ヒートマップ データ・ブロック(表) データ配置の最適化 ハイブリッド列圧縮 – ウェアハウス用 データ・ブロック(表) データ変更が少ない表やパーティション、より高い圧 縮で分析クエリを高速化したい場合 ハイブリッド列圧縮 – アーカイブ用 データ・ブロック(表) データの変更が少なく、データの検索も少ない表や パーティション、最も高い圧縮率が実現される Advanced Compression Option Oracle Storage, Exadata
  3. 高度な行圧縮 Advanced Compression ダイレクト・パス・ロードだけでなく、通常INSERTでも表データ・ブロックの圧縮を可能にした • バッファ・キャッシュ上のデータ・ブロックへの通常INSERTでも圧縮可能になった - OLTPアプリケーションでも圧縮可能になった • データ・ブロック内の容量がある閾値を超えるとデータ・ブロック内を圧縮する

    - INSERTのたびに圧縮が発動するのではない - 圧縮が発動したINSERTの処理時間は増加 • データ・ブロックに空き容量が増えるのでより多くの行が格納できる Copyright © 2020, Oracle and/or its affiliates 圧縮発動 容量の閾値 容量の閾値
  4. 表圧縮の設定 高度な表圧縮(ROW STORE COMPRESS ADVANCED)の例 表作成時に設定 CREATE TABLE ... ROW

    STORE COMPRESS ADVANCED ... 途中で切り替えるとそこから追加で格納される行の圧縮動作が変わる ALTER TABLE ... ROW STORE COMPRESS ADVANCED ... ALTER TABLE ... NOCOMPRESS ... 既存のデータの格納状態は変わらない 既存データの格納状態を変更するには移動させる必要がある ALTER TABLE ... MOVE ROW STORE COMPRESS ADVANCED ... ALTER TABLE ... MOVE NOCOMPRESS ... データ量に比例した時間がかかる Copyright © 2020, Oracle and/or its affiliates
  5. 索引圧縮の設定 複合索引のリーフ・ブロックの圧縮 接頭辞圧縮(キー圧縮) 複数列で構成される索引(複合索引)の前方の列(プレフィックス)の重複値を置き換える 圧縮設定時に対象列数を指定 CREATE INDEX idxname ON tabname(col1,

    col2, col3) COMPRESS 2; ALTER INDEX idxname REBUILD COMPRESS 2; ANALYZE INDEX idxname VALIDATE STRUCTUREで事前に適切な列数を分析 高度な索引圧縮(12c Release 1~) 接頭辞圧縮の対象列をリーフ・ブロックごとに自動判断 CREATE INDEX idxname ON tabname(col1, col2, col3) COMPRESS ADVANCED LOW; ALTER INDEX idxname REBUILD COMPRESS ADVANCED LOW; Copyright © 2020, Oracle and/or its affiliates
  6. データ・ブロックの圧縮 同一ブロック内に重複する値があるか Oracle Databaseのデータ・ブロック圧縮機能 データ・ブロックにより多くのデータを格納する機能 圧縮処理自体はCPU時間を消費する データ・ブロックの個数が減ることによるI/O回数減少 → 分析系処理で大きな効果 表ブロックの圧縮

    同じ値を持つ列があるか 基本表圧縮 – ダイレクト・パス・ロードのみ 高度な行圧縮 – 通常INSERTでも可能 索引ブロックの圧縮 複合索引のプレフィックスが同じ値を持つか 接頭辞圧縮 - 圧縮対象のプレフィックス列数を指定 高度な索引圧縮 - リーフ・ブロックごとにプレフィックス列数を自動判断 Copyright © 2020, Oracle and/or its affiliates
  7. Copyright © 2020, Oracle and/or its affiliates 14 圧縮設定はパーティションごとに可能 あまりアクセスしなくなったパーティションを圧縮設定や低コスト・ストレージに移動することも可能

    アクセス頻度を観測し、それを自動化したのが自動データ最適化(Automatic Data Optimization) ヒート・マップ アクセスパターンやアクセス頻度の記録 – ADOポリシーのタイミングを自動検出 自動データ最適化(ADO) ADOポリシーに従ったアクションの自動実行 ADOポリシー =アクション(圧縮や移動)とタイミング(アクションの条件) ヒート・マップによるデータ配置の最適化 データの圧縮と移動を自動化 ADOポリシー ヒートマップ適用 自動検出 自動実行
  8. Copyright © 2020, Oracle and/or its affiliates 15 データの参照および更新頻度を自動的に追跡 自動データ最適化機能との組み合わせによる高度なデータ配置管理を提供

    データの参照や更新の状況を追跡し、情報ライフサイクル管理の基準となるデータを提供 ヒート・マップ 古いデータはまれに参照されるが更新 は一定期間行われていない 直近の過去データは頻繁ではないが参 照され、まれに更新も行われている 頻繁に参照や更新が行われている 時系列でのパーティション
  9. Copyright © 2020, Oracle and/or its affiliates 16 表/表領域単位でポリシーを設定し、データの圧縮やレベル変更を自動化 ヒートマップが取得するデータ操作からの経過時間によりパーティションまたは、表領域のレベルでポリシーの条件を設定

    ヒートマップとの組み合わせによる高度なデータ配置管理を提供 ポリシーに従って自動でデータ配置を最適化 自動データ最適化(ADO) ADO Policy1: 作成から90日後経ったら圧縮 ADO Policy2: 180日以上変更がなければより高い 圧縮率で圧縮 ALTER TABLE sales ILM ADD POLICY ROW STORE COMPRESS ADVANCED SEGMENT AFTER 90 days of creation; ALTER TABLE sales ILM ADD POLICY COLUMN STORE COMPRESS FOR ARCHIVE HIGH SEGMENT AFTER 180 days of no modification; 時系列でのパーティション
  10. Copyright © 2020, Oracle and/or its affiliates 17 Appendix Oracle

    Advanced Compressionに含まれる機能 機能 ライセンスに関する備考 高度な行圧縮 高度なLOB圧縮 高度なLOB重複除外 RMANバックアップ圧縮 RMAN DEFAULTCOMPRESSにはオプションが不要 データ・ポンプのエクスポート・データ圧縮 COMPRESSION=METADATA_ONLYにはオプションが不要 ヒート・マップ 自動データ最適化(ADO) Data Guard REDOトランスポート圧縮 高度なネットワーク圧縮 フラッシュバック・データ・アーカイブ履歴表の最適化 記憶域スナップショットの最適化 オンライン移動パーティション(任意の圧縮形式に対応) Exadataフラッシュ・キャッシュ圧縮 この機能はExadataストレージ・サーバーでのみ有効 アドバンスト索引圧縮 ハイブリッド列圧縮の行レベル・ロッキング Exadata、Oracle Database Appliance、Supercluster、ZFSSA が必要 追加費用オプション: EE、EE-ES 参照: データベース・ライセンス情報ユーザー・マニュアル
  11. Copyright © 2020, Oracle and/or its affiliates 18 Oracle Advanced

    Compression(日本語/英語 ) マニュアル - Release 19c • データベース管理者ガイド(日本語) • RMAN環境の構成: 高度なトピック(日本語) • Oracle LOB記憶域の使用(日本語) • VLDBおよびパーティショニング・ガイド(日本語) - ヒート・マップおよびADOを使用したILM戦略の実装(日本語) • ホワイトペーパー - 概念実証(POC)に関する洞察およびベスト・プラクティス(日本語/英語) • Oracle Advanced Compressionデータシート(日本語/英語) その他技術情報 - 連載 しばちょう先生の試して納得!DBAへの道 連載ページ - Advanced Compression Master Note (Doc ID 1223705.1) Appendix
  12. 20 Data Redaction • 問合せ結果データをリダクション(マスク) • 権限のないユーザーに対してデータが表示されるリスクを 軽減 透過的データ暗号化 •

    データベース層でデータを暗号化 • データベースを迂回して、ストレージから 直接機密データを読み取ることを阻止 データベース内の機密データを暗号化、リダクションにより保護 Oracle Advanced Security Redacted Applications Data Redaction XXXX-XXXX-4368 Disks Exports Backups Transparent Data Encryption Encrypted Storage d$f8#;!90Wz@Yg#3 Copyright © 2020, Oracle and/or its affiliates
  13. Copyright © 2020, Oracle and/or its affiliates 21 透過的データ暗号化 •

    データおよびバックアップデータ等の透過的データ暗号化機能 • Oracle Database内部で暗号/復号処理を行うため、 アプリケーションの変更なし • CPUの持つ暗号化支援命令セットのハードウエア連携により、極めて小 さなオーバーヘッド(Intel Xeon AES-NI / Oracle SPARC) Oracle Data Redaction • アプリケーションのコード改修なく、不必要なデータを ユーザーに見せなくする事が可能 • ユーザーに対しポリシーを設定することで、結果の返し方を設定 • 結果の返し方は伏字/置き換え/ランダム等から選択し、 Enterprise Managerから設定可能 クレジットカード番号 4451-2172-9841-4368 5106-8395-2095-5938 ポリシー xxxx-xxxx-xxxx-4368 4451-2172-9841-4368 データ責任者 業務オペレーター 1 1.01 1.05 暗号化:10GB INSERT時間 暗号化なし TDE(AES-NI) TDE(AES-NIなし) 1 1.03 1.19 復号:10GB SELECT時間 暗号化なし TDE(AES-NI) TDE(AES-NIなし) 1% 3% バッチ処理のオーバーヘッド データベース内の機密データを暗号化、リダクションにより保護 Oracle Advanced Security
  14. Copyright © 2020, Oracle and/or its affiliates 23 stringsコマンドで平文ファイルの中身が見えてしまう •

    OracleソフトウェアのOSユーザーはASMデバイス・ファイルのreadパーミッションを持っている • ストレージのハードウェア盗難 Transparent Data EncryptionはOracleインスタンスの階層でデータベースのファイルを暗号化 • 平文データはメモリの中だけになる • ストレージ機能での暗号化ではOSユーザーからのアクセスを阻止できない データベースにログインする以外の方法からデータが見えるのを阻止 透過的データ暗号化(Transparent Data Encryption) OS root Oracle Grid Infrastructure Oracle Database Storage ストレージのハードウェアにアクセスできる人 OSの特権ユーザー(root) Oracle Grid Infrastructureのインストール・ユーザー(grid) Oracle Databaseのインストール・ユーザー(oracle) OSユーザー ハードウェア
  15. Copyright © 2020, Oracle and/or its affiliates 24 TDEあり データの読み取り不可

    TDEなし 平文データの読み取り可能 データファイルをテキスト・エディタで参照した例 TDEの有無によるデータの見え方
  16. Copyright © 2020, Oracle and/or its affiliates 25 推奨は表領域暗号化 2種類のTransparent

    Data Encryption 列暗号化 (10g Release 2~) 表領域暗号化 (11g Release 1~) 暗号化粒度 表の特定列のみ暗号化 表領域全体を暗号化(データ・ブロック単位) 暗号化・複合化タイミング 暗号化列にアクセスするたび データ・ブロックにI/Oが発生したとき バッファ・キャッシュ内 暗号化 平文(アクセスにオーバーヘッドがない) サイズ増加 する しない データ型 いくつか制限あり BFILEのみ不可(データベース外部だから) データ型サイズ制限 あり なし 索引アクセス B*Treeの一致検索のみ 制限なし CPU暗号化命令アシスト なし あり 制限事項の少なさおよびSQL実行計画に影響しないのは表領域暗号化であるためこちらが推奨
  17. Copyright © 2020, Oracle and/or its affiliates 26 Oracle Databaseアーキテクチャ

    REDOログ・バッファ (暗号化) オンラインREDOログ・ファイル LGWR oracle oracle Oracleサーバー・プロセス ログ・ライター・プロセス データベース・バッファ・キャッシュ (平文) DBWn データベース・ライター・プロセス データファイル REDOログ情報はOracleサー バー・プロセスによって生成され る データ・ブロックはOracleサーバー・ プロセスによってデータファイルから読 まれてバッファ・キャッシュに配置 データ・ブロックはキャッシュされている 間は平文なので暗号化および複合 化オーバーヘッドはない LGWRプロセスがオンライン REDOログ・ファイル書き込み DBWRプロセスがバッファ・キャッシュ からデータ・ファイルに書き戻す
  18. Copyright © 2020, Oracle and/or its affiliates 27 CPUの暗号化命令のアシストで性能オーバーヘッドは数%程度 TDE表領域暗号化:

    どこで暗号化および複合化されるか REDOログ・バッファ (暗号化) オンラインREDOログ・ファイル (暗号化) LGWR oracle oracle Oracleサーバー・プロセス ログ・ライター・プロセス データベース・バッファ・キャッシュ (平文) DBWn データベース・ライター・プロセス データファイル (暗号化) REDOログ情報はOracleサー バー・プロセスによって暗号化さ れる データ・ブロックはOracleサーバー・ プロセスによってデータファイルから読 まれるときに複合化される データ・ブロックはキャッシュされている 間は平文なので暗号化および複合 化オーバーヘッドはない 直列化ポイントであるLGWRプ ロセスは暗号化処理をしない DBWRプロセスがデータファイルに書 くときに暗号化される
  19. Copyright © 2020, Oracle and/or its affiliates 29 マスター暗号鍵設定 •

    マスター暗合鍵のファイル・パス設定と作成 初期化パラメータ ENCRYPT_NEW_TABLESPACE • 新規で作成する表領域を暗号化するか 既存データの暗号化 • データを別の暗号化表領域に移動 - Data Pump - ALTER TABLE ... MOVE TABLESPACE - 表のオンライン再定義 • Encryption Conversion (12c Release 2~) - オフライン暗号化 (11.2.0.4と12.1.0.2にもバックポート) - オンライン暗号化 表領域単位で暗号化 TDE表領域暗号化の導入
  20. Copyright © 2020, Oracle and/or its affiliates 30 Encryption Conversion

    Offline Conversion Online Conversion 使用可能なバージョン 12.2~ 11.2.0.4, 12.1.0.2にもバックポート 12.2~ 使用可能なアルゴリズム AES128のみ TDEで使用可能なすべてのアルゴリズム いつ実行可能か? 表領域がオフラインか DatabaseがMOUNT時 表領域がオンラインか DatabaseがOPEN READ WRITE時 追加のディスク領域が必要か? 必要なし 移行時は、一時的に対象の表領域と同 等のディスク領域が必要 Data Guardを使用している場合 PrimaryとStandbyを手動で conversionする必要がある Primaryをconversionした後は、自動 的にStandby側はconversionされる SYSTEM,SYSAUX,UNDO表領域の暗 号化 12.2~ 12.2~ TEMP表領域の暗号化 作成は可能 (12.2~) 作成は可能 (12.2~)
  21. Copyright © 2020, Oracle and/or its affiliates 31 Encryption Conversion

    Offline Conversion Online Conversion 暗号化された表領域の復号 可能 ただしUNDOを復号することは推奨しない 可能 ただしUNDOを復号することは推奨しない 表領域暗号鍵の再作成や ローテーション 不可 ただし、12.2以降の場合は、Online ConversionのREKEYコマンドが使用可能 可能 パラレル実行 データファイルごとに複数の ユーザーセッションで実行可能 表領域ごとに複数の ユーザーセッションで実行可能 Conversionコマンドが途中で 失敗した場合 暗号・復号を確実にするため 再度コマンドを実行する Finish句をつけたコマンドで 再実行する
  22. Advanced CompressionとTransparent Data Encryption表領域暗号化 圧縮が有効なデータ・ブロックをまるごと暗号化するので組み合わせ可能 Copyright © 2020, Oracle and/or

    its affiliates 値1 1100010010101 0010010100101 0101010101010 0000000111110 1111111110000 0111111111000 0101001010101 データベース・バッファ・キャッシュ 平文の圧縮設定データ・ブロック データファイル 暗号化 暗 号 化 複 合 化