Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
[TechNight #49] Oracle Database 21c 新機能解説 第1回 (...
Search
oracle4engineer
PRO
November 08, 2021
Technology
0
1.8k
[TechNight #49] Oracle Database 21c 新機能解説 第1回 (前半パート)
Oracle Database 21c 新機能解説
第1回の前半パートでは、下記について解説しています。
1.管理系
2.ユーティリティ
3.RAC/Clusterware
4.Data Guard
oracle4engineer
PRO
November 08, 2021
Tweet
Share
More Decks by oracle4engineer
See All by oracle4engineer
Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間
oracle4engineer
PRO
29
13k
【Oracle Cloud ウェビナー】生成AI対応のデータベースが変える、業務アプリケーション構築のこれから
oracle4engineer
PRO
2
39
OCI Vault 概要
oracle4engineer
PRO
0
9.8k
Data Safeの機能詳細
oracle4engineer
PRO
0
4.8k
OCI Security サービス 概要
oracle4engineer
PRO
0
6.6k
OCI 運用監視サービス 概要
oracle4engineer
PRO
0
4.8k
OCI Network Firewall 概要
oracle4engineer
PRO
0
4.2k
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
2
3.2k
ExaDB-D dbaascli で出来ること
oracle4engineer
PRO
0
3.9k
Other Decks in Technology
See All in Technology
【LT】ソフトウェア産業は進化しているのか? #Agilejapan
takabow
0
110
Storybook との上手な向き合い方を考える
re_taro
5
2k
20241120_JAWS_東京_ランチタイムLT#17_AWS認定全冠の先へ
tsumita
2
320
飲食店データの分析事例とそれを支えるデータ基盤
kimujun
0
220
Engineer Career Talk
lycorp_recruit_jp
0
200
The Rise of LLMOps
asei
9
1.9k
TypeScriptの次なる大進化なるか!? 条件型を返り値とする関数の型推論
uhyo
2
1.8k
ノーコードデータ分析ツールで体験する時系列データ分析超入門
negi111111
0
430
開発生産性を上げながらビジネスも30倍成長させてきたチームの姿
kamina_zzz
2
1.7k
RubyのWebアプリケーションを50倍速くする方法 / How to Make a Ruby Web Application 50 Times Faster
hogelog
3
950
生成AIが変えるデータ分析の全体像
ishikawa_satoru
0
190
Chasing the White Whale of Open Source - ROI
mrbobbytables
0
110
Featured
See All Featured
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
27
840
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
31
2.7k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
27
4.3k
How to Think Like a Performance Engineer
csswizardry
20
1.1k
Become a Pro
speakerdeck
PRO
25
5k
For a Future-Friendly Web
brad_frost
175
9.4k
Designing the Hi-DPI Web
ddemaree
280
34k
Side Projects
sachag
452
42k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Intergalactic Javascript Robots from Outer Space
tanoku
269
27k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
Transcript
Oracle Technology Night #49 Oracle Database 21c 新機能解説1 (前半) 日本オラクル株式会社
データベース・ソリューション部 2021年11月4日
1. 管理系 2. ユーティリティ 3. RAC/Clusterware 4. Data Guard Oracle
Database 21c 新機能解説1 前半のアジェンダ Copyright © 2021, Oracle and/or its affiliates 2
Copyright © 2021, Oracle and/or its affiliates 3 管理系 読取り専用のOracleホームのデフォルト
Oracle Databaseの診断機能の強化 新元号(令和)のサポート
18cから導入された読取り専用のOracleホームが21cよりデフォルトに Oracleホーム配下のdbsやnetworkなどの各種データベース設定ファイルやログ・ファイルをOracleホーム外に配置 Oracleホームには、バイナリだけを配置し、読取り専用可 設定ファイルは場所の変更が必要ないため、Out-of-placeパッチングの実行が容易 ORACLE_HOMEをバイナリだけにし、ORACLE_BASE_HOMEおよびORACLE_BASE_CONFIGに 当該環境用の設定ファイルやログ・ファイルを配置 読取り専用のOracleホームのデフォルト Copyright © 2021,
Oracle and/or its affiliates 4 DBHOME_1 DBHOME_2 DBHOME_3 設定ファイル等 DBHOME_1 DBHOME_2 DBHOME_3
Read-Write Oracleホームのディレクトリ構成 5 /u01/app/oracle/ admin/ audit/ cfgtoollogs/ checkpoints/ diag/ oradata/
product /19.0.0 /dbhome_1/ assistants/ dbs/ install/ log/ network/ rdbms/ … ORACLE_HOME ORACLE_BASE ORACLE_BASE_HOME ORACLE_BASE_CONFIG Copyright © 2021, Oracle and/or its affiliates
Read-Only Oracleホームのディレクトリ構成 6 ORACLE_BASE_HOME /u01/app/oracle/ … dbs/ initorcl.ora orapworcl spfileorcl.ora
… … homes/ OraDB21_home1/ assistants/ dbs/ install/ log/ network/ rdbms/ … … product /21.0.0 /dbhome_1/ assistants/ dbs/ install/ log/ network/ rdbms/ … ORACLE_BASE_CONFIG ORACLE_BASE ORACLE_HOME Copyright © 2021, Oracle and/or its affiliates
Read-WriteおよびRead-Only Oracleホームのディレクトリ・パスの比較例 読取り専用のOracleホームのデフォルト Copyright © 2021, Oracle and/or its affiliates
7 ディレクトリ Read-Only Oracleホーム時のパス Read-Write Oracleホーム時のパス ORACLE_BASE /u01/app/oracle /u01/app/oracle ORACLE_HOME /u01/app/oracle/product/21.0.0/dbhome_1 /u01/app/oracle/product/19.0.0/dbhome_1 ORACLE_BASE_HOME <ORACLE_BASE>/homes/HOME_NAME /u01/app/oracle/homes/OraDB21Home1 <ORACLE_HOME> /u01/app/oracle/product/19.0.0/dbhome_1 ORACLE_BASE_CONFIG <ORACLE_BASE> /u01/app/oracle <ORACLE_HOME> /u01/app/oracle/product/19.0.0/dbhome_1 Network <ORACLE_BASE_HOME>/network /u01/app/oracle/homes/OraDB21Home1/network <ORACLE_HOME>/network /u01/app/oracle/product/19.0.0/dbhome_1/netwo rk dbs <ORACLE_BASE_CONFIG>/dbs /u01/app/oracle/dbs <ORACLE_HOME>/dbs /u01/app/oracle/product/19.0.0/dnhome_1/dbs
現在Read-WriteまたはRead-onlyのどちらの構成か確認する方法 orabasehomeコマンドおよびorabaseconfigコマンドの出力結果を比較 同一であれば、従来型のファイル・パス、異なれば、Read-only Oracleホームのファイルパス orabasehomeコマンドを実行すると、現在の ORACLE_HOME_BASE のパスを表示 orabaseconfigコマンドを実行して得られるORACLE_BASE_CONFIG のパスを表示 従来型の出力例(19c)
読取り専用のOracleホームのデフォルト 8 $ $ORACLE_HOME/bin/orabasehome /u01/app/oracle/homes/OraDB21000_home1 $ $ORACLE_HOME/bin/orabasehome /u01/app/oracle/product/19.0.0/dbhome_1 $ $ORACLE_HOME/bin/orabaseconfig /u01/app/oracle/product/19.0.0/dbhome_1 $ $ORACLE_HOME/bin/orabaseconfig /u01/app/oracle Copyright © 2021, Oracle and/or its affiliates
注意ログ(Attention Log) アクションが必要なクリティカル・イベントに関する情報に すばやくアクセスが可能 メッセージはXMLやJSON形式で下記の情報を含む • メッセージのタイプ(Error/Warning/Notification など) • 緊急度(Immediate/Soon/Deferrable/Information)
• 対象のユーザー • 原因や対策 ログファイルの出力先 $ADR_HOME/trace/attention_インスタンス名.log V$DIAG_ALERT_EXTビューによりSQLでも参照も可能 AHF(TFA)や他ツールとの連携も可能 出力ログ例 { "ERROR" : "Shutting down ORACLE instance (abort) (OS id: 3806)", "URGENCY" : "IMMEDIATE", "INFO" : "Shutdown is initiated by oraagent.bin@ntdb21c (TNS V1-V3). ", "CAUSE" : "A command to shutdown the instance was executed", "ACTION" : "Check alert log for progress and completion of command", "CLASS" : "CDB Instance / CDB ADMINISTRATOR / AL-1002", "TIME" : "2021-09-13T22:04:26.080+00:00" } { "NOTIFICATION" : "Starting ORACLE instance (normal) (OS id: 8044)", "URGENCY" : "INFO", "INFO" : "Additional Information Not Available", "CAUSE" : "A command to startup the instance was executed", "ACTION" : "Check alert log for progress and completion of command", "CLASS" : "CDB Instance / CDB ADMINISTRATOR / AL-1000", "TIME" : "2021-09-21T01:29:17.127+00:00" } Oracle Databaseの診断機能の強化 Copyright © 2021, Oracle and/or its affiliates 9
日本の和暦にて、新元号の令和(2019年5月1日に発効)をサポート 21.3 より前のバージョンにおいても、パッチ適用にて新元号の令和をサポート* 実行例 以前のバージョンでの出力結果 21.3での出力結果 新元号の令和のサポート 10 SQL> select
2 to_char(to_date('2019/04/30','yyyy/mm/dd'),'EEYY"年"MM"月"DD"日"','NLS_CALENDAR=''Japanese Imperial''') "2019/04/30", 3 to_char(to_date('2019/05/01','yyyy/mm/dd'),'EEYY"年"MM"月"DD"日"','NLS_CALENDAR=''Japanese Imperial''') "2019/05/01" from dual; 2019/04/30 2019/05/01 --------------------- --------------------- 平成31年04月30日 令和01年05月01日 Copyright © 2021, Oracle and/or its affiliates *日本の元号の変更方法について (Doc ID 2416596.1) 2019/04/30 2019/05/01 --------------------- --------------------- 平成31年04月30日 平成31年05月01日
Unicode 12.1 をサポートすることで令和の合字「㋿」を Oracle Database に格納可能に (Unicode 12.1 にて追加された文字は、 令和の合字のみ)
Unicode 12.1 のサポート Copyright © 2021, Oracle and/or its affiliates 11 実行例(21.3以降) ㋿
Copyright © 2021, Oracle and/or its affiliates 12 データベース・ユーティリティ チェックサムによるダンプ・ファイルの事前検証
Oracle Data Pumpでの同一操作への包含/除外 トランスポータブル表領域のメタデータ操作のパラレル化 IMPORT時の索引圧縮 オブジェクト・ストレージに対するダンプ・ファイルのエクスポート&インポート Oracle SQL*Loaderでのオブジェクト・ストア資格証明のサポート
概要 • Oracle Data Pumpダンプ・ファイルの妥当性チェックに、チェックサムを使用可能 • エクスポート時にチェックサム付加有無を設定、アルゴリズムの指定も可能 • インポート時に、チェックサムを使用してダンプ・ファイルを検証、インポートせず検証のみも可能 メリット
• Export後からImport前までにダンプ・ファイルに対する変更がないことを確認可能 前提 • COMPATIBLE=20.0 以上で利用可能 チェックサムによるダンプ・ファイルの事前検証 Copyright © 2021, Oracle and/or its affiliates 13
コマンド例 エクスポート例 • CHECKSUM_ALGORITHM =[CRC32|SHA256|SHA384|SHA512] でアルゴリズムを指定 • CHECKSUM=YESのみ指定されている場合、SHA256を使用 インポート例 •
VERIFY_CHECKSUM=[YES|NO] インポート前にチェックサムの検証可否を指定 • VERIFY_ONLY =[YES|NO] チェックサムの検証のみの実施可否を指定、実際のインポートは行わない • VERIFY_CHECKSUMとVERIFY_ONLYのどちらか一方のみ指定可能 • チェックサムが付加されているダンプ・ファイルを検証しない場合、警告が出力されるがインポートは可能 Warning: dump file checksum verification is disabled チェックサムによるダンプ・ファイルの事前検証 Copyright © 2021, Oracle and/or its affiliates 14 expdp hr DIRECTORY=dpump_dir1 DUMPFILE=hr.dmp CHECKSUM=YES impdp hr DIRECTORY=dpump_dir1 DUMPFILE=hr.dmp VERIFY_CHECKSUM=YES
概要 • エクスポートまたはインポート操作にオブジェクトの包含、除外を同時に指定可能 • INCLUDEで包含、EXCLUDEで除外を同時に設定可能。 メリット • 移行対象に関する柔軟性を高めることで、Oracle Database間の移行を容易に コマンド例
Oracle Data Pumpでの同一操作への包含/除外 Copyright © 2021, Oracle and/or its affiliates 15 expdp hr DIRECTORY=dpump_dir1 ¥ DUMPFILE=exp%u.dmp SCHEMAS=HR,OE,SH ¥ INCLUDE=TABLE EXCLUDE=statistics impdp hr DIRECTORY=dpump_dir1 ¥ DUMPFILE=exp%u.dmp ¥ INCLUDE = SCHEMA:"IN('HR','OE')" ¥ EXCLUDE = TABLE:"IN('HR.EMPLOYEES','OE.ORDERS')" ORDERS CUSTOMERS SHスキーマ INVENTORIES JOBS DEPT EMPLOYEES ダンプ・ファイルのイメージ図 HRスキーマ OEスキーマ
トランスポータブル表領域 移行方式概要 トランスポータブル表領域のメタデータ操作のパラレル化 Copyright © 2021, Oracle and/or its affiliates
16 インストール/DB作成/ユーザー作成 オンライン メタデータ のimport メタデータ のexport オンライン データベース・サービスの停止時間 READ ONLY (表領域単位) メタデータ とデータ・ ファイル の転送 移行先 DB 移行元 DB READ WRITE (表領域単位)
概要 • トランスポータブル表領域のメタデータに対するパラレルなエクスポート操作およびインポート操作が可能に メリット • パラレル化により、特に多くののデータベース・オブジェクト(表、索引、パーティション、サブパーティションを含む)が データ・ファイルに存在する場合に、メタデータのエクスポートおよびインポート時間が改善 コマンド例 トランスポータブル表領域のメタデータ操作のパラレル化 Copyright
© 2021, Oracle and/or its affiliates 17 $ expdp ... TRANSPORT_TABLESPACES=users PARALLEL=2 $ impdp ... TRANSPORT_DATAFILES=‘/user01/data/users01.bdf’ PARALLEL=2
概要 • 表圧縮属性の指定に加えて、索引圧縮属性の指定も可能に • TRANSFORMパラメータのINDEX_COMPRESSION_CLAUSE句に圧縮方法を指定 メリット • インポート時に表領域のデフォルト圧縮とは別の圧縮に変更可能 コマンド例 IMPORT時の索引圧縮
Copyright © 2021, Oracle and/or its affiliates 18 $ impdp hr DIRECTORY=dpump_dir1 DUMPFILE=hr.dmp SCHEMAS=hr ¥ TRANSFORM=TABLE_COMPRESSION_CLAUSE:¥"COMPRESS BASIC¥" ¥ TRANSFORM=INDEX_COMPRESSION_CLAUSE:¥"COMPRESS ADVANCED LOW¥"
概要 • OCIオブジェクト・ストアからのエクスポートまたはインポートが直接可能に • CREDENTIALパラメータで資格情報を指定し、DUMPFILEパラメータにオブジェクト・ストアのURLパスを指定 • 資格情報は、DBMS_CLOUDパッケージを利用して登録 コマンド例 オブジェクト・ストレージに対するダンプ・ファイルのエクスポート&インポート Copyright
© 2021, Oracle and/or its affiliates 19 expdp hr DEFAULT_DIRECTORY=dir1 ¥ DUMPFILE=https://objectstorage.us-ashburn-1.oraclecloud.com/n/xxx/b/xxx/o/exp%u.dmp ¥ CREDENTIAL=user_cred impdp hr DEFAULT_DIRECTORY=dir1 ¥ DUMPFILE=https://objectstorage.us-ashburn-1.oraclecloud.com/n/xxx/b/xxx/o/exp%u.dmp ¥ CREDENTIAL=user_cred
概要 • 資格情報をCREDENTIALパラメータに指定し、オブジェクト・ストア上のファイルからのロードが可能に • INFILEパラメータに、オブジェクト・ストアのURLを指定 • 資格情報は事前に作成(次頁) メリット • オブジェクト・ストア上のファイルをローカルなどに移動させずに
データベースへインポートが可能 コマンド例 Oracle SQL*Loaderでのオブジェクト・ストア資格証明のサポート Copyright © 2021, Oracle and/or its affiliates 20 オブジェクト・ストア データベース SQL*Loader or ローカルストアファイル ログ・ファイル クレデンシャル・ファイル コントロール・ファイル バッド・ファイル 廃棄ファイル $ sqlldr hr dept.ctl credential=myfed LOAD DATA INFILE 'https://sample.example.com/v1/oss/dept.csv' truncate INTO TABLE DEPT FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' (DEPTNO, DNAME, LOC)
手順例 1. orapkiユーティリティを使用して、walletを作成 2. 資格情報 myfedを作成 3. コントロール・ファイルのINFILE句にロードするファイルのURLを指定 4. 作成したクレデンシャルを使ってデータをロード
Oracle SQL*Loaderでのオブジェクト・ストア資格証明のサポート Copyright © 2021, Oracle and/or its affiliates 21 $ mkstore -wrl /home/oracle/wallets -createEntry oracle.sqlldr.credential.myfed.username ¥ oracleidentitycloudservice/
[email protected]
% sqlldr test/password@pdb oss.ctl credential=myfed $ orapki wallet create -wallet /home/oracle/wallets -pwd password -auto_login $ mkstore -wrl /home/oracle/wallets –createEntry ¥ oracle.sqlldr.credential.myfed.password "sample+password" … INFILE 'https://objectstorage.ap-tokyo-1.oraclecloud.com/n/xxx/b/xxx/o/file1.txt' …
Copyright © 2021, Oracle and/or its affiliates 22 RAC/Clusterware の新機能
• Clusterware REST API • キャッシュ・フュージョン強化 • PDBの起動管理ポリシー • DBCAでのRACのデータベース管理ポリシーの変更 • クラスタウェア内のリソースとしてのPDBの統合 • プラガブル・データベース・クラスタ・リソース • 非推奨/非サポートになった機能
機能概要 • REST APIでOracle Clusterwareコマンドライン・インタフェースをサポート • 19cからFPP(Fleet Patching and Provisioning)を中心に
提供されていたものが、クラスタウェア操作へ拡充 • Oracle Clusterwareコマンドライン・インタフェースに基づいた REST APIベースの管理により、リモートの物理的な場所 またはローカルにプロビジョニングされたOracle Cloudでの クラスタ管理が簡略化可能 メリット • クラスタウェアコマンドラインI/FのREST対応 • リモートからの操作性の向上 Clusterware REST API Copyright © 2021, Oracle and/or its affiliates 23
Clusterware REST API Copyright © 2021, Oracle and/or its affiliates
24 $ curl -k -X GET https://<SCAN_NAME>:<PORT>/grid/cmd/v1/cmd/ --user admin:<PASSWORD> { "name":"cmd","homes": [ {"homeName":"OraGI21Home1","path":"/u01/app/21.3.0/grid"}, {"homeName":"OraDB21Home1","path":"/u01/app/oracle/product/21.0.0/dbhome_1"} ], "jobs": [ {"rel":"canonical","md/v1/cmd/jobs","mediaType":"application/vnd.oracle.resource+json;type=collection"}, ... href":"https://ptvmscan-01.jp.oracle.com:5700/grid/c } 例:ORACLE_HOMEの情報取得コマンド $ curl –k –X POST ¥ > https://<SCAN_NAME>:<PORT>//grid/cmd/v1/cmd/exec ¥ > '-H "accept: text/plain,text/javascript,application/json"' ¥ > '-H "content-type: application/vnd.oracle.resource+json;type=singular"' --user admin:myAdminPasswd ¥ > ‘-d {“command” : [“crsctl”, “stat”, “res”, “-t”], “runAsUser”:“<OSユーザー>”, “userPassword”:“<OSユーザーパスワード>"}' { "runAsUser": "grid", "jobId": "vYqd35gHVBihMfCEXfo66kDjUseRwM74_u_4hu_bxicHCvWiap7AMljo51g6APOwclIs7POKcIoUOgwlZZNDmQ", "command": [ "crsctl", ... 例:ジョブ作成
Clusterware REST API Copyright © 2021, Oracle and/or its affiliates
25 $ curl -k -X GET https://<SCAN_NAME>:<PORT>/grid/cmd/v1/cmd/jobs/<JOBのID> --user admin:myAdminPasswd { "runAsUser": "grid", "jobId": "vYqd35gHVBihMfCEXfo66kDjUseRwM74_u_4hu_bxicHCvWiap7AMljo51g6APOwclIs7POKcIoUOgwlZZNDmQ", "command": [ "crsctl", "stat", "res", "-t" ], "nodeName": "ptvm02", "output": "--------------------------------------------------------------------------------¥n Name Target State Server State details ¥n --------------------------------------------------------------------------------¥n Local Resources¥n --------------------------------------------------------------------------------¥ nora.LISTENER.lsnr¥n ONLINE ONLINE ptvm01 STABLE¥n ... ora.scan3.vip¥n 1 ONLINE ONLINE ptvm01 STABLE¥n --------------------------------------------------------------------------------¥n", "processId": 3255199, "processStatus": 0, "timeStart": "2021-09-21T00:02:29", "timeFinish": "2021-09-21T00:02:30", "jobExpiry": 3600, "status": "Completed", 例:ジョブのステータス確認
機能概要 • 19c 以前はキャッシュフュージョン時にメッセージの破損等を 検知した場合は ORA-600 が発生する その際、LMSプロセスがクラッシュする事で他のPDBも影響 を受けていた •
21c からは不一致を検知した場合、ブロック要求を再試行 するように変更され、LMSプロセスがクラッシュしにくくなった メリット • マルチテナント環境にて、特定PDBの動作に影響を受けて 他のPDBがダウンしにくくなった キャッシュ・フュージョン強化 Copyright © 2021, Oracle and/or its affiliates 6 Cache Fusion Hardening (21c) Instance1 Instance2 LMS LMS Cache Fusion PDB1 PDB1 PDB2 PDB2
機能概要 • PDBの起動管理ポリシーを自動またはランク(最高5、最低1)を指定可能 • ホストマシン再起動時 • 自動:再起動前の実行状態へ戻す形で順次起動 • ランク:高RANK設定のPDBを優先して順次起動 •
障害発生時 • ランク:全CDBを起動する為に必要なリソースが不足した場合、 RANKの低いPDBを停止し、高RANKの PDB 稼働を優先 設定方法とコマンド例 • DBCAでDatabase 作成時に指定 • srvctl modify database/pdb コマンドで変更 PDBの起動管理ポリシー Copyright © 2021, Oracle and/or its affiliates 27 $ srvctl modify database -db <db_unique_name> -policy RANK $ srvctl modify pdb -db <db_unique_name> -pdb <pdb_name> -rank <RANK>
機能概要 • PDB毎にランク付け(1~5)を行う事で、再起動時に ランクの高いPDBが属するCDBを優先起動 メリット • PDBに対してランク付け可能な管理ポリシーが 選択できるようになった dbcaのサイレントモード時も指定可能 DBCAでのRACのデータベース管理ポリシーの変更
Copyright © 2021, Oracle and/or its affiliates 28 dbca -createDatabase -gdbName global_database_name … [-managementPolicy [AUTOMATIC|RANK]] ※デフォルトは AUTOMATIC
ランクの指定時の動作イメージ PDBの起動管理ポリシー Copyright © 2021, Oracle and/or its affiliates 29
RANK3 RANK2 RANK1 ②ノード障害発生時 例:ノードのCPU数:4 各PDBのCPU_COUNT:2 必要となるCPUが不足する場合 RANKの低いPDBを停止 ③複数CDB環境でノード障害発生時 例:ノードのCPU数:4、 各CDBのCPU_COUNT :2 RANK3 RANK2 RANK1 ①DB再起動時 RANKの高いPDBを 優先して起動 RANK3 RANK2 RANK1 必要となるCPUが不足する場合RANK の低いPDBが属するCDBを停止
機能概要 • 19cまでは個別にPDBの起動状況を確認する必要があった • 21cからは 上記に加え srvctl コマンドで制御可能 メリット •
PDBが独立したCluster Resourceとなり、インスタンス の起動状況が確認可能に • PDBに紐づくサービスによる制御に加え、 クラスタ管理コマンドからPDB単位での制御が可能になった 利用イメージ • EMCCおよびSQLコマンドラインI/F以外からの操作 • 起動/停止/状態確認の各操作が容易になる クラスタウェア内のリソースとしてのPDBの統合 Copyright © 2021, Oracle and/or its affiliates 30 ORCL ORCLPDB1 ORCL ORCL ORCLPDB1
クラスタウェア内のリソースとしてのPDBの統合 Copyright © 2021, Oracle and/or its affiliates 31 CRSリソースとして認識されたPDB
機能概要 • プラガブル・データベース(PDB)クラスタ・リソースを使用すると、PDBリソースを直接マッピングおよび制御可能 • 管理者管理データベースで利用可能 メリット • Oracle RACデータベース内のPDBをより厳重で効果的に制御可能 コマンド例
プラガブル・データベース・クラスタ・リソース Copyright © 2021, Oracle and/or its affiliates 32 --PDB 起動 $ srvctl start pdb -db orcl213 -pdb ORCL213PDB1 --PDB 停止 $ srvctl stop pdb -db orcl213 -pdb ORCL213PDB1 -stopoption immediate --特定ノードのみ PDB 起動 $ srvctl start pdb -db orcl213 -pdb ORCL213PDB1 -node dbcs21c1 ORCL213 ORCL213PDB1
非推奨 • ポリシー管理データベース • クラスタ・ドメイン・アーキテクチャ - ドメイン・サービス・クラスタ 非サポート • サード・パーティ・クラスタウェアとの組み合わせ
• クラスタ・ドメイン・アーキテクチャ – メンバー・クラスタ Oracle Grid Infrastructure 21c 非推奨/非サポートになった機能 Copyright © 2021, Oracle and/or its affiliates 33
Oracle Grid InfrastructureがOracleインスタンスの起動/停止を制御している 管理者管理 (デフォルトかつ今後も存続) どのノードでどのOracleインスタンスを起動するかが固定 ポリシー管理 (21cで非推奨) クラスタを構成するノード数のみを指定 どのノードで起動されるかはシステムが決める
障害でも指定したインスタンス数を維持しようとする 非推奨 ポリシー管理データベース Copyright © 2021, Oracle and/or its affiliates 34 DBサーバー GI 1 Oracle インスタンス 1 GI 2 Oracle インスタンス 2 GI 4 Oracle インスタンス 3 GI 3 GI 5 Oracle インスタンス 4 DB 1 DB 2 DBサーバー GI 1 Oracle インスタンス 1 GI 2 Oracle インスタンス 2 GI 4 Oracle インスタンス 3 GI 3 GI 5 Oracle インスタンス 4 DB 1 DB 2 ※GI: Oracle Grid Infrastructure 固定 個数を維持 個数を維持
Oracle9i プラットフォームごとに固有のクラスタ ウェアとの組み合わせ • Solaris – SunCluster • HP-UX –
ServiceGuard • AIX – HACMP 非サポート サード・パーティ・クラスタウェアとの組み合わせ Copyright © 2021, Oracle and/or its affiliates 35 Oracle Database 3rd party Clusterware Oracle Grid Infrastructure Oracle Grid Infrastructure 3rd party Clusterware 3rd party Clusterware 3rd party Clusterware Oracle Database Oracle Database Oracle Database Oracle Grid Infrastructure Oracle Grid Infrastructure Oracle Database Oracle Database Oracle Database 10gから19c Oracle Clusterware(*)必須 • 11g Release 2でOracle Grid Infrastructureに統合 サード・パーティ・クラスタウェアとの組 み合わせは可能 Oracle Database 21c以降 Oracle Grid Infrastructureのみ サード・パーティ・クラスタウェアとの組 み合わせは非サポート
ドメイン・サービス・クラスタ Grid Infrastructureのクラスタを複数管理するクラスタ構成(12c Release 2~) 非推奨&非サポート クラスタ・ドメイン・アーキテクチャ Copyright © 2021,
Oracle and/or its affiliates 36 ASM Diskgroup GIMR Service ASM Service ASM IO Service ACFS Remote Service Trace File Analyzer Service Fleet Patching and Provisioning Service メンバー・クラスタ (ローカルASMあり) ASM Diskgroup Oracle Database メンバー・クラスタ (ローカルASMなし) Oracle Database ドメイン・サービス・クラスタ - 非推奨 メンバー・クラスタ - 非サポート
参考: Oracle Grid Infrastructure のインストーラ 非推奨&非サポート クラスタ・ドメイン・アーキテクチャ Copyright © 2021,
Oracle and/or its affiliates 37 Oracle Grid Infrastructure 21cでは: • Oracleスタンドアロン・クラスタの構成 →通常のRACはこれを構成 • Oracleドメイン・サービス・クラスタの構成 →非推奨 • Oracleメンバー・クラスタの構成 →非サポート
38 Data Guardの新機能 Copyright © 2021, Oracle and/or its affiliates
スタンバイの結果キャッシュ PDBリカバリ分離 ファスト・スタート・フェイルオーバーのコールアウト 標準化されたData Guard Brokerのディレクトリ構造 ファスト・スタート・フェイルオーバー構成の検証 Data Guard Broker遠隔同期インスタンス作成
最大パフォーマンス・モードでのData Guard遠隔同期インスタンス Oracle Database 21c Data Guardのサポートが終了した機能 Data Guardの新機能 Copyright © 2021, Oracle and/or its affiliates 39 Data Guard Brokerに関するアップデート Active Data Guardに関するアップデート
サーバー結果キャッシュ - 繰り返し実行される問合せのレスポンスを向上 SQL問合せ結果キャッシュ • SQL問合せの結果セットを共有プールに格納 • ブロックの再読取りおよび結果の再計算という多くのリソースを消費する操作を行う必要がなくなる • 結果の構成に使用されているデータの更新が行われた場合、そのキャッシュは自動的に無効化される
PL/SQLファンクション結果キャッシュ • ファンクションの結果セットを共有プールに格納 結果キャッシュ Copyright © 2021, Oracle and/or its affiliates 40 Oracle Databaseインスタンス ORDERS ORDER_ITEMS PRODUCT_INFORMATION CUSTOMERS SQL問合せ結果キャッシュ キャッシュ済みの結果が 返され、高速レスポンス 1. SELECT 2. SELECT 初回アクセス時に SQL問合せの結果 セットをキャッシュ
スタンバイ・データベースでもサーバー結果キャッシュが利用可能に。 Active Data Guardのスタンバイ・データベースでサーバー結果キャッシュを保持し、 レポートやその他のスタンバイへ繰り返し実行される問合せのパフォーマンス向上 表のRESULT_CACHE属性をSTANDBY ENABLEに設定にすることで機能有効化 問合せに複数表が関係する場合、問合せに含まれるすべての表で結果キャッシュの有効化が必要 ・表作成時の設定 ・既存表の属性変更
スタンバイの結果キャッシュ Copyright © 2021, Oracle and/or its affiliates 41 ALTER TABLE <テーブル名> RESULT_CACHE (STANDBY ENABLE); CREATE TABLE <テーブル名> (<列名> <列型>,…) RESULT_CACHE(STANDBY ENABLE); Oracle Databaseインスタンス ORDERS ORDER_ITEMS PRODUCT_INFORMATION CUSTOMERS SQL問合せ結果キャッシュ 1. SELECT 2. SELECT ORDERS ORDER_ITEMS PRODUCT_INFORMATION CUSTOMERS 同期・非同期 プライマリ・データベース スタンバイ・データベース
リカバリが必要なPDBをCDB全体の管理リカバリ処理とは別の分離されたプロセスで同期処理を実施 個別PDBのリカバリ処理が、全体のリカバリ処理に対する影響を排除 次のようなステップで実施 1.ホット・クローニング、Point-in-Timeリカバリまたはフラッシュバック・データベース操作を検出 2.対象のPDBをクローズ、対象のPDB以外の管理リカバリは続行 3.別のバックグラウンド・セッションで対象のPDBが自動的にリカバリ(PDBリカバリ分離) 4.リカバリ完了後に、PDBをオープン 5. 管理リカバリとPDBリカバリ分離の処理がマージされ、管理リカバリ継続 PDBリカバリ分離
Copyright © 2021, Oracle and/or its affiliates 42 PR00 アラートログの出力は PDB Side Recovery PR01 PR02 PR03
ファスト・スタート・フェイルオーバー(FSFO)の前後でコールアウト・スクリプトを実行可能 ロール切替の事前・事後で手動で実行していたタスクを自動実行し、ヒューマンエラーを低減 $DG_ADMIN/config_<ConfigurationSimpleName>/callout ディレクトリに下記ファイルを配置 - コールアウト構成ファイル(fsfocallout.ora*) - コールアウト前スクリプト* - コールアウト後スクリプト
VALIDATEコマンドで、構成の検証も可能 ファスト・スタート・フェイルオーバーのコールアウト Copyright © 2021, Oracle and/or its affiliates 43 * ファイル名は固定 *.sucおよび.errファイルの作成が必要
fsfocallout.oraの設定パラメータ パラメータ 説明 FastStartFailoverPreCallout FSFO実施前に実行されるコールアウト・スクリプトを指定 FastStartFailoverPreCalloutTimeout コールアウト・スクリプトのタイムアウト値(秒) FastStartFailoverPreCalloutSucFileName スクリプトが正常に実行されたことを示すsucファイル FastStartFailoverPreCalloutErrorFileName
プリコールアウト・スクリプトが作成するエラーファイルの名前 FastStartFailoverActionOnPreCalloutFailure タイムアウト値経過後にsucファイルが存在しない場合、またはエ ラーファイルが検出された場合に、オブザーバーが取るアクションを 指定 FastStartFailoverPostCallout FSFO実施後に実行されるコールアウト・スクリプトを指定 ファスト・スタート・フェイルオーバーのコールアウト Copyright © 2021, Oracle and/or its affiliates 44 コールアウト・スクリプトは、構成ファイル(fsfocallout.ora)と同じ場所に配置
# The pre-callout script that is run before fast-start failover
is enabled. FastStartFailoverPreCallout=fsfo_precallout # The timeout value (in seconds) for pre-callout script FastStartFailoverPreCalloutTimeout=1200 # The name of the suc file created by the pre-callout script. FastStartFailoverPreCalloutSucFileName=fsfo_precallout.suc # The name of the error file that the pre-callout script creates FastStartFailoverPreCalloutErrorFileName=precallout.err # Action taken by observer if the suc file does not exist after FastStartFailoverPreCalloutTimeout seconds # or if an error file is detected before FastStartFailoverPreCalloutTimeout seconds passed FastStartFailoverActionOnPreCalloutFailure=STOP # The post-callout script that is run after fast-start failover succeeds FastStartFailoverPostCallout=fsfo_postcallout fsfocallout.ora 設定例 Copyright © 2021, Oracle and/or its affiliates 45 正常終了時に出力されるファイル名 タイムアウトまでの時間(秒) FSFO開始前に実行するスクリプト スクリプトエラー時に出力されるファイル名 正常終了しなかった場合の対応 FSFO完了後に実行するスクリプト
DG_ADMIN環境変数を使用し、クライアント側ブローカ・ファイルのデフォルトの場所を指定 関連するファイル群が、指定したディレクトリ配下で管理されるため保守性が向上 DG_ADMINディレクトリのサブディレクトリに下記のクライアント側ブローカ・ファイルを格納 ・オブザーバ構成ファイル(observer.ora) ・オブザーバ・ログ・ファイル ・オブザーバ・ランタイム・データ・ファイル(fsfo.dat) ・ファスト・スタート・フェイルオーバーのコールアウト構成ファイル ・ファスト・スタート・フェイルオーバーのコールアウト・スクリプト・ファイル 正しく設定されていない場合 オブザーバー構成ファイルやオブザーバ・ランタイム・データ・ファイルは、作業ディレクトリに出力
ファスト・スタート・フェイルオーバーのコールアウト機能は利用不可 標準化されたData Guard Brokerのディレクトリ構造 Copyright © 2021, Oracle and/or its affiliates 46
クライアント側ファイルの$DG_ADMINサブディレクトリの内容 Copyright © 2021, Oracle and/or its affiliates 47 ディレクトリ名
配置されるファイル admin オブザーバ構成ファイル(observer.ora) config_<ConfigurationSimpleName>/log オブザーバ・ログ・ファイル(observer_hostname.log) config_<ConfigurationSimpleName>/dat オブザーバ・ランタイム・データ・ファイル(fsfo_hostname.dat) config_<ConfigurationSimpleName>/callout コールアウト構成ファイル(fsfocallout.ora) コールアウト前スクリプト コールアウト後スクリプト コールアウト前成功ファイル ConfigurationSimpleNameプロパティ 次のルールを使用して初期値が設定 • ブローカ構成名(名前が30文字以下で有効な文字が含まれる場合) • ブローカ構成名の最初の30文字(名前が30文字を超え、最初の30文字に有効な値が含まれる場合) • DB_UNIQUE_NAME 21cより前のバージョンでは明示的に指定することは不可
Data Guard Brokerにより、ファスト・スタート・フェイルオーバー(FSFO)構成に関する問題を検出可能 フェイルオーバー実施前に問題点を検証し、問題点をレポート VALIDATE FAST_START FAILOVERコマンドを使用すると、以下のような問題点を検出 • 設定が正しくないファスト・スタート・フェイルオーバー・パラメータ •
ファスト・スタート・フェイルオーバーの有効化または開始を妨げる問題 • ファスト・スタート・フェイルオーバーの開始後に実行されたアクションに影響する問題 • ブローカ構成の安定性に影響を与える可能性がある問題 • ファスト・スタート・フェイルオーバーのコールアウト構成スクリプトに関する問題 ファスト・スタート・フェイルオーバー構成の検証 Copyright © 2021, Oracle and/or its affiliates 48 DGMGRL> VALIDATE FAST_START FAILOVER;
DGMGRL> VALIDATE FAST_START FAILOVER; Fast-Start Failover: Enabled in Potential Data
Loss Mode Protection Mode: MaxPerformance Primary: North_Sales Active Target: South_Sales Fast-Start Failover Not Possible: Fast-Start Failover observer not started Post Fast-Start Failover Issues: Flashback database disabled for database ‘dgv1’ Other issues: FastStartFailoverThreshold may be too low for RAC databases. Fast-start failover callout configuration file “fsfocallout.ora” has the following issues: Invalid lines foo=foo The specified file "./precallout" contains a path. 構成検証例 Copyright © 2021, Oracle and/or its affiliates 49 コールアウト構成スクリプトの問題 ブローカ構成の安定性に影響を与える可能性がある問題 FSFO開始後に実行されたアクションに影響する問題
Data Guard Brokerから遠隔同期インスタンスの作成、追加可能に。 遠隔同期インスタンスを利用することで、長距離間のData Guard構成でのデータ損失をゼロにすることが可能 これまでData Guard Brokerを利用する場合、遠隔同期インスタンスを作成後にADD FAR_SYNCコマンドで Data
Guard Broker構成に追加が必要 Data Guard BrokerからCREATE FAR_SYNCコマンドにより遠隔同期インスタンスの作成、追加可能 Data Guard Broker遠隔同期インスタンス作成 Copyright © 2021, Oracle and/or its affiliates 50 実行例 DGMGRL> CREATE FAR_SYNC bostonfs AS CONNECT IDENTIFIER IS "bostonfs_conn_str" PARAMETER_VALUE_CONVERT "boston","bostonfs" SET LOG_FILE_NAME_CONVERT "boston","bostonfs" SET DB_RECOVERY_FILE_DEST "$ORACLE_HOME/dbs/" SET DB_RECOVERY_FILE_DEST_SIZE "100G" RESET UNDO_TABLESPACE; プライマリ・データベース スタンバイ・データベース 同期 非同期 遠隔同期インスタンス
ファスト・スタート・フェイルオーバー(FSFO)が有効な遠隔同期インスタンス構成の場合でも、 同期だけでなく、非同期(最大パフォーマンス・モード)での転送が可能になり、新しい構成パターンを選択可能 最大パフォーマンス・モードでのData Guard遠隔同期インスタンス Copyright © 2021, Oracle and/or its
affiliates 51 保護モード 遠隔同期インスタンスの REDO送信のサポート フィジカル・スタンバイの サポート ロジカル・スタンバイの サポート 最大保護 いいえ はい いいえ 最大可用性 はい はい はい 最大パフォーマンス はい はい はい プライマリ・データベース スタンバイ・データベース 同期 非同期 遠隔同期インスタンス 非同期
以前までのリリースで非推奨だったData Guard Brokerのパラメータが21cより非サポート ArchiveLagTarget LsbyMaxEventsRecorded DataGuardSyncLatency LsbyMaxServers LogArchiveMaxProcesses LsbyMaxSga LogArchiveMinSucceedDest
LsbyPreserveCommitOrder LogArchiveTrace LsbyRecordAppliedDdl StandbyFileManagement LsbyRecordSkipDdl DbFileNameConvert LsbyRecordSkipErrors LogArchiveFormat LsbyParameters LogFileNameConvert Oracle Database 21c Data Guardのサポートが終了した機能 Copyright © 2021, Oracle and/or its affiliates 52
前半終了:このあと休憩 Copyright © 2021, Oracle and/or its affiliates 53
None
Our mission is to help people see data in new
ways, discover insights, unlock endless possibilities. 55