参数文件视图(v$paraemter,v$parameter2,v$system_parameter,v$system_parameter2,v$spparameter)

简介:     用过Oracle的朋友都知道,现在绝大部分Oracle数据库使用的是基于服务器的参数文件。对于查询当前数据库实例级别,system级别,session级别参数的具体设置有些时候很容易混淆。

    用过Oracle的朋友都知道,现在绝大部分Oracle数据库使用的是基于服务器的参数文件。对于查询当前数据库实例级别,system级别,session级别参数的具体设置有些时候很容易混淆。本文主要介绍了Oracle数据库参数使用的相关视图(V$PARAMETER,V$PARAMETER2,V$SYSTEM_PARAMETER,V$SYSTEM_PARAMETER2,V$SPPARAMETER),以及通过查询Oracle视图来获得不同情形下的参数值并进行对比。

 

1、对比有关参数视图
a、V$PARAMETER
    displays information about the initialization parameters that are currently in effect for the session.
    A new session inherits parameter values from the instance-wide values displayed by the V$SYSTEM_PARAMETER view.
    显示的是基于当前session级别生效的初始化参数,新的session会从实例范围派生一些参数值(在视图V$SYSTEM_PARAMETER2呈现)
 
    视图下的几个重要列(下面的几个视图中也存在这个几个列,类同)
    ISSES_MODIFIABLE: 表明当前参数是否够基于session级别进行修改(ALTER SESSION (TRUE) or not (FALSE))
    ISSYS_MODIFIABLE: 表明当前参数是否够基于system级别进行修改(ALTER SYSTEM)以及改变生效的情形
        IMMEDIATE,立即生效(不考虑是否用pfile或spfile启动);
        DEFERRED,延迟生效,后续新的session中有效(不考虑是否用pfile或spfile启动);
        FALSE,参数不能被修改,除非使用了spfile参数文件启动,后续新的session中有效 
    ISINSTANCE_MODIFIABLE:是否为实例级别可修改参数(ALTER SYSTEm),主要是考虑RAC环境
        为TRUE,表明该参数可以不同于其他实例
        为FALSE,表名该参数在所有实例中必须使用相同的值 

b、V$PARAMETER2
    displays information about the initialization parameters that are currently in effect for the session,
    with each list parameter value appearing as a row in the view.
    A new session inherits parameter values from the instance-wide values displayed in the V$SYSTEM_PARAMETER2 view.
    显示的是基于当前session级别生效的初始化参数,新的session会从实例范围派生一些参数(在视图V$SYSTEM_PARAMETER2呈现)
    注意,这个视图对于存在多个参数值的参数,在这个视图中分为多行进行列出
    如control_files在视图V$PARAMETER呈现为一行,且有2个值,则在V$PARAMETER2中显示为2行
  
    Presenting the list parameter values in this format enables you to quickly determine the values for a list parameter.
    For example, if a parameter value is a, b, then the V$PARAMETER view does not tell you if the parameter has two values (both a and b)
    or one value (a, b). V$PARAMETER2 makes the distinction between the list parameter values clear.

c、V$SYSTEM_PARAMETER
    V$SYSTEM_PARAMETER displays information about the initialization parameters that are currently in effect for the instance.
    A new session inherits parameter values from the instance-wide values.
    显示的是基于实例级别参数的相关信息,新的session同样会从实例级别进行派生

d、V$SYSTEM_PARAMETER2
    V$SYSTEM_PARAMETER2 displays information about the initialization parameters that are currently in effect for the instance,
    with each list parameter value appearing as a row in the view. A new session inherits parameter values from the instance-wide values.
    与V$PARAMETER,V$PARAMETER2相类似,V$SYSTEM_PARAMETER2用于展示实例级别且一个参数有多个值分多行列出的情形

e、V$SPPARAMETER
    displays information about the contents of the server parameter file. If a server parameter file was not used to start
    the instance, then each row of the view will contain FALSE in the ISSPECIFIED column.
    这个视图列出的是基于服务器参数文件中的参数信息,如果没有使用服务器参数文件启动实例,则视图中每一行ISSPECIFIED列的值为FALSE


  
