且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

[20140118]oracle参数在PluggableDatabases

更新时间:2022-09-08 12:13:24

 

SYS@test> @ver
BANNER                                                                               CON_ID
-------------------------------------------------------------------------------- ----------
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production              0

SYS@test> select name,open_mode,con_id from v$pdbs;
NAME                 OPEN_MODE      CON_ID
-------------------- ---------- ----------
PDB$SEED             READ ONLY           2
TEST01P              READ WRITE          3


SYS@test> show parameter spfile ;
NAME    TYPE    VALUE
------- ------- -------------------------------------------------------------------
spfile  string  D:\APP\ORACLE\PRODUCT\12.1.0\DBHOME_1\DATABASE\SPFILETEST.ORA

D:\tools\rlwrap>sqlplus sys/xxxxx@test01p as sysdba
sqlplus sys/17cao1MS@test01p as sysdba
SQL*Plus: Release 12.1.0.1.0 Production on Fri Jan 17 21:02:17 2014
Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SYS@test01p> show parameter spfile ;

NAME    TYPE    VALUE
------- ------- --------------------------------------------------------------------
spfile  string  D:\APP\ORACLE\PRODUCT\12.1.0\DBHOME_1\DATABASE\SPFILETEST.ORA

--可以发现spfile都是一样。如果Pluggable Databases或者他们之间的数据库不同情况如何呢?

SYS@test> show parameter db_file_multiblock_read_count
NAME                           TYPE     VALUE
------------------------------ -------- --------
db_file_multiblock_read_count  integer  128

SYS@test> alter session set container=test01p;
Session altered.

SYS@test> show parameter db_file_multiblock_read_count
NAME                           TYPE     VALUE
------------------------------ -------- ------
db_file_multiblock_read_count  integer  128

SYS@test> alter system set db_file_multiblock_read_count=8 ;
System altered.

SYS@test> connect / as sysdba
Connected.
SYS@test> column name format a30
SYS@test> column value format a30
SYS@test> select name,value,con_id from v$system_parameter where name='db_file_multiblock_read_count';
NAME                           VALUE  CON_ID
------------------------------ ------ ------
db_file_multiblock_read_count  128         0
db_file_multiblock_read_count  8           3

--ok! 但这些参数保存在那里呢?
--看看D:\APP\ORACLE\PRODUCT\12.1.0\DBHOME_1\DATABASE\SPFILETEST.ORA参数文件。

strings D:\APP\ORACLE\PRODUCT\12.1.0\DBHOME_1\DATABASE\SPFILETEST.ORA | grep -i db_file_multiblock_read_count
--没有输出!那么参数db_file_multiblock_read_count在Pluggable Databases参数保存在那里呢?


--做一个跟踪看看。
SYS@test> connect sys@test01p as sysdba
Enter password: a
Connected.
SYS@test01p> @p

SYS@test01p> @10046on 12
old   1: alter session set events '10046 trace name context forever, level &1'
new   1: alter session set events '10046 trace name context forever, level 12'
Session altered.

SYS@test01p> alter system set db_file_multiblock_read_count=10 ;
System altered.

SYS@test01p> @10046off
Session altered.

--看看跟踪文件:
alter system set db_file_
----------奇怪,跟踪文件看到执行命令的一部分,不知道为什么??
END OF STMT
PARSE #35872808:c=0,e=509,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=0,plh=0,tim=3503720106
WAIT #35872808: nam='reliable message' ela= 96 channel context=8793436588552 channel handle=8793436463408 broadcast message=8793439208240 obj#=-1 tim=3503720814
=====================
PARSING IN CURSOR #35870384 len=102 dep=1 uid=0 oct=2 lid=0 tim=3503722381 hv=4009187694 ad='7ff5af62a28' sqlid='0h3wm2vrgfqbf'
insert into pdb_spfile$(db_uniq_name, pdb_uid, sid, name, value$, comment$)  values(:1,:2,:3,:4,:5,:6)
END OF STMT
PARSE #35870384:c=0,e=1265,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=4,plh=0,tim=3503722379
BINDS #35870384:
Bind#0
  oacdty=01 mxl=32(04) mxlc=00 mal=00 scl=00 pre=00
  oacflg=10 fl2=0001 frm=01 csi=852 siz=32 off=0
  kxsbbbfp=30d76612  bln=32  avl=04  flg=09
  value="test"
Bind#1
  oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00
  oacflg=00 fl2=1000001 frm=00 csi=00 siz=24 off=0
  kxsbbbfp=02241d70  bln=22  avl=06  flg=05
  value=1652643119
Bind#2
  oacdty=01 mxl=32(01) mxlc=00 mal=00 scl=00 pre=00
  oacflg=10 fl2=0001 frm=01 csi=852 siz=32 off=0
  kxsbbbfp=30d754c8  bln=32  avl=01  flg=09
  value="*"
Bind#3
  oacdty=01 mxl=32(29) mxlc=00 mal=00 scl=00 pre=00
  oacflg=10 fl2=0001 frm=01 csi=852 siz=32 off=0
  kxsbbbfp=485c4f28  bln=32  avl=29  flg=09
  value="db_file_multiblock_read_count"
Bind#4
  oacdty=01 mxl=32(02) mxlc=00 mal=00 scl=00 pre=00
  oacflg=10 fl2=0001 frm=01 csi=852 siz=32 off=0
  kxsbbbfp=30d7551c  bln=32  avl=02  flg=09
  value="10"
Bind#5
  oacdty=01 mxl=32(00) mxlc=00 mal=00 scl=00 pre=00
  oacflg=10 fl2=0001 frm=01 csi=852 siz=32 off=0
  kxsbbbfp=00000000  bln=32  avl=00  flg=09
....
update pdb_spfile$ set value$=:5, comment$=:6  where name=:1 and pdb_uid=:2 and db_uniq_name=:3 and sid=:4
END OF STMT
PARSE #35867208:c=0,e=530,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=4,plh=0,tim=3503755991
BINDS #35867208:
Bind#0
  oacdty=01 mxl=32(02) mxlc=00 mal=00 scl=00 pre=00
  oacflg=10 fl2=0001 frm=01 csi=852 siz=32 off=0
  kxsbbbfp=30d7551c  bln=32  avl=02  flg=09
  value="10"
=====================

--很明显插入失败再修改了pdb_spfile$系统表。
SYS@test01p> select * from sys.pdb_spfile$;
no rows selected

--奇怪没有输出。难道在
SYS@test01p> connect / as sysdba
Connected.

SYS@test> select * from sys.pdb_spfile$;
DB_UNIQ_NA    PDB_UID SID        NAME                            VALUE$     COMMENT$                 SPARE1     SPARE2 SPARE3
---------- ---------- ---------- ------------------------------- ---------- -------------------- ---------- ---------- ----------
test       1652643119 *          db_file_multiblock_read_count   10

--可以发现信息保存主数据库的sys.pdb_spfile$。
SYS@test> select * from v$pdbs;
CON_ID       DBID    CON_UID GUID                             NAME      OPEN_MODE  RES OPEN_TIME                  CREATE_SCN TOTAL_SIZE
------ ---------- ---------- -------------------------------- --------- ---------- --- -------------------------- ---------- ----------
     2 4063864810 4063864810 E328565B49E148BDBA65856218380E9D PDB$SEED  READ ONLY  NO  17-JAN-14 08.59.22.957 PM     2256383  283115520
     3 1652643119 1652643119 A1EEB4B6462C40349D6EE072862CABA8 TEST01P   READ WRITE NO  17-JAN-14 09.32.36.752 PM     2454021  498073600