platinumホルダーが選ぶ! 現場で役立つoracle...

52
Copyright © 2018 CO-Sol Inc. All Rights Reserved. 1 Copyright © 2018 CO-Sol Inc. All Rights Reserved. Platinumホルダーが選ぶ! 現場で役立つOracle Database 18c新機能 2018年9月21日 株式会社コーソル 五十嵐 一俊

Upload: others

Post on 18-Apr-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 1Copyright © 2018 CO-Sol Inc. All Rights Reserved.

Platinumホルダーが選ぶ!現場で役立つOracle Database

18c新機能

2018年9月21日株式会社コーソル 五十嵐 一俊

Page 2: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 2

自己紹介+所属会社紹介

五十嵐 一俊(いがらし かずとし)– Oracle Exadata のDBA業務に従事

– ORACLE MASTER Platinum 12c保持

– 執筆記事「コーソルOracleスペシャリストがチェック!Oracle Database 12c R2新機能」http://www.oracle.com/technetwork/jp/database/articles/cosol-db12cr2/index.html

株式会社コーソル– 「CO-Solutions=共に解決する」の理念のもと、Oracle技術に特

化した事業を展開中。心あるサービスの提供とデータベースエンジニアの育成に注力している

– 社員数: 137名 (2018年9月時点)

– ORACLE MASTER Platinum 11g 取得者数 56名ORACLE MASTER Platinum 12c 取得者数 41名取得者数 日本 No.1 (日本オラクル様Webページより)http://www.oracle.com/jp/education/omdata-171891-ja.html

Page 3: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 3

今日の発表について

• Oracle Databaseを日々愛用(酷使)するコーソルの12c Platinum保持エンジニアから見て、知っておいた方がよさそうな機能、地味ながら役に立ちそうな18c新機能をご紹介します。

• 弊社では、大小さまざまな規模のお客様に対してプロフェッショナルサービスを提供しています。このため、様々なカテゴリごとにまんべんなくチェックいたしました。

• 今日の内容が、皆さんの今後のお役に立てば、また、現場での会話のネタになれば幸いです。

Page 4: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 4

今回ご紹介する機能

カテゴリ ご紹介する機能

Install RPM-based Database InstallationRead-Only Oracle Home

Maintenance Online Merging of Partitions and SubpartitionsShadow Lost Write ProtectionAbility to Encrypt Sensitive Credential Data in the Data Dictionary

Performance Scalable SequencesPrivate Temporary Tables

Utility SQL*Plus Display the sql_id for a querySQL*Plus Set the number of rows displayed for a querySQL*Plus Dynamically change the output display to fit the screen size

Multitenant Ability to Create a Keystore for Each Pluggable DatabaseRMAN duplicate PDB into existing CDB

Data Guard Copying a PDB in an Oracle Data Guard EnvironmentAutomatic Correction of Non-logged Blocks at a Data Guard Standby Database

Page 5: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 5

18c新機能をご紹介する前に

Oracle Database製品 略称 製品タイプ

Oracle Database Standard Edition 2 SE2

オンプレミスOracle Database Enterprise Edition EE

エンジニアド・システム上のOracle Database Enterprise Edition

EE-ES

Oracle Database Cloud Service Standard Edition DBCS SE

クラウド

Oracle Database Cloud Service Enterprise Edition DBCS EE

Oracle Database Cloud Service Enterprise Edition -High Performance

DBCS EE-HP

Oracle Database Cloud Service Enterprise Edition -Extreme Performance

DBCS EE-EP

Oracle Database Exadata Cloud Service ExaCS

Oracle Database製品一覧

Page 6: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 6

18c新機能をご紹介する前に

Oracle Database製品ごとにおける各機能の使用可否

紹介機能一覧

オンプレミス クラウド

SE2 EE EE-ESDBCS

SEDBCS

EEDBCSEE-HP

DBCSEE-EP

ExaCS

1 RPM-based Database Installation 〇 〇 〇 〇 〇 〇 〇 〇