2、示例演示参数视图

a、查看session级别的参数
--基于session级别可以直接使用show parameter 方式
--演示环境
scott@USBO> select * from v$version where rownum<2;

BANNER
-------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

scott@USBO> show parameter cursor_shar

NAME                                 TYPE                              VALUE
------------------------------------ --------------------------------- ------------------------------
cursor_sharing                       string                            EXACT

scott@USBO> select name,value,isses_modifiable,issys_modifiable,isinstance_modifiable
  2  from v$parameter where name='cursor_sharing';

NAME                           VALUE           ISSES_MODIFIABL ISSYS_MODIFIABLE            ISINSTANCE_MODI
------------------------------ --------------- --------------- --------------------------- ---------------
cursor_sharing                 EXACT           TRUE            IMMEDIATE                   TRUE

scott@USBO> alter session set cursor_sharing='SIMILAR';   --->上面的查询可知session级别为true,即可修改

Session altered.

scott@USBO> show parameter cursor_shar   -->再次查看,修改已经生效

NAME                                 TYPE                              VALUE
------------------------------------ --------------------------------- ------------------------------
cursor_sharing                       string                            SIMILAR

b、查看基于实例级别的参数
--基于实例级别的参数需要通过V$SYSTEM_PARAMETER访问
scott@USBO> select name,value from v$system_parameter where name='cursor_sharing';

NAME                           VALUE
------------------------------ ---------------
cursor_sharing                 EXACT            --->可以看到此时的值依旧是exact,并没有受到之前修改的影响

scott@USBO> alter system set cursor_sharing='FORCE';   --->将参数cursor_sharing进行基于系统级别进行修改

System altered.

scott@USBO> show parameter cursor_sharing              --->此时可以看到当前session级别该参数从system级别派生

NAME                                 TYPE                              VALUE
------------------------------------ --------------------------------- ------------------------------
cursor_sharing                       string                            FORCE 

scott@USBO> alter session set cursor_sharing='EXACT';  --->再次基于session级别进行修改   

Session altered.

scott@USBO> show parameter cursor_shar     --->此时查询到session的值变为EXACT,那system级别呢?肯定是FORCE,大家自行验证

NAME                                 TYPE                              VALUE
------------------------------------ --------------------------------- ------------------------------
cursor_sharing                       string                            EXACT 

c、演示v$parameter与v$parameter2的差异
scott@USBO> show parameter control_files;

NAME                                 TYPE                              VALUE
------------------------------------ --------------------------------- ------------------------------
control_files                        string                            /u03/database/usbo/oradata/con
                                                                       trol01.ctl, /u03/database/usbo
                                                                       /oradata/control02.ctl
scott@USBO> select name,value from v$parameter where name='control_files';

NAME                           VALUE
------------------------------ ------------------------------------------------------------
control_files                  /u03/database/usbo/oradata/control01.ctl, /u03/database/usbo
                               /oradata/control02.ctl

--查询v$parameter2时,对于存在多个参数值的参数,在这个视图中分为多行进行列出,如下
--对于v$system_parameter与v$system_parameter2存在类似的情形,不再演示
scott@USBO> select name,value from v$parameter2 where name='control_files';

NAME                           VALUE
------------------------------ ------------------------------------------------------------
control_files                  /u03/database/usbo/oradata/control01.ctl
control_files                  /u03/database/usbo/oradata/control02.ctl

d、关于v$spparameter
--该视图可以用于判断当前数据库使用的是pfile还是spfile来启动
scott@USBO> select distinct isspecified from v$spparameter;

ISSPECIFIED
------------------
TRUE                       --->第一个值为TRUE,spfile启动
FALSE

goex_admin@MFTST> select distinct isspecified from v$spparameter;

ISSPEC
------
FALSE                     --->为false,pfile文件启动数据库  

goex_admin@MFTST> select name,value from v$spparameter where name='control_files';  

NAME                      VALUE
------------------------- ------------------------------------------------------------
control_files                                                                      --->由于为pfile启动,所以查询不到任何信息

