Oracle Autonomous Databaseに慣れる(6)


昨年、Oracle Autonomous DatabaseにJSON用データベースが提供されました。データベースとしては基本的にOracle Databaseと同じですが、利用価格を下げ、シンプルなアクセスメソッド(SODA)を提供しています。ここではデータベースのインフラとしてAutonomous Transaction Processing (ATP) と JSON データベースがどのように違うのかを確認しました。

JSONデータベースの作成

JSONデータベースの作成はOracle Cloud 「スタート・ガイド」画面から「ATPデータベースの作成」または「ADWデータベースの作成」をクリックし、「ワークロード・タイプの選択」で「JSON」を選択します。

「デプロイメント・タイプの選択」以降のCPU数やストレージ、ADMINユーザーのパスワード等はATP/ADWと同じです。JSON用の設定項目はありません。

ATPとの比較

どちらも1 OCPUを指定して作ったATPとJSONデータベースについて比較しました。

バージョン

バージョン情報はATP/ADW/JSONで違いはありません。Oracle Database 19c (19.5) が採用されています。

SQL> SELECT * FROM v$version;

BANNER                                                                  BANNER_FULL                                                             BANNER_LEGACY                                                           CON_ID
----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- -----                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production  Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production  Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production      0                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
                                                                        Version 19.5.0.0.0                                                                                                                                                                                                                                                                                                            

初期化パラメータ

初期化パラメーターは大きく違いません。データベース名やファイル名等を除く違いとしては以下のようになります。JSONデータベースの方がやや大きいインフラになっていることがわかります。ただこれはATPがAlways Free環境であることも関係するかもしれません。OCPUとしては1を指定していますが、PDBから参照できる初期化CPU_COUNTはより大きい値を持っています。Resource Manager等の仕組みでプロセッサ使用量を制限していると思われます。

初期化パラメータ名 ATP JSON
cluster_database_instances 2 8
cpu_count 2 6
cpu_min_count 2 6
db_recovery_file_dest_size 21167764M 123789329M
db_writer_processes 11 12
dml_locks 264332 264440
gcs_server_processes 4 5
optimizer_capture_sql_quarantine TRUE FALSE
pdb_lockdown OLTP JDCS
resource_manager_cpu_allocation 92 100
sessions 20 300
shared_pool_reserved_size 2925946470 4617089843
transactions 66083 66110
undo_tablespace UNDOTBS1 UNDO_8

上記以外に名前や接続情報に関する違いがみられます。

初期化パラメータ名 異なる点 備考
audit_file_dest /u02/app/oracle/admin/{db_name}/adump
connection_brokers ((TYPE=DEDICATED)(BROKERS=1)),((TYPE=EMON)(BROKERS=1)) スペースの違い
control_files +DATA/FEPP1POD/CONTROLFILE/current.{ID}.{ID},+RECO/FEPP1POD/CONTROLFILE/current.{ID}.{ID}
core_dump_dest /u02/app/oracle/diag/rdbms/{db_name}/{instance_name}/cdump
db_name {db_name}
db_unique_name {db_unique_name}
dg_broker_config_file1 /u02/app/oracle/product/19.0.0.0/dbhome_1/dbs/dr1{db_name}.dat
dg_broker_config_file2 /u02/app/oracle/product/19.0.0.0/dbhome_1/dbs/dr2{db_name}.dat
dispatchers (PROTOCOL=TCP) (SERVICE={db_name}XDB)
instance_name {instance_name}
spfile DATA/{db_name}/PARAMETERFILE/spfile.{ID}.{ID}

表領域の構成

表領域はATPとJSONデータベースに違いはありません。基本的にはユーザー用表領域としてDATA、DBFS_DATAが提供されている部分も同じです。
その他の表領域についてはUNDO表領域の構成は違いますが他は同じです。

SQL> SELECT TABLESPACE_NAME, BLOCK_SIZE, BIGFILE, EXTENT_MANAGEMENT, ALLOCATION_TYPE, SEGMENT_SPACE_MANAGEMENT FROM DBA_TABLESPACES ORDER BY 1;

TABLESPACE_NAME                BLOCK_SIZE BIG EXTENT_MAN ALLOCATIO SEGMEN
------------------------------ ---------- --- ---------- --------- ------
DATA                                 8192 YES LOCAL      SYSTEM    AUTO
DBFS_DATA                            8192 YES LOCAL      SYSTEM    AUTO
SAMPLESCHEMA                         8192 YES LOCAL      SYSTEM    AUTO
SYSAUX                               8192 YES LOCAL      SYSTEM    AUTO
SYSTEM                               8192 YES LOCAL      SYSTEM    MANUAL
TEMP                                 8192 YES LOCAL      UNIFORM   MANUAL
UNDOTBS1                             8192 YES LOCAL      SYSTEM    MANUAL
UNDO_2                               8192 YES LOCAL      SYSTEM    MANUAL

8行が選択されました。

ASMの構成

ASMディスクグループの構成もATPと同じです。DATAとRECOが用意されています。

NAME                           ALLOCATION_UNIT_SIZE BLOCK_SIZE TYPE     TOTAL_MB
------------------------------ -------------------- ---------- ------ ----------
DATA                                        4194304       4096 HIGH    269033472
RECO                                        4194304       4096 HIGH     67239936

JSON用データベースのインフラは基本的にはATP/ADWと同じOracle Databaseを使って実装されており、特殊なチューニングは行われていないように見えます。このためSODAの実装や、利用料金の違いはあってもテクノロジーとしては通常のOracle Databaseと考えてよさそうです。Oracle Database 21cではネイティブなJSON型が提供されていることから、今後JSONデータベースとしての特徴が出てくる可能性はあります。