【DayDayUp】Oracle初始化参数相关视图

【DayDayUp】Oracle初始化参数相关视图

下面四个与数据库初始化参数相关的视图,其中包含的参数大都可以出现在init${ORACLE_SID}.ora初始化文件中。

v$parameter

当前会话(session)中生效的初始化参数值。

  • isses_modifiable:是否可以通过ALTER SESSION语句改变当前会话中生效的参数值。
  • issys_modifiable:是否可以通过ALTER SYSTEM语句改变参数值以及何时生效。
    • IMMEDIATE:可以通过ALTER SYSTEM语句改变参数值,并立即生效;
    • DEFERRED:可以通过ALTER SYSTEM语句改变参数值,并在后续新建的会话中生效(当前会话中不生效);
    • FALSE:不可以通过ALTER SYSTEM语句改变参数值。但是如果实例是通过spfile启动的,可以通过ALTER SYSTEM … scope=spfile来修改参数值,并在重启实例后生效。
  • ispdb_modifiable:是否可以在可插拔数据库中(PDB)中修改参数值。
  • isinstance_modifiable:同一个参数的值在RAC的两个实例中是否应该保持一致,还是可以不同。

示例:

sys@MARIO> select name,value,isses_modifiable,
issys_modifiable,ispdb_modifiable,isinstance_modifiable 
from v$parameter where name in ('processes','sessions');

NAME                           VALUE      ISSES ISSYS_MOD ISPDB ISINS
------------------------------ ---------- ----- --------- ----- -----
processes                      300        FALSE FALSE     FALSE FALSE
sessions                       472        FALSE IMMEDIATE TRUE  TRUE

v$parameter2

v$parameter包含的参数内容一致。只不过对于参数值为列表的,将该参数的每一个值都分单行列出。

示例:

sys@MARIO> select name,value from v$parameter where name='control_files';

NAME                           VALUE
------------------------------ ------------------------------------------------------------
control_files                  /u01/app/oracle/oradata/MARIO/control01.ctl, /u01/app/oracle
                               /oradata/MARIO/control02.ctl

sys@MARIO> select name,value from v$parameter2 where name='control_files';

NAME                           VALUE
------------------------------ ------------------------------------------------------------
control_files                  /u01/app/oracle/oradata/MARIO/control01.ctl
control_files                  /u01/app/oracle/oradata/MARIO/control02.ctl

v$system_parameter

当前实例(instance)中生效的初始化参数值。新建的会话中会继承实例级别的对应参数默认值。

该视图中也包含isses_modifiableissys_modifiableispdb_modifiableisinstance_modifiable字段,并且其含义与v$parameter中相同。

示例:
修改当前会话的某个初始化参数值:

--检查该初始化参数在session级别生效的值
sys@MARIO> select name,value from v$parameter where name='log_archive_dest_state_2';

NAME                                               VALUE
-------------------------------------------------- --------------------
log_archive_dest_state_2                           enable

--检查该初始化参数在实例级别生效的值
sys@MARIO> select name,value from v$system_parameter where name='log_archive_dest_state_2';

NAME                                               VALUE
-------------------------------------------------- --------------------
log_archive_dest_state_2                           enable

--变更该初始化参数在会话级别的生效值
sys@MARIO> alter session set log_archive_dest_state_2='defer';

Session altered.

sys@MARIO> select name,value from v$parameter where name='log_archive_dest_state_2';

NAME                                               VALUE
-------------------------------------------------- --------------------
log_archive_dest_state_2                           defer

sys@MARIO> select name,value from v$system_parameter where name='log_archive_dest_state_2';

NAME                                               VALUE
-------------------------------------------------- --------------------
log_archive_dest_state_2                           enable

sys@MARIO> exit

退出当前会话后重新连接,再次检查该初始化参数的值:

sys@MARIO> select name,value from v$parameter where name='log_archive_dest_state_2';

NAME                                               VALUE
-------------------------------------------------- --------------------
log_archive_dest_state_2                           enable

sys@MARIO> select name,value from v$system_parameter where name='log_archive_dest_state_2';

NAME                                               VALUE
-------------------------------------------------- --------------------
log_archive_dest_state_2                           enable

可以看到,会话生效的值又变回了实例级别的默认值。

v$system_parameter2

v$system_parameter包含的参数内容一致。只不过对于参数值为列表的,将该参数的每一个值都分单行列出。


下面要介绍的视图,其中包含的参数可以出现在spfile${ORACLE_SID}.ora参数文件中。

v$spparameter

记录了spfile参数文件中的参数值。如果当前实例没有使用spfile启动(而是以pfile启动),那么该视图中,每一行记录的ISSPECIFIED列值都会是FALSE

--检查当前实例是不是用spfile启动的
sys@MARIO> select decode(count(*),1,'spfile','pfile') from v$spparameter 
where rownum=1 and isspecified='TRUE';

--也可以通过查看参数文件位置来判断是不是用spfile启动的
sys@MARIO> show parameter spfile
sys@MARIO> show parameter pfile
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GottdesKrieges

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值