先日からOCIのOracle Base Database Serviceで、新しいロングタームリリースであるOracle Database 23cが選択できるようになっていたため、1つ前のロングタームリリースの19cと23cで初期化パラメータの差を調べてみた。
0.調査方法
以前、19cと21cの初期化パラメータの差を調査したときと同様に、下記のSQLを19cと23cでそれぞれ実行し、差分を確認する。
SELECT name, default_value, isdeprecated, isses_modifiable, issys_modifiable, ispdb_modifiable, isinstance_modifiable, description, update_comment FROM v$parameter ORDER BY name;
使用したOracle Databaseのバージョンは以下の通り。23cについては、現時点でOCI上でしか提供されていないため、もしオンプレ版とOCI版にデフォルト値などに若干の差異があることが判明した場合、本記事を後日更新したいと思う。
調査の結果、以下5種類の差分について確認できた。
- 23cでは廃止されたパラメータ
- 23cでは非推奨とされたパラメータ
- 19cと23cでデフォルト値が異なるパラメータ
- 19cと23cで設定可能範囲が変更されたパラメータ ←本記事はここまで
- 19c→23cで新規登場したパラメータ
1.廃止されたパラメータ
23cで廃止されたパラメータは5つ。これらは全て19cの時点で非推奨になっていた。
パラメータ | パラメータ概要 |
---|---|
cluster_database_instances | クラスタ・データベースの一部として構成されたインスタンスの数 |
log_archive_start | インスタンス起動時にARCHプロセスを自動起動させるか |
remote_os_authent | OS_AUTHENT_PREFIXパラメータ値でリモート・クライアント認証させるか |
sec_case_sensitive_logon | データベースにおけるパスワードの大/小文字の区別を有効とするか |
unified_audit_sga_queue_size | 統合監査用のSGAキューのサイズ |
※cluster_database_instancesについては、23cでは隠しパラメータとなっていた。
2.非推奨とされたパラメータ
23cで非推奨とされたパラメータは5つ。
パラメータ | パラメータ概要 |
---|---|
audit_file_dest | 従来型監査における監査証跡の出力先ディレクトリ |
audit_syslog_level | 従来型監査におけるSYSおよび標準OS監査レコードをシステム監査ログへ書き込む際にSYSLOGを使用する際の設定 |
audit_trail | 従来型監査の使用設定 |
encrypt_new_tablespaces | 新しく作成されるユーザ表領域の暗号化実施設定 |
pre_page_sga | 統合監査用のSGAキューのサイズ |
3つのaudit_*のパラメータは、23cから従来型監査が非サポートになったため、encypt_new_tablespacesは、代わりとなるtablespace_encryptionの利用が推奨されたため、pre_page_sgaは殆ど性能に寄与せず問題の原因となることから、23cから非推奨となったようだ。
3.デフォルト値が変わったパラメータ
19cと23cでデフォルト値に差があったパラメータは16個あった。ただし、shared_serversについては、値が大きすぎる(もしくは負数?)のと、マニュアル上ではデフォルト値が19cでも0で差がないので、差のあるパラメータは15個と考えてよい気がする。
パラメータ | 19cの値 | 23cの値 | パラメータ概要 |
---|---|---|---|
audit_sys_operations | TRUE | FALSE | SYSxx権限(SYSDBA, SYSASMなど)を使用して直接発行されたユーザーSQL文の監査を有効または無効にする |
awr_pdb_autoflush_enabled | FALSE | TRUE | CDB内のすべてのPDBまたはCDB内の個々のPDBに対して、AWRスナップショットの自動取得を有効または無効にする |
compatible | 23.0.0 | Oracle Databaseを動作させるバージョンを指定 | |
db_lost_write_protect | NONE | AUTO | 欠落した書込みの検出機能の使用有無を指定 |
db_securefile | PERMITTED | PREFERRED | LOBをSecurefileとして動作させるかの指定 |
enable_pluggable_database | FALSE | TRUE | CDB構成でデータベースを起動するか |
max_datapump_jobs_per_pdb | 100 | AUTO | PDBごとの同時Oracle Data Pumpジョブの最大数 |
max_datapump_parallel_per_job | 50 | AUTO | Oracle Data Pumpジョブごとに許可されるパラレル処理の最大数 |
max_dump_file_size | unlimited | 32M | トレースファイルの最大サイズ(Byte) |
object_cache_optimal_size | 10240000 | 51200000 | オブジェクトキャッシュサイズ最大サイズを超えた場合にセッションオブジェクトキャッシュを縮小する際のサイズ(Byte) |
optimizer_features_enable | 19.1.0 | 23.1.0 | オプティマイザを動作させるバージョン |
permit_92_wrap_format | TRUE | FALSE | Oracle9iR2以前でラップしたバージョンのPL/SQLソース・テキストを使用できる様にするか |
plsql_warnings | NONE | DISABLE:ALL | PL/SQLコンパイラによる警告メッセージに関する設定 |
shared_servers | 4294967294 | 0 | インスタンスの起動時に作成する共有サーバープロセスの数 |
spatial_vector_acceleration | FALSE | TRUE | 空間ベクトル・パフォーマンス・アクセラレータ(VPA)機能を使用するか |
use_dedicated_broker | TRUE | NONE | 専用サーバの起動にブローカ使用する/しないを設定 |
23cでは非CDB構成がサポート対象外であることからenable_pluggable_databaseはTRUEに、Oracle Spatialのオプションライセンスが不要になったことから、spatial_vector_accelerationもTRUEになったと考えられる。
db_lost_write_protectのデフォルト値が23cからAUTOになっていたが、現時点の23cのマニュアルには、AUTOに関する記述がない。DataGuardを構成している場合に、スタンバイDBの適用ラグが大きい場合のI/O待機を改善するために実装された値のようだ。そこまで詳細は記載されていないが、サポート契約を締結されている方は、Doc ID:2910785.1をご参照いただきたい。
db_securefileのデフォルト値が23cからPREFERREDになったことから、このパラメータをデフォルト値で運用した場合、LOBデータ列を含むテーブルを作成するCREATE TABLE文のSTORAGE句内で、明示的にBASICFILEが指定されていないと、LOBはSecureFiles形式で作成される様になる。何らかの事情でBasicFilesにしたい場合は、本パラメータを調整するか、CREATE TABLE文を修正するなどの対応を検討する必要がある。
※なお、マニュアルの記述上では19cでもデフォルト値がPREFERREDであるのに、私が確認した環境(COMPATIBLE=19.0.0)ではPERMITTEDであったが、これは19cのバグによるものであるとのことだった。
4.設定可能範囲に変更があったパラメータ
19cと23cで設定可能範囲(SESSION/SYSTEMでの変更、PDB単位での変更)に差があったパラメータは9つ。ただし、aq_tm_processesとclient_statistics_levelについては、マニュアル上では差がなかったが、19cではaq_tm_processesはSESSION単位での変更ができたのでドキュメントバグと考えられる。client_statistics_levelについては、19cのPDB環境が用意できたら確認してみようと思う。
パラメータ | 23cでの変更点 | パラメータ概要 |
---|---|---|
aq_tm_processes | SESSION単位での変更が不可 | AQ(qmon)の起動プロセス数 |
client_statistics_level | PDB単位での変更が可 | DBクライアントがDBにNW統計を報告するかどうかを制御 |
db_file_name_convert | SYSTEM/PDB単位での変更が可 | プライマリDB上のデータファイル名をスタンバイDB上のファイル名に変換する際のパターン |
distributed_lock_timeout | SYSTEM/PDB単位での変更が可 | 分散トランザクションがロックされているリソースを待機する秒数 |
fast_start_parallel_rollback | PDB単位での変更が可 | 終了したトランザクションのリカバリ並列度を指定 |
log_file_name_convert | SYSTEM単位での変更が可 | プライマリDB上のログファイル名をスタンバイDB上のファイル名に変換する際のパターン |
processes | SYSTEM単位での変更が可 | Oracleユーザプロセスの最大数 |
shrd_dupl_table_refresh_rate | SESSION単位での変更が可 | シャード内で重複した表のリフレッシュ間隔(秒) |
unified_audit_systemlog | SYS単位での変更が可 | 統合監査レコードのキーフィールドをSYSLOG(Windowsの場合はイベントビューア)に出力するかを設定 |
23cで新規追加されたパラメータは多数あるため、次回に。