Oracle Database 19cの
注目ポイント
15
2019年07月23日
Copyright ©2019 CO-Sol Inc. All Rights Reserved. |
2
自己紹介+所属会社紹介
•
渡部 亮太(わたべ りょうた)
–
Oracle ACE
(Oracle Database分野、日本に4名)
–
著書「オラクルマスター教科書 Gold
Oracle Database 12c」、「Oracleの基本」、
「プロとしてのOracleアーキテクチャ入門」
–
JPOUG 共同創設者、ボードメンバー
–
ORACLE MASTER Platinum 12c/11g/10g
MySQL OCP 5.6、OSS-DB Gold
(INACTIVE)
•
株式会社コーソル
–
「CO-Solutions=共に解決する」の理念のもと、Oracle技術およ
び仮想化技術に特化した事業を展開中。心あるサービスの提供と
エンジニアの育成に注力している
–
社員数: 134名 (2019年7月時点)
–
ORACLE MASTER Platinum保持者数4年連続日本一
ORACLE MASTER Platinum保持者数 4年連続 No.1
Copyright ©2019 CO-Sol Inc. All Rights Reserved. |
4
3拠点体制
- 24x365/DR/グローバル化のニーズに対応
コーソル紹介
福岡
東京
カナダ
トロント
オラクル製品他各種製品サポート
基幹系DBの運用支援
今日の発表について
•
Oracle Database 19cについて、新機能を中心に個人的
に注目するポイントを15個まとめました。
•
新機能の選択には、渡部の業務上のバイアスがかかって
います
–
例えば、弊社にはインメモリを使用しているお客様はほとんどい
ないため、どうしても選択から外れがちです
•
ごめんなさい、環境および準備時間の関係上、すべての
機能を検証しているわけではありません。
•
紙面と発表時間の関係上、注意点については記載できて
いません。併せてマニュアルを参照ください。
Copyright ©2019 CO-Sol Inc. All Rights Reserved. |
6
19c ≒ 12.2.0.3
Copyright ©2019 CO-Sol Inc. All Rights Reserved. |
8
Long Term Support Releaseのご利益
•
品質が高いことが「期待される」
–
同一リリースファミリー内の最終リリースであるため、品質が高
いことが「期待される」
•
パッチ提供期間が長い
–
Extended Supportの対象であり、その分パッチ提供期間が延長
される
–
Extended Supportは原則有償だが、一定期間 無償のケースが最
近多い
•
将来的にバージョンアップがしやすい
–
直接アップグレードで、アップグレード元バージョンとしてサ
ポートされる可能性が高い
SE-RACのサポート終了
•
10g R1から提供されたSE-RAC(Standard Edition RAC)
が19cでサポート終了
•
SE-RACの普及度が高いため、インパクトは大
–
SE-RACが売れた理由
•
Active-ActiveクラスタとしてのRACの優秀さ
•
低コスト : Enterprise Edition不要 / 有償オプション不要 / クラスタ
ウェア不要 / 共有ファイルシステム不要 / 導入・設計コスト低
•
SE-RACの移行先
–
Enterprise Edition RAC
–
他の高可用ソリューション(基本スタンバイなど)
–
Oracle Cloud Autonomous Database
•
現在オラクル社はStandard EditionユーザーにBYOLでのOracle
Copyright ©2019 CO-Sol Inc. All Rights Reserved. |
12
Copyright ©2019 CO-Sol Inc. All Rights Reserved. |Oracle Fail Safeの非推奨
•
あくまでも「非推奨」であり、「サポート終了」ではありません。
–
サポート終了:×使用不可
–
非推奨: 将来的にサポート終了になる可能性あり
•
Oracle Fail Safeとは
–
Windows環境でHAクラスタ
(共有ディスク型のActive-Standbyクラスタ)
を構築
する製品
–
追加費用が不要なため、小規模かつ可用性が求められるWindows環境で
比較的流行
Oracle Fail Safe
(HAクラスタ)
Active
Oracle RAC
Active
Active
Standby
Copyright ©2019 CO-Sol Inc. All Rights Reserved. |
14
Copyright ©2019 CO-Sol Inc. All Rights Reserved. |RHEL6系Linuxの非サポート
•
Oracle製品では比較的使用されることが多かったRHEL6
系Linuxがとうとう非サポートに
•
RHEL系LinuxのサポートはRHEL7系Linuxのみ
–
Red Hat Enterprise Linux 7
–
Oracle Linux 7
•
ちなみに・・・
長らくOracle Linux 6
(RHEL6系Linux)
を使用してきた
Exadataも、 Oracle Exadata System Software 19.1.0
でOracle Linux 7
(RHEL7系Linux)
に移行済み
Copyright ©2019 CO-Sol Inc. All Rights Reserved. |
16
Copyright ©2019 CO-Sol Inc. All Rights Reserved. |自動索引付け
Automatic Indexing / 自動索引付け
•
アプリケーションが表のどの列にアクセスするかを監視
し、索引を自動的に作成する
•
事前にパフォーマンス検証を行い、性能が実際に向上す
る場合のみ索引が作成される
•
使用されない索引は自動的に削除される
•
Exadata限定の19c新機能
Copyright ©2019 CO-Sol Inc. All Rights Reserved. |
18
Automatic Indexingの動き
SQL
検証の結果、
性能向上するなら
長時間
使用されないなら
2. 不可視索引として作成
3. 可視索引に変更
4. 削除
1. 列へのアクセス状況から
自動索引候補を識別
SQL
SQL
SQLの隔離
Copyright ©2019 CO-Sol Inc. All Rights Reserved. |
20
SQLの隔離 / SQL Quarantine
•
高負荷な実行計画のSQLの実行を早期に抑止する
–
SQL_ID+実行計画ハッシュ値で識別
•
リソースマネージャでCANCEL_SQL対象となる高負荷
SQLを3回実行したときのイメージ
•
いくつかのユースケースをサポート
–
隔離後にしきい値を緩める調整が可能
–
高負荷実行する前に、あらかじめ隔離を構成しておくことが可能
•
Exadata限定の19c新機能
従来
t
リソース
使用
リソース
使用
中断
中断
中断
19c SQLの隔離
t
中断
中断
中断
しきい
値
しきい
値
不適切
実行計画の
SQL実行
リアルタイム統計
Copyright ©2019 CO-Sol Inc. All Rights Reserved. |
22
リアルタイム統計 / Real-Time Statistics
•
通常のDML処理の実行中にオプティマイザ統計を収集す
る
•
重要なオプティマイザ統計のみが収集される
–
Min, Max, Num_rows など
–
ここで収集されないオプティマイザ統計は、従来通り自動オプ
ティマイザ統計収集などで収集
高頻度自動オプティマイザ統計収集
High-Frequency Automatic
Optimizer Statistics Collection
Copyright ©2019 CO-Sol Inc. All Rights Reserved. |
24
高頻度自動オプティマイザ統計収集
•
15分間隔でオプティマイザ統計を収集する
–
収集間隔は変更可能
•
対象: 失効("STALE")したオブジェクト
–
失効とは?: 全データの10%以上が更新された状態
•
Exadata限定の19c新機能
DMLリダイレクション
Active Data Guard DML
Redirection
Copyright ©2019 CO-Sol Inc. All Rights Reserved. |
26
Active Data Guard DML Redirection
•
スタンバイDBでDMLが実行可能に
–
スタンバイDBで発行されたDMLはプライマリDBにリダイレクト
され、プライマリDBでDMLが実行される
–
DDLの実行は原則不可
•
CREATE GLOBAL TEMPOLARY TABLEは例外的にOK
•
スタンバイDBの用途が広がる
–
少量のデータ更新を行うアプリケーションの実行
プライマリ
DB
Active Data Guard スタンバイDB
参照/SELECT
更新/DML
DML Redirection(19c)
更新を伴う
処理を
オフロード
[参考] スタンバイDBで実行可能な処理を拡大する
最近の機能拡張
プライマリ
DB
Active Data Guard スタンバイDB
参照/SELECT
更新/DML
参照/SELECT
Support for DML on
Global Temporary Tables
(12.1)
Private Temporary Tables
(18c)
DML Redirection(19c)
一時表
シーケンス
Support for Sequences(12.1)
Session Sequence (12.1)
レポート
生成に活用
Support for In-Memory (12.2)
Support for SQL Tuning Advisor(12.2)
Support for Diagnostics Pack(12.2)
Support for SPA (11.2.0.4)
更新/DML
Copyright ©2019 CO-Sol Inc. All Rights Reserved. |
28
Copyright ©2019 CO-Sol Inc. All Rights Reserved. |ハイブリッドパーティション表
Hybrid Partitioned Tables
ハイブリッドパーティション表
ハイブリッド
パーティション表
order_hyb
order2016.csv
パーティション1
パーティション2
セグメント1
セグメント2
パーティション3
パーティション4
order2015.csv
テキスト
ファイル
通常の
パーティション
外部表で構成される
パーティション
Copyright ©2019 CO-Sol Inc. All Rights Reserved. |
30
ハイブリッドパーティション表とBig Data SQL
ハイブリッド
パーティション表
order_hyb
パーティション1
パーティション2
セグメント1
セグメント2
パーティション3
パーティション4
HDFS/Hive
Oracle JETベースの
Copyright ©2019 CO-Sol Inc. All Rights Reserved. |
32
Oracle JETベースのEM Express
•
EM ExpressをOracle JETで再実装
–
しかし機能は少ない・・・
•
従来からあるAdobe FlashベースのEM Expressは非推奨
扱いに
ヒント使用状況レポート
Reporting on hint usage
Copyright ©2019 CO-Sol Inc. All Rights Reserved. |
34
ヒント使用状況レポート
•
指定したSQLヒント(/*+ ... */)が適切に使用されてい
るかを表示
SQL> SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR);
SELECT /*+ FULL(tab0) */ t.name FROM tab0 t WHERE id = 1
---| Id ---| Operation ---| Name ---| Rows ---| Bytes ---| Cost (%CPU)---| Time ---|
---| 0 ---| SELECT STATEMENT ---| ---| ---| ---| 1 (100)---| ---|
| 1 | TABLE ACCESS BY INDEX ROWID| TAB0 | 1 | 2004 | 1 (0)| 00:00:01 |
|* 2 | INDEX UNIQUE SCAN | PK_TAB0 | 1 | | 0 (0)| |
---Hint Report
(identified by operation id / Query Block Name / Object Alias):
Total hints for statement: 1 (N - Unresolved (1))
---1 - SEL$---1
N - FULL(tab0) ←★N: ヒントが未解決
Oracleが適用対象を決められなかった ≒ ヒントの指定ミス
実行計画の比較
Copyright ©2019 CO-Sol Inc. All Rights Reserved. |
36
DBMS_XPLAN.COMPARE_PLANS
---| Id ---| Operation ---| Name ---| Rows ---| Bytes ---| Cost ---| Time ---|
---| 0 ---| SELECT STATEMENT ---| ---| ---| ---| 12 ---| ---|
| 1 | NESTED LOOPS | | 10 | 40120 | 12 | 00:00:01 |
| 2 | TABLE ACCESS BY INDEX ROWID | PA | 1 | 2004 | 1 | 00:00:01 |
| * 3 | INDEX UNIQUE SCAN | PK_PA | 1 | | 0 | |
| 4 | TABLE ACCESS BY INDEX ROWID BATCHED | CH | 10 | 20080 | 11 | 00:00:01 |
| * 5 | INDEX RANGE SCAN | IDX_CHPA | 10 | | 1 | 00:00:01 |
---:
---| Id ---| Operation ---| Name ---| Rows ---| Bytes ---| Cost ---| Time ---|
---| 0 ---| SELECT STATEMENT ---| ---| ---| ---| 12 ---| ---|
| 1 | MERGE JOIN CARTESIAN | | 10 | 40120 | 12 | 00:00:01 |
| 2 | TABLE ACCESS BY INDEX ROWID | PA | 1 | 2004 | 1 | 00:00:01 |
| * 3 | INDEX UNIQUE SCAN | PK_PA | 1 | | 0 | |
| 4 | TABLE ACCESS BY INDEX ROWID BATCHED | CH | 10 | 20080 | 11 | 00:00:01 |
| * 5 | INDEX RANGE SCAN | IDX_CHPA | 10 | | 1 | 00:00:01 |
---:
Comparison Results (1):
---1. Query block SEL$1, Alias "PA"@"SEL$1": Some columns (OPERATION, OPTIONS) do
not match between the reference plan (id: 1) and the current plan (id: 1).
権限分析が
Enterprise Editionで使用可能に
Privilege Analysis Now Available in
Oracle Database Enterprise Edition
Copyright ©2019 CO-Sol Inc. All Rights Reserved. |
38
権限分析がEnterprise Editionで使用可能に
•
有償オプションOracle Database Vaultの一部だった
権限分析がEnterprise Editionで使用可能に
–
19cだけでなく、12c、18cでも使用可能(バックポート)
•
権限分析とは
–
実運用中に使用した権限をレポート表示する機能
–
未使用の権限剥奪に有用
(権限最小化の原則)
SQL> SELECT SYS_PRIV, OBJECT_OWNER, OBJECT_NAME, RUN_NAME FROM DBA_USED_PRIVS
WHERE USERNAME = 'APP_USER';
SYS_PRIV OBJECT_OWNER OBJECT_NAME RUN_NAME
--- --- ---
---SYSTEM PRODUCT_PRIVS ANY_PRIV_POL_RUN_1
SYS DUAL ANY_PRIV_POL_RUN_1
SYS DUAL ANY_PRIV_POL_RUN_1
CREATE SESSION ANY_PRIV_POL_RUN_1
SYS DBMS_APPLICATION_INFO ANY_PRIV_POL_RUN_1
READ ANY TABLE HR EMPLOYEES ANY_PRIV_POL_RUN_1
EZCONNECTの指定可能パラメータ
が追加
Copyright ©2019 CO-Sol Inc. All Rights Reserved. |