2 Read-Only Oracle Home 〇 〇 〇 〇 〇 〇 〇 〇

3 Online Merging of Partitions and Subpartitions × 〇(※) 〇(※) × × 〇 〇 〇

4 Shadow Lost Write Protection × 〇 〇 × 〇 〇 〇 〇

5Ability to Encrypt Sensitive Credential Data in the Data Dictionary

〇 〇 〇 〇 〇 〇 〇 〇

6 Scalable Sequences 〇 〇 〇 〇 〇 〇 〇 〇

7 Private Temporary Tables 〇 〇 〇 〇 〇 〇 〇 〇

8 SQL*Plus Display the sql_id for a query 〇 〇 〇 〇 〇 〇 〇 〇

9 SQL*Plus Set the number of rows displayed for a query 〇 〇 〇 〇 〇 〇 〇 〇

10SQL*Plus Dynamically change the output display to fit the screen size

〇 〇 〇 〇 〇 〇 〇 〇

11 Ability to Create a Keystore for Each Pluggable Database × × 〇(※) × × 〇 〇 〇

12 RMAN duplicate PDB into existing CDB × 〇(※) 〇(※) × × 〇 〇 〇

13 Copying a PDB in an Oracle Data Guard Environment × 〇(※) 〇(※) × × × 〇 〇

14Automatic Correction of Non-logged Blocks at a Data Guard Standby Database

× × 〇(※) × × × 〇 〇

※別途、追加オプションが必要

Page 7: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 7Copyright © 2018 CO-Sol Inc. All Rights Reserved.

Install

Page 8: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 8

RPM-based Database Installation

RPMパッケージをインストールするだけでDBが使用可能

• RPMパッケージをインストールするのみでDBが使用できる

– Linuxのみでサポート

• 以下の操作を実施してくれる模様

– インストールの最小前提条件チェック

– ソフトウェアの自動インストール

– DBの作成

• マニュアルには記載があるものの、いまだダウンロードできず…

https://docs.oracle.com/cd/E96517_01/ladbi/about-rpm-based-oracle-database-installation.html

Page 9: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 9

Read-Only Oracle Home

運用中に更新されるファイルをOracleホームから分離

• 従来のOracleホームには以下の運用中に更新されるファイルが配置されていた– 初期化パラメータファイル

– パスワードファイル

– Oracle Net設定ファイルなど

• OracleホームをRead-Onlyとして構成すると、運用中に更新されるファイルがOracleホームの外部に配置される– 具体的にはORACLE_BASE以下のORACLE_BASE_HOME、

ORACLE_BASE_CONFIG(詳細は次スライド)

• Oracleホームに含まれるファイルは運用中に更新されないことが保証される

• パッチ適用≒Oracleホームの差し替えという運用が可能になる

Page 10: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 10

Read-Only Oracle Home

ORACLE_BASE• データベースファイル• ログファイル

ORACLE_HOME• プログラム類• 初期化パラメータファイル• パスワードファイル• Oracle Net設定ファイルなど

ORACLE_BASE• データベースファイル• ログファイル

ORACLE_HOME• プログラム類

ORACLE_BASE_HOME/<ホーム名>• Oracle Net設定ファイルなど

ORACLE_BASE_CONFIG• 初期化パラメータファイル• パスワードファイル

従来のファイル構成

Read-Only Oracle Homeのファイル構成

通常の運用で更新されるファイルがなくなったため、

読み取り専用化可能に

Page 11: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 11

Read-Only Oracle Home

クラウド環境でのパッチ適用の効率化

ORACLE_BASE ORACLE_HOME

ORACLE_BASE_HOME/<ホーム名>

ORACLE_BASE_CONFIG

ORACLE_HOME(18.3)

ORACLE_HOME(18.4)

デタッチ

アタッチ

Page 12: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 12Copyright © 2018 CO-Sol Inc. All Rights Reserved.

Maintenance

Page 13: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 13

Online Merging of Partitions and Subpartitions

