NTNX>日記

個人的な趣味による Nutanix Community Edition 日記。Japanese のみですみません。

NDB の Oracle Database パラメータ プロファイルに初期化パラメータを追加してみる。

Nutanix Database Service(NDB)は、プロビジョニングする DBMS のパラメータを、データベース パラメータ プロファイルで設定します。今回は NDB Server UI では設定できない初期化パラメータを、REST API でプロファイルに追加してみます。

今回の内容です。

今回の環境

  • NDB Server 2.5.2.1
  • Nutanix CE 2.0
  • Oracle Database 21c(21.3.0.0.0)
  • curl(Linux マシンから実行)

NDB Server UI でのデータベース パラメータ プロファイル

デフォルトで用意される、Oracle Database のデータベース パラメータ プロファイル(DEFAULT_ORACLE_PARAMS)では、下記のように初期化パラメータが設定されています。

そして、Oracle Database のデータベース パラメータ プロファイルを新規作成する画面では、下記の初期化パラメータが設定できます。

  • UNDO_TABLESPACE
  • TEMP_TABLESPACE
  • MEMORY_TARGET
  • SGA_TARGET
  • PGA_AGGREGATE_TARGET
  • SHARED_SERVERS
  • DB_BLOCK_SIZE
  • PROCESSES
  • JOB_QUEUE_PROCESSES
  • NLS_LANGUAGE
  • NLS_TERRITORY

これらのパラメータの入力画面は、下記のようになっています。

1/3

2/3

3/3

データベース パラメータを追加したプロファイルの作成

NDB Server UI でのデータベース パラメータ プロファイル作成画面では、入力フォームが用意されていないパラメータが追加できません。そこで、REST API でパラメータを追加してみます。今回は、設定されたことがわかりやすい max_idle_time を追加してみます。

 

REST API に渡す JSON データは、「同等の API」ボタンから取得しておきます。

デフォルトでは、下記のような JSON データが生成されています。

gist.github.com

JSON データを、curl を実行するマシンに保存して、編集しておきます。

今回は下記のような JSON ファイルを作成しました。

ndb_oracle_param_custom.json

  • 4行目:プロファイル名(oracle_param_custom)を追記
  • 5行目: プロファイルの説明(Description)を追記
  • 10行目~: 初期化パラメータを追記(max_idle_time: 2分)

gist.github.com

curl コマンドで NDB の REST API をコールして、プロファイルを作成します。

NDB Server のアドレス、ユーザー、パスワードは、シェル変数に格納しておきます。

$ NDB=lab-ndb-01.go-lab.jp
$ USER=admin
$ PASS='パスワード'

curl で NDB API v0.9 の POST /profiles をコールしてプロファイルを作成します。

$ curl -k \
-X POST \
--url https://$NDB/era/v0.9/profiles \
-u "$USER:$PASS" \
-H 'Content-Type: application/json' \
-d @ndb_oracle_param_custom.json

NDB Server UI で、作成されたプロファイルに MAX_IDLE_TIME が追加されていることが確認できます。

作成したプロファイルでプロビジョニングされたデータベースの様子

作成したデータベース パラメータ プロファイル(oracle_param_custom)をもとに、データベース(Oracle インスタンス名は oradb)をプロビジョニングしてみます。

プロビジョニングされた Oracle Database で、max_idle_time:2 が設定されている oracle_param_custom プロファイルが割り当てられていることが確認できます。

 

sqlplus でプロビジョニングされた DB インスタンスに接続してみると、実際にmax_idle_time=2(デフォルトは0)が設定されていることが確認できました。

-bash-4.2$ sqlplus / as sysdba

SQL*Plus: Release 21.0.0.0.0 - Production on Sat Sep 30 12:15:47 2023
Version 21.3.0.0.0

Copyright (c) 1982, 2021, Oracle.  All rights reserved.


Connected to:
Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0

SQL> col HOST_NAME for a20
SQL> select INSTANCE_NAME,HOST_NAME from v$instance;

INSTANCE_NAME    HOST_NAME
---------------- --------------------
oradb            ndb-oracle-sv-02

SQL> show parameter max_idle_time

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
max_idle_time                        integer     2
SQL>

以上。

©2023 gowatana
クリエイティブ・コモンズ・ライセンスこの 作品 は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。