’alter system set 参数=XX‘命令的本质以及参数文件中SID和*两类前缀名优先级

 1、’alter system set 参数=XX‘这个命令的本质


’altersystem set 参数=XX‘这个命令操作的对象是参数文件,

所以

即使sga_TARGET默认值为0,但是altersystem set sga_TARGET=0修改的结果还是会记录在参数文件中,即参数文件中有一条记录为sga_TARGET=0。

 

 注释:

属于AMM机制的参数不能用alter system set命令修改

SQL> alter system set __sga_target=500m;

alter system set __sga_target=500m

                 *

第 1 行出现错误:

ORA-00911: 无效字符

由此证明

属于AMM机制的参数不能用alter system set命令修改。


 

2、alter system set sga_TARGET=0;就是相当于alter system set sga_TARGET=0  scope=both;

对于动态参数来说,例如sga_TARGET,

alter system set sga_TARGET=0;就是相当于alter system set sga_TARGET=0  scope=both;

即不仅修改内存里的该参数变量的值,也修改参数文件里的该参数变量的值。

 

altersystem set sga_TARGET=0  scope=memory;

即仅仅修改内存里的该参数变量的值

 

altersystem set sga_TARGET=0  scope=spfile;

即仅仅修改参数文件里的该参数变量的值

 

 

3、createpfile from spfile;和create pfilefrom memory;的区别在于:

如果参数使用altersystem set sga_TARGET=0  scope=spfile;来修改的话,则

createpfile from spfile;可以显示出该参数修改后的值,而create pfile from memory;不能显示出该参数修改后的值。

 

如果参数使用altersystem set sga_TARGET=0  scope=memory;来修改的话,则

createpfile from memory;可以显示出该参数修改后的值,而create pfile from spfile;不能显示出该参数修改后的值。

注释:

createpfile from memory;所得的pfile参数文件里还会显示一些隐含参数的值。

 

 

4、

v$parameter视图里显示的参数不包括隐含参数和AMM所用的以__开头的参数。


v$parameter视图里的数据是从参数文件读取的或是参数的默认值,具体地说,v$parameter视图里的数据先从参数文件读取,如果参数文件里没有该参数,则读取参数的默认值。修改v$parameter视图(即使用’alter system set 参数=XX‘这个命令)其实本质是更新到参数文件

 

 

5、 在参数文件中,同一类前缀名中 排在后面的一条起作用, 而在SID和*两类前缀名里优先让跟在SID的参数起作用在实例里

pfile参数文件里:

sid.sga_TARGET=1024

sid.sga_TARGET=2000

 

或是

pfile参数文件里:

*.sga_TARGET=1024

*.sga_TARGET=2000

则 以pfile参数文件 启动实例时,select * from v$parameter where name=‘sga_TARGET’;查到的sga_TARGET值为2000。

 

pfile参数文件里为

sid.sga_TARGET=1024

*.sga_TARGET=2000

则 以pfile参数文件 启动实例时,select * from v$parameter where name=‘sga_TARGET’;查到的sga_TARGET值为1024。

 

上述实验说明,

  同一类前缀名中 排在后面的一条起作用(因为oracle实例进程在参数文件里读取的顺序就是从上到下的), 而在SID和*两类前缀名里优先让跟在SID的参数起作用在实例里。

注释:

pfile参数文件和spfile参数文件的作用是一样的,只不过pfile参数文件的引入是便于人手动的管理修改实例里的参数的值,而spfile参数文件的引入是便于oracle系统管理实例里的参数的值,我们只能间接通过alter system set 参数 命令去修改spfile参数文件里的内容,而不能像pfile参数文件那样除了间接通过alter system set 参数 命令去修改其里的内容,还直接打开该文件来修改,所以spfile参数文件是二进制格式的,pfile参数文件是文本格式的。

 


你可能感兴趣的:(’alter system set 参数=XX‘命令的本质以及参数文件中SID和*两类前缀名优先级)