パーティションのオンライン結合が可能に

• オンラインでの実行が可能≒表パーティションに対するDML操作を同時に実行可能

• パーティションメンテナンスがより柔軟になった

• 制限事項

– テーブルが索引構成表の場合やローカルドメイン索引が定義されている場合は、一度にマージできるパーティションは2つのみ

• コマンド実行例

ALTER TABLE <TABLE_NAME>MERGE PARTITIONS part1, part2INTO PARTITION part6 ONLINE;

Page 14: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 14

[おさらい] オンライン可能なパーティション操作

オンライン可能なパーティション操作一覧

主なパーティション操作

各versionごとのオンライン操作可否

~12.1 12.2~ 18.1~

追加(add) × × ×

削除(drop) × × ×

分割(split) × 〇 〇

移動(move) × 〇 〇

結合(merge) × × 〇

変更(modify) × × 〇

※各オンライン操作時の制限事項についてはマニュアルを参照

18c NEW

Page 15: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 15

Shadow Lost Write Protection

Lost Write検知用の特殊な表領域(シャドウ表領域)を用意

• シャドウ表領域には、SCNが記録される

• Lost Writeが発生すると、データファイルのブロックのSCNと、シャドウ表領域のSCNが異なる値になるため、Lost Writeの検知が可能

[おさらい] 各versionのLost Write検知機能

version Lost Write検知機能

~10.2 なし

11.1~ DB_LOST_WRITE_PROTECT=TYPICAL or FULLで検知可能。ただしフィジカルスタンバイDBが必要。

18.1~ シャドウ表領域を構成し、シャドウ消失書込み保護を有効を有効にすると検知可能。(フィジカルスタンバイDBがなくてもOK)

Page 16: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 16

Shadow Lost Write Protection

Lost Writeとは

正常な書き込み処理

Oracle OSなど データファイル

SCN=10

SCN=20

write()

OK OK

Lost Write(書き込み異常)

Oracle OSなど

SCN=20

SCN=10

write()

OK

Lost!

SCN : Oracle内部のタイムスタンプ情報

: ブロック

データファイル

SCN=20

Page 17: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 17

Shadow Lost Write Protection

Lost Writeには気づきにくい

Oracle OSなど

SCN=20

SCN=10

write()

OK

Lost!

read()

OKOK

SCN=10

SCN=10

SCN=10

• Lost Writeしたブロックを読み出してもエラーは発生しない

• 単に「古い」データを読むだけ

データファイル

Page 18: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 18

Shadow Lost Write Protection

Shadow Lost Write ProtectionによるLost Write検知

Oracle OSなどシャドウ表領域のデータファイル

SCN=20

SCN=10

write()OK

Lost!

read() SCN=10

SCN=10

SCN=10

OK

データファイル

SCN=20

SCN=20

SCN=20

SCN=20

同じSCN →Lost Writeなし異なるSCN→Lost Writeあり

Page 19: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 19

Shadow Lost Write Protection

Shadow Lost Write Protectionの構成手順

1. シャドウ表領域を作成

2. シャドウ消失書込み保護を有効化

CREATE BIGFILE TABLESPACE shadow_tbsDATAFILE '/oradata/shadow_tbs01.dbf' SIZE 10M LOST WRITE PROTECTION;

-- データベースレベルでシャドウ消失書込み保護を有効化

ALTER PLUGGABLE DATABASE ENABLE LOST WRITE PROTECTION;

-- 指定した表領域についてシャドウ消失書込み保護を有効化ALTER TABLESPACE <表領域名> ENABLE LOST WRITE PROTECTION;

Page 20: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 20

Ability to Encrypt Sensitive Credential Data in the Data Dictionary

ディクショナリ内のパスワードを暗号化可能

• ディクショナリに格納されるパスワード

• SYSKMユーザでALTER DATABASE DICTIONARY ENCRYPT CREDENTIALS を実行すると、キーストアのマスター暗号化キーでディクショナリに格納されるパスワードを暗号化可能

