Amazon RDS for Oracle(19c)で非推奨パラメーターの特定と対処方法

2021.11.10

みなさんこんにちは、杉金です。

Amazon RDS for Oracleで非推奨のパラメーターを使用しているとRDS起動時に以下のメッセージが表示されます。(RDSコンソールのログとイベント)

Database instance has obsolete or deprecated parameter(s)

非推奨のパラメーターを使っていますよ、というメッセージですね。
バージョンアップ時に旧バージョンと同じパラメーターを使用していると起こり得るケースだと思います。本記事では設定しているパラメーターのうち、どれが非推奨なのかの特定とその対処方法についてご紹介します。非推奨のパラメーターを使い続けることにより思わぬ不具合を引き起こす可能性もありますので、このメッセージは無視しない方が良いでしょう。

検証環境

RDS for Oracleバージョン:19.0.0.0.ru-2021-04.rur-2021-04.r1

特定方法

以下のクエリで非推奨パラメーターを特定させます。

実行するクエリ

select p.name,p.value from v$parameter p, v$spparameter s where s.name=p.name and p.isdeprecated='TRUE' and s.isspecified='TRUE';

クエリ結果

NAME
------------------------------
VALUE
------------------------------
parallel_adaptive_multi_user
TRUE

「isspecified='TRUE'」でSPファイルで指定しているパラメーターを抜き出して、かつ「isdeprecated='TRUE'」で非推奨のパラメーターのみ引っかけるようにしています。 今回は例としてparallel_adaptive_multi_userTRUEに設定してみました。

非推奨パラメーターの一覧取得

参考情報として、非推奨パラメーターは以下のクエリで一覧を取得できます。

実行するクエリ

select name from v$parameter where isdeprecated = 'TRUE' ORDER BY 1;

クエリ結果

NAME
----------------------------------
active_instance_count
asm_preferred_read_failure_groups
background_dump_dest
buffer_pool_keep
buffer_pool_recycle
cluster_database_instances
commit_write
cursor_space_for_time
db_block_buffers
fast_start_io_target
instance_groups
lock_name_space
log_archive_start
parallel_adaptive_multi_user
plsql_debug
plsql_v2_compatibility
rdbms_server_dn
remote_os_authent
resource_manager_cpu_allocation
sec_case_sensitive_logon
serial_reuse
sql_trace
unified_audit_sga_queue_size
user_dump_dest

24 rows selected.

今回のparallel_adaptive_multi_userは12cのRelease2(12.2)で非推奨となりました。次のOracle公式ページを確認して、別機能で代替するかの検討が必要になります。

Oracle Database 12cリリース2 (12.2)で非推奨となった初期化パラメータ

非推奨パラメーターを使用しない設定にする

重要なポイントとして、パラメーターグループから対象の設定値をTRUEからFALSEに変えてもメッセージは解消されません。設定値に関わらず指定していることで使用していると見なされるのでしょう。対処方法としてはデフォルト値に戻すことです。(全てのパラメーターで確認したわけではないため、ものによっては例外もあるかもしれません)

デフォルト値に戻す方法について説明します。まずは対象のパラメーターグループを選択して「パラメーター編集」ボタンを押します。

対象のパラメーターを選択して「元に戻す」を選択します。

デフォルトに戻すかのメッセージが出ますので「パラメーターのリセット」を選択します。これでengine-defaultの設定に戻ります。

動作確認

RDSを再起動してメッセージが解消されたことを確認します。

最後に

非推奨パラメーターの特定方法はRDSに限定しない話ですが、対処方法はRDS特有のものでしたので今回ご紹介しました。RDSのログに限らずOracleのアラートログでORA-32004で検知するケースもあります。いずれにしても非推奨は避けたいですね。ちなみに私は梅水晶が好きです。この記事がどなたかのお役に立てればと思います。