Slide 1

Slide 1 text

Oracle Database 19c勉強会 Advanced Compression & Advanced Security 日本オラクル株式会社 日下部明 2020年8月25日

Slide 2

Slide 2 text

Safe harbor statement 以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、情報提供を唯一の目的とする ものであり、いかなる契約にも組み込むことはできません。以下の事項は、マテリアルやコード、機能を提供することを確約 するものではないため、購買決定を行う際の判断材料になさらないで下さい。 オラクル製品に関して記載されている機能の開発、リリース、時期及び価格については、弊社の裁量により決定され、変 更される可能性があります。 Copyright © 2020, Oracle and/or its affiliates

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

Advanced Compression

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

データ・ブロックを対象とした圧縮 Oracle Databaseの圧縮は1つのデータ・ブロックにより多くのデータを格納する機能 その結果、必要なデータ・ブロックの個数が減る データ・ブロックのサイズがストレージ上で小さくなる機能ではない zipのようなファイルを圧縮する機能にあらず Copyright © 2020, Oracle and/or its affiliates 非圧縮データ・ブロック 圧縮データ・ブロック 圧縮

Slide 7

Slide 7 text

データ・ブロックの圧縮 同一データ・ブロック内に同じ値があることが重要 圧縮処理とは: 1.同じ値の探索 2.短い符号へ置き換えて詰める 圧縮処理はCPU時間をそれなりに消費する データ・アクセスは同一ブロック内のポインタをたどるだけなのでオーバーヘッドはほとんどない 分析処理の対象になるような表には同じ値が繰り返し現れることが期待される 50%から25%くらいになる→大量にI/Oを発行する分析処理で大きな効果 重複する列の値が極めて少ないことがわかっている表ならば圧縮機能は無効に 値が重複しないなら圧縮が効かないので探索処理が無駄 Copyright © 2020, Oracle and/or its affiliates 値1 値1 値1 圧縮

Slide 8

Slide 8 text

基本表圧縮 Advanced Compressionライセンス不要 ダイレクト・パス・ロードのときに圧縮状態の表データ・ブロックを作成する 通常INSERTでは圧縮不可 圧縮にかかる時間分ロード時間は大幅増加 (何度も実行する)SELECTの時間が減少する 用途はデータ・ウェアハウスなどの一度INSERTされたら更新されない表データの作成 ダイレクト・パス・ロード SGAのデータベース・バッファ・キャッシュ上でデータ・ブロックを操作するのではなく、PGA上でデータ・ブロックを作 成しデータ・ファイルに直接書き込む 大量のINSERTをするときに使用する CREATE TABLE ... AS SELECT INSERT /*+APPEND */ INTO ... SELECT Copyright © 2020, Oracle and/or its affiliates

Slide 9

Slide 9 text

高度な行圧縮 Advanced Compression ダイレクト・パス・ロードだけでなく、通常INSERTでも表データ・ブロックの圧縮を可能にした • バッファ・キャッシュ上のデータ・ブロックへの通常INSERTでも圧縮可能になった - OLTPアプリケーションでも圧縮可能になった • データ・ブロック内の容量がある閾値を超えるとデータ・ブロック内を圧縮する - INSERTのたびに圧縮が発動するのではない - 圧縮が発動したINSERTの処理時間は増加 • データ・ブロックに空き容量が増えるのでより多くの行が格納できる Copyright © 2020, Oracle and/or its affiliates 圧縮発動 容量の閾値 容量の閾値

Slide 10

Slide 10 text