– 12.2以前 および ALTER DATABASE DICTIONARY ENCRYPT CREDENTIALS未実行ではパスワードは不明瞭化されるだけ

関連する機能 パスワード

固定ユーザーのデータベースリンク

DBリンクで接続するリモートデータベースにおけるDBユーザーのパスワード

外部ジョブ外部プロシージャ

ジョブまたはプロシージャの実行OSユーザーのパスワード

Page 21: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 21Copyright © 2018 CO-Sol Inc. All Rights Reserved.

Performance

Page 22: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 22

Scalable Sequences

[おさらい] シーケンスを使用する上で発生する問題• 順序性を保ったシーケンス(NOCACHE+ORDER)を使用して主キー値を生成する

テーブルにおいて、大量の行がINSERTされた場合、索引の最も右端(最も大きな値に対応)のリーフブロックでbuffer busy競合が発生しやすい

スケーラブルシーケンス• シーケンス値をインスタンスIDとセッションIDを元に作る仕組みにして、結果と

して番号をセッション毎に「散らす」ことによって、索引リーフブロックのbuffer busy競合を回避できる

シーケンスにおけるbuffer busy競合解消方法 シーケンス採番範囲

CACHE+NOORDERオプションでシーケンスを作成 インスタンス単位

スケーラブルシーケンスの使用 セッション単位18c NEW

スケーラブルシーケンス値=3桁のインスタンス・オフセット番号(※1) || 3桁のセッション・オフセット番号(※2) || 同一セッション内での連番

※1 インスタンスIDを100で割った余りに100を足した数※2 セッションIDを1000で割った余り

Page 23: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 23

Scalable Sequences

スケーラブルシーケンスの作成例

SQL> CREATE SEQUENCE TEST_SEQ SCALE;

順序が作成されました。

SQL>SQL> SELECT DISTINCT SID FROM V$MYSTAT;

SID----------

96

SQL> COL NEXTVAL FORMAT 999999999999999999999999999999999999999999SQL> SELECT TEST_SEQ.NEXTVAL FROM DUAL;

NEXTVAL-------------------------------------------

1010960000000000000000000000000001

Page 24: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 24

Private Temporary Tables

セッション固有の一時表

• トランザクションの終了時またはセッションの終了時にデータとテーブル定義が自動的に削除される一時表– 従来の一時表(グローバル一時表)はデータのみが自動的に削除

された

• 分析用途スタンバイDB環境で、一時表をより使いやすく

– 従来は、スタンバイDBで一時表を使いたい場合、プライマリDBでグローバル一時表を作成する必要があった

タイプ データ テーブル定義

グローバル一時表 自動削除 削除されない

プライベート一時表 自動削除 自動削除18c NEW

Page 25: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 25

Private Temporary Tables

プライベート一時表のSQL例

• 一時表のテーブル名はデフォルトで'ORA$PTT_'を前置きする必要あり

– 初期化パラメータPRIVATE_TEMP_TABLE_PREFIXで変更可能

CREATE PRIVATE TEMPORARY TABLE ORA$PTT_sales_ptt_transaction(time_id DATE,amount_sold NUMBER(10,2))

ON COMMIT DROP DEFINITION;

トランザクション終了時に自動削除されるプライベート一時表

CREATE PRIVATE TEMPORARY TABLE ORA$PTT_sales_ptt_transaction(time_id DATE,amount_sold NUMBER(10,2))

ON COMMIT PRESERVE DEFINITION;

セッション終了時に自動削除されるプライベート一時表

Page 26: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 26

[おさらい] スタンバイDBでの一時表の使用

version スタンバイDBでの一時表の使用

~11.2 使用不可

12.1~ 一時UNDO(TEMP_UNDO_ENABLED)の導入により、一時表が使用可能になった。ただし、プライマリDB側でグローバル一時表を作成する必要があった。

18.1~ プライベート一時表の導入により、プライマリDB側で操作を実行しなくても一時表を使用可能になった。

