当前位置: 首页 > 图文教程 > 数据库 > Oracle > Oracle认证辅导:教你数据库查询初始化参数

Oracle
解决Oracle 9i和Tomcat端口冲突
Oracle JOB的建立,定时执行任务
ORA-01562 和 ORA-01628 问题解决
oracle startup时 ORA-00600错误解决
解决Oracle处理中文乱码的一种方法
用Oracle10g列值掩码技术隐藏敏感数据
如何解决JOB的Interval输入参数过长
理解物化视图刷新过程中出现的约束冲突
Oracle数据库如何查询记录时给记录加锁
两种方法分析每月工作日计算程序
如何避免Oracle数据库密码出现@符号
在Oracle中使用登录触发器初始化用户会话
Oracle数据库中的数据出错的解决办法
Oracle11.2 命令行手工最简创建数据库的过程
Oracle 语句优化分析说明
ORACLE 常用函数总结(80个)
从Oracle 表格行列转置说起
EXECUTE IMMEDIATE用法小结
Oracle 创建用户及数据表的方法
oracle 在一个存储过程中调用另一个返回游标的存储过程

Oracle认证辅导:教你数据库查询初始化参数


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-30   浏览: 85 ::
收藏到网摘: n/a

  首先初始化参数的设置的方法就有很多种:可以通过ALTER SYSTEM SET SCOPE = MEMORY的方式仅设置内存的修改,也可以通过ALTER SYSTEM SET SCOPE = SPFILE只修改SPFILE的值,当然也可以同时修改SPFILE和MEMORY中的设置。还有一种初始化参数可以设置延迟生效,也就是说这个修改只对以后连接到数据库的会话生效,而对当前会话以及其他已经连接到Oracle的会话不会生效。如果再考虑RAC环境,数据库中存在多个启动实例的情况,那么查询数据库初始化参数就更加复杂了。

  所幸Oracle提供的查询初始化参数方法也有很多种:SHOW PARAMETERS、SHOW SPPARAMETERS、CREATE PFILE、V$PARAMETER、V$PARAMETER2、V$SYSTEM_PARAMETER、V$SYSTEM_PARAMETER2、 V$SPPARAMETER。

  SHOW PARAMETERS是SQLPLUS工具提供的查询初始化参数的方法,这个方法查询的初始化参数是当前会话生效的初始化参数。

  SHOW SPPARAMETERS也是SQLPLUS工具提供的方法,用来查询当前会话生效的SPFILE参数包含的初始化参数。这个命令在11g以后sqlplus版本中有效。

  CREATE PFILE命令不像其他方法那样直观,这种方法可以将SPFILE中或当前内存中设置的初始化文件保存到PFILE文件中,然后就可以通过文本编辑工具直观的看到SPFILE中或当前内存中设置了哪些初始化参数。虽然这种方法看上去比较麻烦,但是这种方法列出的参数都是用户设置的参数,所有默认值的参数并不会列出来,因此看到的结果要比其他方法直观得多。在11g以后的版本允许CREATE PFILE FROM MEMORY。

  V$PARAMETER视图提供了当前会话可见的初始化参数的设置,如果像查询RAC数据库的所有实例的设置,可以查询GV$PARAMETER视图。

  V$PARAMETER2视图和V$PARAMETER差不多,唯一的区别在于对于包括值的初始化参数,从这个视图会返回多条记录,每条记录对应一个值。同样的,对于RAC环境可以查询GV$PARAMETER2视图。

  V$SYSTEM_PARAMETER视图记录当前实例生效的初始化参数设置。注意这里是实例生效而不是会话生效。同样,GV$SYSTEM_PARAMETER则包含了所有实例生效的初始化参数信息。

  V$SYSTEM_PARAMETER2视图与V$SYSTEM_PARAMETER视图的关系和V$PARAMETER2视图与V$PARAMETER视图的关系一样,都是对于包含多个值的参数采用了分行处理的方式。

  V$SPPARAMETER记录了来自SPFILE文件中初始化参数。如果参数在SPFILE文件中没有设置,则字段ISSPECIFIED对应的值为FALSE。同样可以查询GVSPPARAMETER参数来显示RAC环境所有实例的设置。

  首先看一下V$PARAMETER和V$PARAMETER2的区别,这个区别同样适用于V$SYSTEM_PARAMETER和V$SYSTEM_PARAMETER2:

  SQL> SELECT NAME, VALUE FROM V$PARAMETER2 MINUS3 SELECT NAME, VALUE FROM V$PARAMETER2;

  NAME VALUE0-------------

  control_files E:\ORACLE\ORADATA\YTK102\CONTROL01.CTL, E:\ORACLE\ORADATA\YTK102\CONTROL02.CTL, E:\ORACLE\ORADATA\YTK102\CONTROL03.CTL

  SQL> SELECT NAME, VALUE FROM V$PARAMETER22 MINUS3 SELECT NAME, VALUE FROM V$PARAMETER;

  NAME VALUE-----------------control_files E:\ORACLE\ORADATA\YTK102\CONTROL01.CTLcontrol_files E:\ORACLE\ORADATA\YTK102\CONTROL02.CTLcontrol_files E:\ORACLE\ORADATA\YTK102\CONTROL03.CTL