PDB毎に初期化パラメータを変更できるんですよ!(制限はあるけど) #3 - 消えたPDBの初期化パラメータの謎... Truth is out there. Tweet
CDB、PDBの各データベースで変更可能な初期化パラメータを変更してもspfileに書き出しているのはCDBのパラメータだけなのです。
spfileのタイムスタンプを確認してもCDBの時だけしかタイムスタンプは更新されません。もちろん心の目で見てもw
同じことで不思議に感じている方々も多いようです
Living with Oracle / oracle 12c database - pluggable database and spfile/parameter - how does that work?
いったい、どこに書き込んでるんでしょう....
PDB個別に設定した初期化パラメータは、spfileに書き込まれていないのは確かです。
どこかしらない、Cloud上に書いてくれちゃってるのでしょうかw 12c だけに... (ありえんw たぶん...
ということは、DBに書くしかないじゃないですか!
どうやって調べるか....
あ、そうだ、 alter database set system hogehoge = xxxx scope=spfile をPDBでタイプしてるところを、心の目で見ればいいんだ :)
dbms_monitor.session_trace_enable.............awrレポートでも見えるわな、これw なんで気づかんのだ、俺 ><
....
見つけた
SYS@orcl12c> show con_name
CON_NAME
------------------------------
CDB$ROOT
SYS@orcl12c> select table_name from dba_tables where table_name like '%SPFILE%';
TABLE_NAME
------------------------------
PDB_SPFILE$
SYS@orcl12c> conn sys@pdborcl as sysdba
パスワードを入力してください:
接続されました。
SYS@pdborcl> show con_name
CON_NAME
------------------------------
PDBORCL
SYS@pdborcl> select table_name from dba_tables where table_name like '%SPFILE%';
TABLE_NAME
------------------------------
PDB_SPFILE$
SYS@pdborcl> conn sys@pdbdiscus as sysdba
パスワードを入力してください:
接続されました。
SYS@pdbdiscus> show con_name
CON_NAME
------------------------------
PDBDISCUS
SYS@pdbdiscus> select table_name from dba_tables where table_name like '%SPFILE%';
TABLE_NAME
------------------------------
PDB_SPFILE$
PDB_SPFILE$というSYSユーザの表の書き込んでいました!
CDBのPDB_SPFILE$を覗いてみます。
SYS@orcl12c> show con_name
CON_NAME
------------------------------
CDB$ROOT
SYS@orcl12c> l
1 select
2 db_uniq_name
3 ,sid
4 ,pdbs.name as "PDB NAME"
5 ,psf.name as "PARAMETER NAME"
6 ,value$
7 from
8 pdb_spfile$ psf
9 join v$pdbs pdbs
10 on
11 psf.pdb_uid = pdbs.con_uid
12 order by
13 db_uniq_name
14 ,sid
15 ,pdbs.name
16 ,psf.name
17*
SYS@orcl12c> /
DB_UNIQ_NAME SID PDB NAME PARAMETER NAME VALUE$
-------------- -------------- -------------- ------------------------------ --------------------------------------------------
orcl12c * PDBDISCUS open_cursors 500
DB_UNIQ_NAME SID PDB NAME PARAMETER NAME VALUE$
-------------- -------------- -------------- ------------------------------ --------------------------------------------------
orcl12c * PDBORCL open_cursors 200
いました! いましたよ〜〜〜〜。 PDBで設定した初期化パラメータが! (ちなみに、alter system resetコマンドで上記表から削除されます!)
実は、謎は、まだまだ、続くんです。
上記クエリはCDB上で実行しました。 PDB上で設定した初期化パラメータなのだから、PDB側のpdb_spfile$には対象PDBの初期化パラメータが見えるはず...
PDB上のpdb_spfile$を問い合わせてみると.....
SYS@pdborcl> show con_name
CON_NAME
------------------------------
PDBORCL
SYS@pdborcl> select name,value$ from pdb_spfile$;
レコードが選択されませんでした。
SYS@pdbdiscus> show con_name
CON_NAME
------------------------------
PDBDISCUS
SYS@pdbdiscus> select name,value$ from pdb_spfile$;
レコードが選択されませんでした。
むむ! むむむむむむ!!!!! 私個人は実に普通というか常識的な想像を働かせてPDB上のpdb_spfile$表を覗いたのに、裏切られた!!!
PDB側で設定した初期化パラメータなのにPDB側のpdb_spfile$表には格納されていなんです。 CDB側のpdb_spfile$しか格納されていません。(実はBugなんてことはないですよね)
俺の初期化パラメータなのに!
部下の手柄は上司の手柄....的なw いや〜〜〜な感じですね。
PDB側のpdb_spfile$表には、いつ初期化パラメータが入るのでしょうか?
それとも、いまの仕様では入ることはない....まだ見ぬ先のリリースでは利用されるのでしょうか....謎は深まる。というか気になって寝れないw
何か気づいたら。続きはあるかもしれません. 一旦シリーズ終了 :)
・PDB毎に初期化パラメータを変更できるんですよ!(制限はあるけど) #1
・PDB毎に初期化パラメータを変更できるんですよ!(制限はあるけど) #2 - PDBの初期化パラメータは何処!?
| 固定リンク | 0
トラックバック
この記事へのトラックバック一覧です: PDB毎に初期化パラメータを変更できるんですよ!(制限はあるけど) #3 - 消えたPDBの初期化パラメータの謎... Truth is out there.:
コメント