Page 27: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 27Copyright © 2018 CO-Sol Inc. All Rights Reserved.

Utility

Page 28: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 28

SQL*Plus Display the sql_id for a query

SQL_ID確認機能

• SET FEEDBACK ON SQL_IDを事前に設定することでSQL_IDが確認可能

• 簡単にSQL_IDが確認できる→v$sqlなどのディクショナリビューを見なくても分かる

SQL> SET FEEDBACK ON SQL_IDSQL> SELECT * FROM DEPT;

DEPTNO DNAME LOC---------- -------------- -------------

10 ACCOUNTING NEW YORK20 RESEARCH DALLAS30 SALES CHICAGO40 OPERATIONS BOSTON

4行が選択されました。

SQL_ID: 221mzxcnbv1s4

Page 29: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 29

SQL*Plus Set the number of rows displayed for a query

問合せに対して表示される行数を制限

• SET ROWLIMIT を事前に設定することで使用可能→「 WHERE ROWNUM>=XX」が不要になった

• どのくらいの行がフェッチされるかは、一度にフェッチする行数の設定(ARRAYSIZE)と表示したい行数の設定(ROWLIMIT)に依存→ 全行が毎回フェッチされる訳ではない

SQL> SET ROWLIMIT 2SQL> SELECT * FROM EMP;

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO---------- ---------- --------- ---------- -------- ---------- ---------- ----------

7369 SMITH CLERK 7902 80-12-17 800 207499 ALLEN SALESMAN 7698 81-02-20 1600 300 30

2行が選択されました。 (rowlimitに達しました)

Page 30: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 30

SQL*Plus Dynamically change the output display to fit the screen size

ターミナルサイズに応じて問い合わせ結果を表示• SET LINESIZE WINDOW を事前に設定することで使用可能

• 行サイズとヘッダーごとの出力行数がターミナルサイズに応じて自動設定される

-- SET LINESIZE WINDOW 設定なし

SQL> SELECT * FROM EMP;EMPNO ENAME JOB MGR HIREDATE SAL COMM

---------- ---------- --------- ---------- -------- ---------- ----------DEPTNO

----------7369 SMITH CLERK 7902 80-12-17 80020

・・・・

EMPNO ENAME JOB MGR HIREDATE SAL COMM---------- ---------- --------- ---------- -------- ---------- ----------

DEPTNO----------・・・・

7934 MILLER CLERK 7782 82-01-23 130010

12行が選択されました。

LINESIZE、PAGESIZE が調整されていないため、データが見にくい

Page 31: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 31

SQL*Plus Dynamically change the output display to fit the screen size

ターミナルサイズに応じて問い合わせ結果を表示

-- SET LINESIZE WINDOW 設定あり

SQL> SET LINESIZE WINDOWSQL> SELECT * FROM EMP;

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO---------- ---------- --------- ---------- -------- ---------- ---------- ----------

7369 SMITH CLERK 7902 80-12-17 800 207499 ALLEN SALESMAN 7698 81-02-20 1600 300 307521 WARD SALESMAN 7698 81-02-22 1250 500 307566 JONES MANAGER 7839 81-04-02 2975 207654 MARTIN SALESMAN 7698 81-09-28 1250 1400 307698 BLAKE MANAGER 7839 81-05-01 2850 307782 CLARK MANAGER 7839 81-06-09 2450 107839 KING PRESIDENT 81-11-17 5000 107844 TURNER SALESMAN 7698 81-09-08 1500 0 307900 JAMES CLERK 7698 81-12-03 950 307902 FORD ANALYST 7566 81-12-03 3000 207934 MILLER CLERK 7782 82-01-23 1300 10

12行が選択されました。

LINESIZE、PAGESIZE が自動設定されるため、データが見やすい手動で LINESIZE、PAGESIZE を設定する必要がない

Page 32: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 32Copyright © 2018 CO-Sol Inc. All Rights Reserved.

Multitenant

