当前位置:  数据库>oracle

Oracle的参数文件

    来源: 互联网  发布时间:2017-06-25

    本文导语: 1.参数文件           与Oracle数据库相关的参数文件有很多,但是最重要的是数据库的参数文件,如果没有这个参数文件,甚至无法启动数据库。           数据库的参数文件通常称为初始化文件(init file),或init.ora文件。这是...

1.参数文件

          与Oracle数据库相关的参数文件有很多,但是最重要的是数据库的参数文件,如果没有这个参数文件,甚至无法启动数据库。

          数据库的参数文件通常称为初始化文件(init file),或init.ora文件。这是因为历史上它的默认名就是init.ora。这所以称为“历史上”的默认名,原因是Oracle Database 9i Release 1 以来,对于存储数据库的参数设置,引入了一个很大改进的新方法:服务器参数文件(server parameter file),简称为SPFILE。这个文件的默认名为spfile.ora。

          如果没有参数文件,就无法启动Oracle数据库。所有参数文件相当重要,到了Oracle Database 9i Release 2(9.2及以上版本),备份和恢复工具——恢复管理器(Recovery Manager,RMAN)认识到了这个文件的重要性,允许把服务器参数文件包括在备份集中(而不是遗留的init.ora参数文件类型)。不过由于init.ora参数文件中是一个纯文本文件,可以用任何文本编辑器创建,所以这个文件不需要你花大力气去“保卫”。只要知道文件中的内容,完全可以重新创建(例如,如果能访问数据库的警告日志,就可以从中获得参数文件的信息)。

