platinumホルダーが選ぶ! 現場で役立つoracle...
TRANSCRIPT
Copyright © 2018 CO-Sol Inc. All Rights Reserved. 1Copyright © 2018 CO-Sol Inc. All Rights Reserved.
Platinumホルダーが選ぶ!現場で役立つOracle Database
18c新機能
2018年9月21日株式会社コーソル 五十嵐 一俊
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
Copyright © 2018 CO-Sol Inc. All Rights Reserved. 3
今日の発表について
• Oracle Databaseを日々愛用(酷使)するコーソルの12c Platinum保持エンジニアから見て、知っておいた方がよさそうな機能、地味ながら役に立ちそうな18c新機能をご紹介します。
• 弊社では、大小さまざまな規模のお客様に対してプロフェッショナルサービスを提供しています。このため、様々なカテゴリごとにまんべんなくチェックいたしました。
• 今日の内容が、皆さんの今後のお役に立てば、また、現場での会話のネタになれば幸いです。
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
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製品一覧
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
× × 〇(※) × × × 〇 〇
※別途、追加オプションが必要
Copyright © 2018 CO-Sol Inc. All Rights Reserved. 7Copyright © 2018 CO-Sol Inc. All Rights Reserved.
Install
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
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ホームの差し替えという運用が可能になる
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のファイル構成
通常の運用で更新されるファイルがなくなったため、
読み取り専用化可能に
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)
デタッチ
アタッチ
Copyright © 2018 CO-Sol Inc. All Rights Reserved. 12Copyright © 2018 CO-Sol Inc. All Rights Reserved.
Maintenance
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;
Copyright © 2018 CO-Sol Inc. All Rights Reserved. 14
[おさらい] オンライン可能なパーティション操作
オンライン可能なパーティション操作一覧
主なパーティション操作
各versionごとのオンライン操作可否
~12.1 12.2~ 18.1~
追加(add) × × ×
削除(drop) × × ×
分割(split) × 〇 〇
移動(move) × 〇 〇
結合(merge) × × 〇
変更(modify) × × 〇
※各オンライン操作時の制限事項についてはマニュアルを参照
18c NEW
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)
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
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したブロックを読み出してもエラーは発生しない
• 単に「古い」データを読むだけ
データファイル
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あり
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;
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ユーザーのパスワード
Copyright © 2018 CO-Sol Inc. All Rights Reserved. 21Copyright © 2018 CO-Sol Inc. All Rights Reserved.
Performance
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で割った余り
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
Copyright © 2018 CO-Sol Inc. All Rights Reserved. 24
Private Temporary Tables
セッション固有の一時表
• トランザクションの終了時またはセッションの終了時にデータとテーブル定義が自動的に削除される一時表– 従来の一時表(グローバル一時表)はデータのみが自動的に削除
された
• 分析用途スタンバイDB環境で、一時表をより使いやすく
– 従来は、スタンバイDBで一時表を使いたい場合、プライマリDBでグローバル一時表を作成する必要があった
タイプ データ テーブル定義
グローバル一時表 自動削除 削除されない
プライベート一時表 自動削除 自動削除18c NEW
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;
セッション終了時に自動削除されるプライベート一時表
Copyright © 2018 CO-Sol Inc. All Rights Reserved. 26
[おさらい] スタンバイDBでの一時表の使用
version スタンバイDBでの一時表の使用
~11.2 使用不可
12.1~ 一時UNDO(TEMP_UNDO_ENABLED)の導入により、一時表が使用可能になった。ただし、プライマリDB側でグローバル一時表を作成する必要があった。
18.1~ プライベート一時表の導入により、プライマリDB側で操作を実行しなくても一時表を使用可能になった。
Copyright © 2018 CO-Sol Inc. All Rights Reserved. 27Copyright © 2018 CO-Sol Inc. All Rights Reserved.
Utility
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
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に達しました)
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 が調整されていないため、データが見にくい
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 を設定する必要がない
Copyright © 2018 CO-Sol Inc. All Rights Reserved. 32Copyright © 2018 CO-Sol Inc. All Rights Reserved.
Multitenant
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では統合モードと分離モードの併用可能
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管理者
システムごとにキーストアの管理可能
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>';
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
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;
Copyright © 2018 CO-Sol Inc. All Rights Reserved. 38Copyright © 2018 CO-Sol Inc. All Rights Reserved.
Data Guard
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
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リンク名>;
データファイル
①
②
③
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)
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’
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’
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の
ブロック破損抑止を両立
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が発生
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動作)
ブロック破損
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ログファイル
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でのブロック破損発生の回避を優先
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量削減)を優先
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ログファイル
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抑止)
Copyright © 2018 CO-Sol Inc. All Rights Reserved. 52