Page 33: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 33

Ability to Create a Keystore for Each Pluggable Database

PDB固有のキーストア

• 各PDBで独自のキーストアを作成できるようになった

– 12cはCDBと全PDBは1つのキーストアでマスター鍵を管理

モード 特徴

統合モード ・CDB、全PDBでキーストアが同じ(パスワードも同じ)

分離モード ・CDB、各PDBで別々のキーストアの作成が可能(別々のパスワードに設定可能)

→各DBごとに管理部署が異なる場合に有効

18c NEW

※ 18.1では統合モードと分離モードの併用可能

Page 34: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 34

Ability to Create a Keystore for Each Pluggable Database

統合モードでの課題

統合モード(12.1~12.2) 分離モード(18.1~)

CDB

PDB

CDB

PDB

システムA システムB システムC システムA システムB システムC

部署AシステムA管理者

部署BシステムB管理者

部署CシステムC管理者

システムごとにキーストアの管理不可

部署AシステムA管理者

部署BシステムB管理者

部署CシステムC管理者

システムごとにキーストアの管理可能

Page 35: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 35

Ability to Create a Keystore for Each Pluggable Database

PDB固有のキーストア構成手順

1. CDBに対してWALLET_ROOTを設定(CDBの再起動が必要)

2. PDBに対してTDE_CONFIGURATIONを設定

3. PDBのキーストア構成

ALTER SYSTEM SET WALLET_ROOT=‘<CDB_wallet_directory>’ SCOPE=SPFILE;

ALTER SYSTEM SET TDE_CONFIGURATION="keystore_configuration=file";

-- キーストアの作成

ADMINISTER KEY MANAGEMENT CREATE KEYSTORE IDENTIFIED BY <password>;

-- キーストアのオープン

ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN FORCE KEYSTORE IDENTIFIED BY <password>;

-- TDEマスター暗号化鍵を設定

ADMINISTER KEY MANAGEMENT SET KEY IDENTIFIED BY <password> WITH BACKUP USING '<backup_name>';

Page 36: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 36

RMAN duplicate PDB into existing CDB

[18.1~] 既存のCDBに対してPDBの複製が可能

[~12.2] 既存のCDBに対してPDBの複製不可PDBを複製すると新規にCDBが作成された

既存CDB1

A

PDB

B C

既存CDB2

APP1

PDB

APP2 C

既存CDB1

A

PDB

B C

新規CDB1

PDB

C

Page 37: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 37

RMAN duplicate PDB into existing CDB

既存CDBへのPDBの複製手順

1. 複製元CDBと複製先CDBにRMANで接続

2. PDBを複製するDUPLICATEコマンドを実行

• 複製先CDBでのREMOTE_RECOVERY_FILE_DESTの設定など、いくつかの前提条件があるため、マニュアルを参照のこと

– バックアップおよびリカバリ・ユーザーズ・ガイド25.5.3.2 既存のCDBへのPDBの複製の制限事項

– バックアップおよびリカバリ・リファレンス2.20 DUPLICATE