1.1 什么是参数

          简单地说,可以把数据库参数想成是一个键/值对。如db_name参数,可以简单的存储为db_name=orcl,这里的“键”是db_name,“值”是orcl。要得到一个实例参数的当前值,可以查询V$视图V$PARAMETER。另外,还可以在SQL*Plus中使用 SHOW PARAMETER命令来查看。

  • sys@ORCL>select value from v$parameter where name='db_block_size';

  • VALUE

  • --------------------------------------------------------------------------------------------------

  • 8192

  • sys@ORCL>show parameter db_block_s

  • NAME                                    TYPE                              VALUE

  • ---------------------------------------------------------------------------------------------------

  • db_block_size                                integer                              8192

  • v$parameter能够得到更多的信息,但show parameter命令更简单,而且还会自动“通配”,上边中输入了db_block_s,自动在前面和后面加了%。

              注意:不同版本的Oracle上,参数个数会不同,不同的操作系统上可能也会增加另外的参数。

              可以用两种方式来设置各个参数值:只设置当前实例的参数值或永久性的设置。要确保参数文件包含你期望的值,使用遗留的init.ora参数文件时,这是一个手动过程。要永久的修改一个参数值(即使服务器重启这个新设置也有效),就必须手动地编辑和修改init.ora参数文件。如果是服务器参数文件,则只需要一条命令就能轻松完成。

    1.2  init.ora参数文件

    这个文件的命名约定默认为:

    init$ORACLE_SID.ora      (Unix enviroment variable)

    init%ORACLE_SID%.ora      (Windows enviroment variable)

    默认存放的目录

    $ORACLE_HOME/dbs        (Unix)

    %ORACLE_HOME%DATABASE  (Windows)

    参数文件不必放在特定的位置上。启动一个实例时,可以在启动命令上使用pfile=filename选项。

    1.3  服务器参数文件

              在访问和维护实例参数设置方面,SPFILE是Oracle做出的一个重要改变。有了SPFILE,可以消除传统参数文件存在的两个严重问题。

    • 可以杜绝参数文件的繁殖。SPFILE问题存储在数据库服务器上;必须存在于服务器主机本身,不能放在客户机上。参参数设置来说,这样就可以有一个“信息来源”。

    • 无需在数据库之外使用文本编辑器手动地维护参数文件(实际上,更确切的说法是不能手动地维护)。利用ALTER SYSTEM命令,完全可以直接将值写入SPFILE。管理员不必手动的查找和维护所有参数文件。

            这个文件的命名约定默认为:

    $ORACLE_HOME/dbs/spfile$ORACLE_SID.ora          (Unix environment variable)

    %ORACLE_HOME%databasespfile%ORACLE_SID%.ora  (Windows environment variable)

    强烈使用默认位置,否则会影响SPFILE的简单性。如果不在默认位置,就必须告诉Oracle去哪里找SPFILE。

    1.转换为SPFILE

    假设有一个数据库,使用了inti.ora参数文件,转换为SPFILE非常简单,使用CREATE SPFILE命令。

    假设使用init.ora参数文件,而且这个init.ora参数文件确实在服务器的默认位置上,那么只需要发出CREATE SPFILE命令,并重启实例就行了。

    从指定目录中的init.ora参数文件中创建SPFILE使用:create spfile from pfile='/path/to/init.ora';

    在集群环境中,通过使用Oracle RAC,所有实例共享同一个SPFILE,这个SPFILE可以包含所有参数设置,甚至各个实例特有的设置都可以放在这一个SPFILE中。所有实例共享的参数设置都以*.开头。单个实例特有的参数设置都以实例名(Oracle SID)为前缀。

    2.设置SPFILE中的参数值

    SPFILE是二进制文件,它们不能用文本编辑器来编辑,在linux上可以使用strings命令查看内容。要修改参数值就需要使用ALTER SYSTEM命令。语法如下

    alter system set parameter = value < scope=memory|spfile|both>

    默认情况下,ALTER SYSTEM SET命令会更新当前运行的实例,并且修改SPFILE,即默认为scope=both。

    • parameter=value 这个赋值提供了参数名以及参数的新值。例如,pga_aggregate_target=1024M     会把pga_aggregate_target参数设置为1024MB。

    • comment='text 是一个与此参数设置相关的可选注释。这个注释会出现在V$PARAMETER视图的UPDATE_COMMENT字段中。如果使用了相应选项允许同时保存对SPFILE的修改,注释会写入SPFILE,而且即便服务器重启也依然保留,所以将来重启数据库时会看到这个注释。

    • deferred 指定系统修改是否只对以后的会话生效(对当前建立的会话无效,包括执行些修改的会话)。默认情况下,ALTER SYSTEM命令会立即生效,但有些参数不能“立即”修改,只能为新建立的会话修改这些参数。使用select name from     v$parameter where issys_modifiable='DEFERRED';查询哪些参数必须使用deferred。

    • SCOPE=MEMORY|SPFILE|BOTH 指示了这个参数设置的“作用域”。

      • SCOPE=MEMORY 只在实例中修改,数据库重启后将不再保存。下一次重启数据库时,设置还是修改前的样子。

      • SCOPE=SPFILE 只修改SPFILE中的值。数据库重启并再次处理SPFILE之前,这个修改不会生效。有些参数只能使用这个选项来修改,例如,processes参数就必须使用SCOPE=SPFILE,因为我们无法修改活动实例的processes值。

      • SCOPE=BOTH 指内存和SPFILE中都会完成参数修改。这是使用SPFILE时默认的作用域值。如果使用init.ora参数文件,默认为SCOPE=MEMORY,也是唯一合法值。

    • sid='sid|*' 主要用于集群环境,默认值为sid='*'。

    3.取消SPFILE中的值设置

    如果想从SPFILE中删除某个参数设置,则需要使用ALTER SYSTEM命令的RESET子句来执行。

    alter system reset parameter sid='sid|*'

    4.从SPFILE创建PFILE

    与前面提到的CREATE SPFILE相反,创建PFILE使用CREATE PFILE ... FROM SPFILE。这个命令根据二进制的SPFILE创建一个纯文本文件,可以被文本编辑器编辑,并且以后可以用来启动数据库。使用这个命令的原因

    • 创建一个“一次性的”参数文件,用户启动数据库来完成维护,其中有一些特殊的设置。所以可以使用这个命令创建PFILE。编辑得到的PFILE,修改所需要设置。然后启动数据库,使用PFILE=选项指定要使用这个PFILE而不是SPFILE。完成后,可以正常的启动数据库又会使用SPFILE。

    • 维护修改历史,在注释中记录修改。过去,请多DBA会在参数文件中加大量的注释来记录修改历史。

    5.修正被破坏的SPFILE

    Unix平台上可以使用strings命令提取所有设置

    Windows平台上则需要用write.ext(WordPad,写字板)打开这个文件

    如果SPFILE真的被丢失了,可以从警告日志恢复参数文件的信息。每次启动数据库时警告日志都会包含如下一部分内容,通过这一部分内容,可以很容易地创建一个PFILE,再用CREATE SPFILE命令将其转换为一个新的SPFILE。


        
     
     

    您可能感兴趣的文章:

  • 深入解析Oracle参数及参数文件
  • Oracle数据库访问参数文件的顺序
  • Oracle初始参数与当前用户
  • Oracle中serveroutput参数一次设置永久保存方法
  • Oracle的spfile参数文件
  • Linux Oracle RAC内核参数
  • 怎么在java中向一个sql语句传参数,就像oracle的proc一样啊?
  • Sun Solaris运行Oracle数据库所需的内核参数
  • Linux下用SHELL脚本执行带输入输出参数的ORACLE存储过程并得到结果
  • Oracle Streams存储过程中的一些参数
  • 快速修复Oracle参数文件的另类方法
  • jps连接oracle9i数据库出现内部参数错
  • oracle 参数文件audit_trail的认识
  • 在linux下安装oracle时,使用sysctl检查系统参数时出现许多error信息,不知道怎么回事,望高手指点!
  • 每日Oracle:配置日志模式的相关参数log_archive_des
  • Oracle 子程序参数模式,IN,OUT,NOCOPY
  • Oracle 使用set修改数据库运行参数
  • oracle impdp network_link参数使用介绍
  • Oracle数据库中系统初始化参数分析
  • Oracle 启动例程 STARTUP参数说明
  • Linux平台下Oracle 密码文件重建
  • Oracle 对数据文件大小的限制
  • Oracle移动数据文件到新分区步骤分析
  • 在jsp文件中怎么设置oracle的路径:很简单的,只是因为我不会;
  • linux下通过对文件读取方式查询oracle的版本信息
  • 求高手指点shell导入.dat文件到ORACLE数据库
  • jsp文件连接oracle失败
  • linux 安装 oracle 运行./runinstall 提示没有这个文件
  • oracle删除文件后数据库启动不了的处理方法
  • 请教:为什么删除不掉?我用超级用户删除某一文件夹rm -R oracle失败。
  • Oracle控制文件多元化处理
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍
  • SCO unix下安装oracle,但没有光盘,请大家推荐一个oracle下载站点(unix版本的)。谢谢!!!!
  • oracle中如何把表中具有相同值列的多行数据合并成一行
  • 请问大家用oracle数据库, 用import oracle.*;下的东西么? 还是用标准库?
  • Oracle 数据库(oracle Database)性能调优技术详解
  • Linux /$ORACLE_HOME $ORACLE_HOME
  • ORACLE日期相关操作
  • Linux系统下Oracle的启动与Oracle监听的启动
  • ORACLE数据库常用字段数据类型介绍
  • 请问在solaris下安装ORACLE,用root用户和用oracle用户安装有什么区别么?
  • Oracle 12c的九大最新技术特性介绍
  • 网间Oracle的连接,远程连接Oracle服务器??


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3