表圧縮の設定 高度な表圧縮(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

Slide 11

Slide 11 text

索引圧縮 複合索引のリーフ・ブロックの圧縮 接頭辞圧縮(キー圧縮) 複数列で構成される索引(複合索引)の前方の列(プレフィックス)の重複値を置き換える 圧縮設定時に対象列数を指定 高度な索引圧縮(12c Release 1~) 接頭辞圧縮の対象列をリーフ・ブロックごとに自動判断 Copyright © 2020, Oracle and/or its affiliates 値1 値1 値1 値1 値2 値3 値4 値5 列1 列2 値1 値2 値3 値4 値5 列1 列2 圧縮

Slide 12

Slide 12 text

索引圧縮の設定 複合索引のリーフ・ブロックの圧縮 接頭辞圧縮(キー圧縮) 複数列で構成される索引(複合索引)の前方の列(プレフィックス)の重複値を置き換える 圧縮設定時に対象列数を指定 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

Slide 13

Slide 13 text

データ・ブロックの圧縮 同一ブロック内に重複する値があるか Oracle Databaseのデータ・ブロック圧縮機能 データ・ブロックにより多くのデータを格納する機能 圧縮処理自体はCPU時間を消費する データ・ブロックの個数が減ることによるI/O回数減少 → 分析系処理で大きな効果 表ブロックの圧縮 同じ値を持つ列があるか 基本表圧縮 – ダイレクト・パス・ロードのみ 高度な行圧縮 – 通常INSERTでも可能 索引ブロックの圧縮 複合索引のプレフィックスが同じ値を持つか 接頭辞圧縮 - 圧縮対象のプレフィックス列数を指定 高度な索引圧縮 - リーフ・ブロックごとにプレフィックス列数を自動判断 Copyright © 2020, Oracle and/or its affiliates

Slide 14

Slide 14 text

Copyright © 2020, Oracle and/or its affiliates 14 圧縮設定はパーティションごとに可能 あまりアクセスしなくなったパーティションを圧縮設定や低コスト・ストレージに移動することも可能 アクセス頻度を観測し、それを自動化したのが自動データ最適化(Automatic Data Optimization) ヒート・マップ アクセスパターンやアクセス頻度の記録 – ADOポリシーのタイミングを自動検出 自動データ最適化(ADO) ADOポリシーに従ったアクションの自動実行 ADOポリシー =アクション(圧縮や移動)とタイミング(アクションの条件) ヒート・マップによるデータ配置の最適化 データの圧縮と移動を自動化 ADOポリシー ヒートマップ適用 自動検出 自動実行

Slide 15

Slide 15 text

Copyright © 2020, Oracle and/or its affiliates 15 データの参照および更新頻度を自動的に追跡 自動データ最適化機能との組み合わせによる高度なデータ配置管理を提供 データの参照や更新の状況を追跡し、情報ライフサイクル管理の基準となるデータを提供 ヒート・マップ 古いデータはまれに参照されるが更新 は一定期間行われていない 直近の過去データは頻繁ではないが参 照され、まれに更新も行われている 頻繁に参照や更新が行われている 時系列でのパーティション

Slide 16

Slide 16 text

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; 時系列でのパーティション

Slide 17

Slide 17 text

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 参照: データベース・ライセンス情報ユーザー・マニュアル

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

Oracle Advanced Security

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

ストレージ・データの暗号化 Transparent Data Encryption

Slide 23

Slide 23 text

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ユーザー ハードウェア

Slide 24

Slide 24 text

Copyright © 2020, Oracle and/or its affiliates 24 TDEあり データの読み取り不可 TDEなし 平文データの読み取り可能 データファイルをテキスト・エディタで参照した例 TDEの有無によるデータの見え方

Slide 25

Slide 25 text

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実行計画に影響しないのは表領域暗号化であるためこちらが推奨

Slide 26

Slide 26 text

Copyright © 2020, Oracle and/or its affiliates 26 Oracle Databaseアーキテクチャ REDOログ・バッファ (暗号化) オンラインREDOログ・ファイル LGWR oracle oracle Oracleサーバー・プロセス ログ・ライター・プロセス データベース・バッファ・キャッシュ (平文) DBWn データベース・ライター・プロセス データファイル REDOログ情報はOracleサー バー・プロセスによって生成され る データ・ブロックはOracleサーバー・ プロセスによってデータファイルから読 まれてバッファ・キャッシュに配置 データ・ブロックはキャッシュされている 間は平文なので暗号化および複合 化オーバーヘッドはない LGWRプロセスがオンライン REDOログ・ファイル書き込み DBWRプロセスがバッファ・キャッシュ からデータ・ファイルに書き戻す

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

TDE表領域暗号化のオーバーヘッド CPUの暗号化支援命令により処理時間全体に占めるオーバーヘッドは小さい オンライン・トランザクション処理 REDOログ暗号化はSQL処理を行うOracleサーバー・プロセスが行うので複数CPUに分散される データ・ブロックをストレージから読んでバッファ・キャッシュに配置するとき複合化される バッファ・キャッシュにキャッシュされている間は平文なのでアクセスにオーバーヘッドはない DBWRプロセスによるデータ・ブロック書き戻し処理は基本的にSQL実行時間とは関係ない ⇒ オーバーヘッドは数% バッチ処理(大量更新) 1つのOracleサーバー・プロセスで大量更新処理するときのREDOログ暗号化のオーバーヘッド 分析処理(大量読み込み) 1つのOracleサーバー・プロセスで大量データ・アクセスするときのストレージ読み込み時の複合化オーバーヘッド パラレル処理で複数CPUに複合化オーバーヘッドを分散する Copyright © 2020, Oracle and/or its affiliates

Slide 29

Slide 29 text

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表領域暗号化の導入

Slide 30

Slide 30 text

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~)

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

Advanced CompressionとTransparent Data Encryption表領域暗号化 圧縮が有効なデータ・ブロックをまるごと暗号化するので組み合わせ可能 Copyright © 2020, Oracle and/or its affiliates 値1 1100010010101 0010010100101 0101010101010 0000000111110 1111111110000 0111111111000 0101001010101 データベース・バッファ・キャッシュ 平文の圧縮設定データ・ブロック データファイル 暗号化 暗 号 化 複 合 化

Slide 33

Slide 33 text

Transparent Data Encryption 表領域暗号化 表領域暗号化 表領域単位で暗号化を設定 データ・ブロックまるごと暗号化するのでデータ・ブロック内の構造に制限がない CPUの暗号化支援命令による極めて小さなオーバーヘッド Oracle Cloud Infrastructure Database Cloud ServiceではTDE表領域暗号化されている Standard Editionでも!(OCI特別仕様) Copyright © 2020, Oracle and/or its affiliates

Slide 34

Slide 34 text

No content