RMAN TARGET SYS/*****@<複製元CDB> AUXILIARY SYS/*****@<複製先CDB>

DUPLICATE PLUGGABLE DATABASE <複製対象のPDB> TO <複製先CDB>

DB_FILE_NAME_CONVERT('...', '...')FROM ACTIVE DATABASE;

Page 38: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 38Copyright © 2018 CO-Sol Inc. All Rights Reserved.

Data Guard

Page 39: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 39

Copying a PDB in an Oracle Data Guard Environment

PDBリモートクローン、プライグインにおけるスタンバイ環境のPDB自動メンテナンス

• PDBリモートクローン、プライグインを実行した際に、スタンバイDBにPDBを自動作成する機能

– 12.2以前は、PDBリモートクローン、プライグインが実行された場合、スタンバイDBにデータファイルが自動コピーされなかった

• スタンバイDBにPDBを自動作成させるための方法として以下の2つがある

スタンバイDBにPDBを作成するための方法 使用する初期化パラメータ

DBリンク経由でクローン元PDBのデータファイルを入手

STANDBY_PDB_SOURCE_FILE_DBLINK

バックアップファイルからクローン元PDBのデータファイルを入手

STANDBY_PDB_SOURCE_FILE_DIRECTORY

18c NEW

Page 40: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 40

DBリンク経由でクローン元PDBのデータファイルを入手(STANDBY_PDB_SOURCE_FILE_DBLINK)

PDBリモートクローン

C

PDB

B C’

PDBデータ同期

A

PDB

B

DBリンク

環境1

環境2

プライマリDB

クローン元PDBからスタンバイDBにデータファイルがコピーされる

スタンバイDB

B’

DBリンク

①STANDBY_PDB_SOURCE_FILE_DBLINKの設定ALTER SYSTEM SET STANDBY_PDB_SOURCE_FILE_DBLINK=<DBリンク名>;

②PDBを読み取り専用でOPENALTER PLUGGABLE DATABASE <PDB名> OPEN READ ONLY;

③PDBリモートクローンCREATE PLUGGABLE DATABASE <クローン先PDB名> FROM <クローン元PDB名>@<DBリンク名>;

データファイル

Page 41: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 41

PDBプラグイン

C

PDB

B C’

PDBデータ同期

A

PDB

環境1

環境2

プライマリDB

バックアップファイルからスタンバイDBにデータファイルがコピーされる

スタンバイDB

B’

①STANDBY_PDB_SOURCE_FILE_DIRECTORYの設定ALTER SYSTEM SET STANDBY_PDB_SOURCE_FILE_DIRECTORY='<PDBバックアップ格納先>’;

②XMLファイル生成(PDBアンプラグ)ALTER PLUGGABLE DATABASE <PDB名> UNPLUG INTO 'XXX.xml‘;

③PDBプラグインCREATE PLUGGABLE DATABASE <作成するPDB名> USING '<UNPLUG時に作成したXMLファイル名>' SOURCE_FILE_NAME_CONVERT=(...);

B

XMLファイル バックアップファイル

事前バックアップ

バックアップファイルからクローン元PDBのデータファイルを入手(STANDBY_PDB_SOURCE_FILE_DIRECTORY)

Page 42: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 42

[おさらい] PDBリモートクローン/PDBプラグイン

PDBリモートクローン

C

PDB

B C’

PDBデータ同期

A

PDB

B

DBリンク

環境1

環境2

プライマリDB スタンバイDB

①PDBを読み取り専用でOPENALTER PLUGGABLE DATABASE <PDB名> OPEN READ ONLY;

②PDBリモートクローンCREATE PLUGGABLE DATABASE <クローン先PDB名> FROM <クローン元PDB名>@<DBリンク名>;

データファイル

12.2まではスタンバイDBにデータファイルがコピーされなかった

B’

Page 43: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 43

[おさらい]PDBリモートクローン/PDBプラグイン

PDBプラグイン

C

PDB

B C’

PDBデータ同期

A

PDB

環境1

環境2

プライマリDB スタンバイDB

①XMLファイル生成(PDBアンプラグ)ALTER PLUGGABLE DATABASE <PDB名> UNPLUG INTO 'XXX.xml‘;

②PDBプラグCREATE PLUGGABLE DATABASE <作成するPDB名> USING '<UNPLUG時に作成したXMLファイル名>' SOURCE_FILE_NAME_CONVERT=(...);

B

XMLファイル バックアップファイル

事前バックアップ

12.2まではスタンバイDBにデータファイルがコピーされなかった

B’

Page 44: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 44

Automatic Correction of Non-logged Blocks at a Data Guard Standby Database

Data Guard環境のNOLOGGING操作に関する機能拡張

• NOLOGGING操作で発生したデータ破損の自動修復が行えるようになった→ プライマリDBのI/O量削減(NOLOGGING動作)とスタンバイDBの

ブロック破損抑止を両立

Page 45: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 45

Automatic Correction of Non-logged Blocks at a Data Guard Standby Database

FORCE LOGGING設定時のフィジカルスタンバイ構成Data Guard

データファイル

ダイレクトパスデータロード

オンラインREDOログファイル

Oracle

データファイルスタンバイREDOログファイル

OracleFORCE LOGGING

大量のREDO I/Oが発生

Page 46: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 46

Automatic Correction of Non-logged Blocks at a Data Guard Standby Database

フィジカルスタンバイ構成Data GuardでのNOLOGGING操作の影響

データファイル

ダイレクトパスデータロード

オンラインREDOログファイル

Oracle

データファイルスタンバイREDOログファイル

OracleFORCE LOGGING未設定

REDO記録されない(NOLOGGING動作)

ブロック破損

Page 47: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 47

Automatic Correction of Non-logged Blocks at a Data Guard Standby Database

SET STANDBY NOLOGGINGの基本動作(18.1~)

ダイレクトパスデータロード

Oracle OracleSET STANDBY NOLOGGING ...

更新データをスタンバイDBに転送

プライマリDBのI/O量削減(NOLOGGING動作)とスタンバイDBのブロック破損抑止を両立

REDO記録されない(NOLOGGING動作)

データファイル オンラインREDOログファイル

ブロック破損発生せず

データファイルスタンバイREDOログファイル

Page 48: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 48

SET STANDBY NOLOGGINGの動作モード

SET STANDBY NOLOGGINGの通常動作

– プライマリDBのI/O量削減(NOLOGGING動作)とスタンバイDBのブロック破損抑止を両立

ロード遅延時の動作に応じて2つの動作モードが存在

動作モード プライマリDBのロード動作

正常時(遅延なし) 遅延時

... FOR LOAD PERFORMANCE

NOLOGGING+データ転送

NOLOGGING+あとで破損ブロック修復プライマリDBでのロード処理パフォーマンス維持を優先

... FOR DATA AVAILABILITY

LOGGING(破損ブロック発生させない)スタンバイDBでのブロック破損発生の回避を優先

Page 49: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 49

SET STANDBY NOLOGGING FOR LOAD PERFORMANCE(ロード遅延発生時)

データファイル

ダイレクトパスデータロード

オンラインREDOログファイル

Oracle

データファイルスタンバイREDOログファイル

Oracle... FOR LOAD PERFORMANCE

REDO記録されない(NOLOGGING動作)

スタンバイDBへの更新データ転送を停止

NOLOGGING動作によるロードパフォーマンスの維持(プライマリDBのI/O量削減)を優先

Page 50: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 50

SET STANDBY NOLOGGING FOR LOAD PERFORMANCE(NOLOGGING操作検知時)

データファイル

Oracle

データファイル

Oracle... FOR LOAD PERFORMANCE

② プライマリDBから正常ブロックをフェッチして自動的に破損ブロックを復旧

スタンバイREDOログファイル

① NOLOGGING操作を検知

オンラインREDOログファイル

Page 51: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 51

SET STANDBY NOLOGGING FOR DATA AVAILABILITY(ロード遅延発生時)

データファイル

ダイレクトパスデータロード

オンラインREDOログファイル

Oracle

データファイルスタンバイREDOログファイル

Oracle... FOR DATA AVAILABILITY

ブロック破損発生せず

NOLOGGING動作によるロードパフォーマンスの維持(プライマリDBのI/O量削減)よりも、スタンバイDBでのブロック破損発生の回避を優先

スタンバイDBへの更新データ転送を停止

REDO記録実行(NOLOGGING抑止)

Page 52: Platinumホルダーが選ぶ! 現場で役立つOracle …cosol.jp/techdb/20180921_jpoug_cosol_igarashi_dbtech_18c...2018/09/21  · Copyright © 2018 CO-Sol Inc. All Rights Reserved

Copyright © 2018 CO-Sol Inc. All Rights Reserved. 52