goex_admin@MFTST> select count(*) from v$spparameter where isspecified='TRUE';

  COUNT(*)
----------                              --->列isspecified没有一个值为TRUE,同样是因为使用了pfile
         0 

对于spfile启动下的v$spparameter,对于存在多个参数值的参数,在这个视图中也分为多行进行列出         
scott@USBO> select name,value from v$spparameter where name='control_files';

NAME                           VALUE
------------------------------ ------------------------------------------------------------
control_files                  /u03/database/usbo/oradata/control01.ctl
control_files                  /u03/database/usbo/oradata/control02.ctl


3、小结
a、对于Oracle数据库参数文件存在多个视图可以查询其值(v$paraemter,v$parameter2,v$system_parameter,v$system_parameter2,v$spparameter);
b、v$paraemter,v$parameter2视图主要是查询基于session级别的参数的相关信息,v$parameter2对于同一个参数多个值分多行的形式展开;
c、v$system_parameter,v$system_parameter2是查询基于system,实例级别的参数的相关信息,v$system_parameter2同样用于一个参数多值分行展开; 
d、注意理解参数的几个不同级别session,system,instance级别,instance级别主要对多实例情形(RAC),有时候sytem与instance会混用;
e、v$spparameter主要是针对服务器参数文件有效即spfile,同时也可以用于检查当前使用了pfile还是spfile方式启动。

 

Oracle&nbsp;牛鹏社    Oracle DBsupport

更多参考

有关Oracle RAC请参考
     使用crs_setperm修改RAC资源的所有者及权限
     使用crs_profile管理RAC资源配置文件
     RAC 数据库的启动与关闭
     再说 Oracle RAC services
     Services in Oracle Database 10g
     Migrate datbase from single instance to Oracle RAC
     Oracle RAC 连接到指定实例
     Oracle RAC 负载均衡测试(结合服务器端与客户端)
     Oracle RAC 服务器端连接负载均衡(Load Balance)
     Oracle RAC 客户端连接负载均衡(Load Balance)
     ORACLE RAC 下非缺省端口监听配置(listener.ora tnsnames.ora)
     ORACLE RAC 监听配置 (listener.ora tnsnames.ora)
     配置 RAC 负载均衡与故障转移
     CRS-1006 , CRS-0215 故障一例 
     基于Linux (RHEL 5.5) 安装Oracle 10g RAC
     使用 runcluvfy 校验Oracle RAC安装环境

有关Oracle 网络配置相关基础以及概念性的问题请参考:
     配置非默认端口的动态服务注册
     配置sqlnet.ora限制IP访问Oracle
     Oracle 监听器日志配置与管理
     设置 Oracle 监听器密码(LISTENER)
     配置ORACLE 客户端连接到数据库

有关基于用户管理的备份和备份恢复的概念请参考
     Oracle 冷备份
     Oracle 热备份
     Oracle 备份恢复概念
     Oracle 实例恢复
     Oracle 基于用户管理恢复的处理
     SYSTEM 表空间管理及备份恢复
     SYSAUX表空间管理及恢复
     Oracle 基于备份控制文件的恢复(unsing backup controlfile)

有关RMAN的备份恢复与管理请参考
     RMAN 概述及其体系结构
     RMAN 配置、监控与管理
     RMAN 备份详解
     RMAN 还原与恢复
     RMAN catalog 的创建和使用
     基于catalog 创建RMAN存储脚本
     基于catalog 的RMAN 备份与恢复
     RMAN 备份路径困惑
     使用RMAN实现异机备份恢复(WIN平台)
     使用RMAN迁移文件系统数据库到ASM
     linux 下RMAN备份shell脚本
     使用RMAN迁移数据库到异机

