データベースについて調べてみた

データベースについて調べたことのメモ。Oracle要素多めになる予定。

Oracle19cと21cの初期化パラメータの差分について調べてみた ~その1~

そろそろ次のロングタームリリースであるOracle Database 23cがリリースされるが、よく考えてみたら21cすら触ったことがなかったので、23cがリリースされた後に19cとの比較をする練習として、19cと21cの初期化パラメータの差を調べてみた。

 

0.調査方法

下記のSQLを19cと21cでそれぞれ実行し、差分を確認する。

SELECT
   name, default_value, isdeprecated, isses_modifiable, issys_modifiable, ispdb_modifiable,
   isinstance_modifiable, description, update_comment
FROM v$parameter ORDER BY name;

 

使用したOracle Databaseのバージョンは以下の通り。

 

調査の結果、以下4種類の差分について確認できた。

  1. 21cでは廃止されているパラメータ
  2. 19cと21cでデフォルト値が異なるパラメータ
  3. 19cと21cで設定可能範囲が変更されているパラメータ
  4. 19c→21cで新規登場したパラメータ

 

1.廃止されたパラメータ

21cで廃止されたパラメータは4つ。これらは19cの時点で非推奨になっていた。

パラメータ パラメータ概要
cluster_database_instances クラスタ・データベースの一部として構成されたインスタンスの数
remote_os_authent OS_AUTHENT_PREFIXパラメータ値でリモート・クライアント認証させるか
sec_case_sensitive_logon データベースにおけるパスワードの大/小文字の区別を有効とするか
unified_audit_sga_queue_size 統合監査用のSGAキューのサイズ

cluster_database_instancesについては、21cでは隠しパラメータとなっていた。

 

 

2.デフォルト値が変わったパラメータ

19cと21cでデフォルト値に差があったパラメータは5つ。ただし、shared_serversについては、値が大きすぎる(もしくは負数?)のと、マニュアル上ではデフォルト値が19cでも0で差がないので、差のあるパラメータは4つと考えてよい気がする。

パラメータ 19cの値 21cの値 パラメータ概要
enable_pluggable_database FALSE TRUE CDB構成でデータベースを起動するか
optimizer_features_enable 19.1.0 21.1.0 オプティマイザを動作させるバージョン
permit_92_wrap_format TRUE FALSE Oracle9iR2以前でラップしたバージョンのPL/SQLソース・テキストを使用できる様にするか
shared_servers 4294967294 0 インスタンスの起動時に作成する共有サーバープロセスの数
spatial_vector_acceleration FALSE TRUE 空間ベクトル・パフォーマンス・アクセラレータ(VPA)機能を使用するか

21cでは非CDB構成がサポート対象外であることからenable_pluggable_databaseはTRUEに、Oracle Spatialのオプションライセンスが不要になったことから、spatial_vector_accelerationもTRUEになったのだろう。

 

 

3.設定可能範囲に変更があったパラメータ

19cと23cで設定可能範囲(SESSION/SYSTEMでの変更、PDB単位での変更)に差があったパラメータは7つ。ただし、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単位での変更が可 分散トランザクションがロックされているリソースを待機する秒数
log_file_name_convert SYSTEM単位での変更が可 プライマリDB上のログファイル名をスタンバイDB上のファイル名に変換する際のパターン
processes SYSTEM単位での変更が可 Oracleユーザプロセスの最大数
shrd_dupl_table_refresh_rate SESSION単位での変更が可 シャード内で重複した表のリフレッシュ間隔(秒)

 

23cで新規追加されたパラメータは多数あるため、次回に。

 

 

前回の記事:データパッチにおけるUPDATE vs INSERT方式について調べてみた ~ その3 ~