有关ORACLE体系结构请参考
     Oracle 表空间与数据文件
     Oracle 密码文件
     Oracle 参数文件
     Oracle 联机重做日志文件(ONLINE LOG FILE)
     Oracle 控制文件(CONTROLFILE)
     Oracle 归档日志
     Oracle 回滚(ROLLBACK)和撤销(UNDO)
     Oracle 数据库实例启动关闭过程
     Oracle 10g SGA 的自动化管理
     Oracle 实例和Oracle数据库(Oracle体系结构) 

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
目录
相关文章
|
8月前
|
人工智能 安全 搜索推荐
AI 智能体开发中的技术难点
2026年,AI智能体开发已升级为系统工程:面临记忆精准唤醒、长任务规划容错、多Agent协同、具身操作安全及成本-延迟-智能“不可能三角”五大核心挑战。告别简单Prompt,迈向高可靠、多模态、强安全的工程化落地。(239字)
|
9月前
|
人工智能 数据可视化 安全
企业如何应用BI系统(2026年1月最新)
截至2026年,全球BI市场达432亿美元,中国领跑亚太增长。瓴羊Quick BI以AI增强分析为核心,支持自然语言查询、自动洞察、根因分析与预测模拟,预置行业模板,5分钟搭建看板,湖仓一体架构保障数据可信,覆盖全员用数与企业级安全合规,助力企业从“看过去”迈向“预未来”的智能决策。(239字)
|
9月前
|
机器学习/深度学习 算法 机器人
多智能体强化学习(MARL)核心概念与算法概览
多智能体强化学习(MARL)研究多个智能体在共享环境中协同或竞争的决策问题。每个智能体拥有局部观测、独立策略,且环境因其他智能体的学习而动态变化,导致非平稳性、信用分配难、协调复杂等挑战。广泛应用包括交通控制、机器人协作、广告竞价等。常用方法如IQL、VDN、QMIX、MADDPG、MAPPO等,结合集中训练分布式执行(CTDE)提升稳定性。通过简单协调游戏可窥见MARL核心机制:智能体需在探索与协调间平衡,以涌现合作行为。
724 2
|
9月前
|
人工智能 自然语言处理 算法
创新场景丨众调科技:打造AI引擎,加速汽车全链路智能升级
众调科技的擎天大模型,正在为汽车行业带来前所未有的变革,推动汽车行业迈向AI大模型时代。这不仅提升了汽车行业营销与培训领域的效率与产能,更在推动整个行业智能化、电动化、网联化的发展中发挥了举足轻重的作用。
|
9月前
|
监控 安全 网络协议
静态 IP 维护:如何清闲置提效率?
静态IP管理需科学规划、规范配置、动态维护与安全防护并重,通过合理划分子网、建立地址台账、定期巡检回收及强化访问控制,有效避免地址冲突与安全风险,保障网络稳定高效运行。
|
人工智能 自然语言处理 前端开发
DeepSite:基于DeepSeek的开源AI前端开发神器,一键生成游戏/网页代码
DeepSite是基于DeepSeek-V3模型的在线开发工具,无需配置环境即可通过自然语言描述快速生成游戏、网页和应用代码,并支持实时预览效果,显著降低开发门槛。
2254 93
DeepSite:基于DeepSeek的开源AI前端开发神器,一键生成游戏/网页代码
|
前端开发 JavaScript Java
模板引擎(Template Engine)是什么?
模板引擎(Template Engine)是一种用于生成文本输出的工具,尤其在Web开发中应用广泛。它的主要目的是将用户界面(通常是HTML等模板文件)与业务数据(内容)分离,从而提供一种高效、灵活的方式来生成动态内容。
1952 1
|
5G 网络架构
5G 系统网络架构 | 带你读《5G 无线系统设计与国际标准》之四
为了适应各种部署场景,5G 支持了两种部署方式:一种为分布式部署,这种方式与 LTE系统类似,网络由基站组成,基站支持全协议栈的功能;另一种为集中式部署,基站进一步分为集中单元(CU,Centralized Unit)和分布单元(DU,Distributed Unit)两个节点,CU 和 DU 分别支持不同的协议栈和功能,
5G 系统网络架构  | 带你读《5G 无线系统设计与国际标准》之四
|
存储 消息中间件 缓存
计算机底层原理概述
计算机底层原理概述
计算机底层原理概述

热门文章

最新文章