zoukankan      html  css  js  c++  java
  • Oracle10g中的pfile,spfile文件与系统参数的修改

    Author =Wain=Ynmc 欢迎转载,请保留作者信息
    ^1^ PARAMETER
    修改系统参数,系统参数是不能在spfile里面直接修改的,可以在数据库运行时通过sql修改。
    show parameter 可以查看系统的参数。
    alter system set XXX=XXXX scope= memory|spfile|both,选both就是二者皆选,memory是作用于当前实例,spfile应用于参数文件,修改将在下次生效,但是某些静态参数只能选择spfile。
    如:在Oracle9i中,sql_trace是不能scope=memory或是both的,但是在Oracle10g中却可以。

    1. 在当前实例中修改
    SQL> show parameter sql_trace

    NAME                                 TYPE        VALUE                         
    ------------------------------------ ----------- ------------------------------
    sql_trace                            boolean     TRUE    

    SQL> alter system set sql_trace=false scope=memory;

    系统已更改。

    SQL> show parameter sql_trace

    NAME                                 TYPE        VALUE                         
    ------------------------------------ ----------- ------------------------------
    sql_trace                            boolean     FALSE                         

    2.在spfile中修改,只能在下次实例运行时生效.
    SQL> alter system set sql_trace=true scope=spfile;

    系统已更改。

    SQL> show parameter sql_trace

    NAME                                 TYPE        VALUE                         
    ------------------------------------ ----------- ------------------------------
    sql_trace                            boolean     FALSE                         

    3.Both,同时生效.
    SQL> alter system set sql_trace=true scope=both;

    系统已更改。

    SQL> show parameter sql_trace

    NAME                                 TYPE        VALUE                         
    ------------------------------------ ----------- ------------------------------
    sql_trace                            boolean     TRUE                          

    实际上,sql_trace这个参数在Oracle10g中已经被deprecated(废弃)了,对这个参数进行设置会导致数据库在启动时报错:ora-32004. 另外一篇文章http://o.cnblogs.com/archive/2005/11/23/282783.html<ORA-32004 与 Deprecated 参数 in Oracle10g >会专门介绍解决办法.在这里并不影响我们理解修改系统参数.

    ^2^ spfile与pfile
    spfile和pfile都是数据库的参数文件,pfile是到8i为止的主要参数文件,从9i开始,Oracle采用了一个spfile文件,这种文件不像pfile,它是一个不能用文本编辑器编辑的二进制文件,pfile则可以直接用notepad编辑。这样做的好处当然是提高了安全性。
    数据库在启动时,调用参数文件的顺序为:
    a.  spfile${ORACLE_SID}.ora    
     缺省目录 UNIX: ${ORACLE_HOME}/dbs/              
      NT:   ${ORACLE_HOME}\database
    b.  spfile.ora        
     缺省目录 UNIX: ${ORACLE_HOME}/dbs/              
      NT:   ${ORACLE_HOME}\database
    c.  init${ORACLESID}.ora       
     缺省目录 UNIX: ${ORACLE_HOME}/dbs/              
      NT:   ${ORACLE_HOME}\database or ${ORACLE_HOME}\admin\db_name\pfile\
    可以通过show parameter pfile|spfile 查看当前的参数文件,不过用pfile和spfile查出来的都是同一个参数,因为一次只能用一个参数文件.
    SQL> show parameter spfile;

    NAME                                 TYPE        VALUE                         
    ------------------------------------ ----------- ------------------------------
    spfile                               string      F:\ORACLE\PRODUCT\10.2.0\DB_1\
                                                     DATABASE\SPFILEYN.ORA         
    SQL> show parameter pfile;

    NAME                                 TYPE        VALUE                         
    ------------------------------------ ----------- ------------------------------
    spfile                               string      F:\ORACLE\PRODUCT\10.2.0\DB_1\
                                                     DATABASE\SPFILEYN.ORA    

    修改spfile一般来说麻烦一些,有2种常用的办法:
    1. 通过pfile修改spfile
       在pfile里面可以制定spfile作为参数文件,这保持了向下的兼容性.我们可以在数据库启动的时候选择自定义的pfile进行启动:
       SQL>startup pfile='f:\XXXXXX\initSID.ora'
    但是不能直接制定spfile做参数文件,只能在pfile里面加上一句:
    SPFILE= 'E:\Oracle\Ora9iR2\database\SPFILEEYGLEN.ORA'就可以了.
    在Oracle10g下,可以在数据库运行的时候用语句生成pfile或是spfile.在较早一点的版本中,好像只能在shutdown状态下运行这两条命令.
    create spfile='XX' from pfile='XX';
    create pfile='XX' from spfile='xx';
    语句中'XX'不是必须要制定的,如果omit,则在默认的位置生成或查找文件.通过这个方法,使得spfile与pfile联系在了一起.

    2.通过修改parameter达到修改spfile
    这个方法正如开始说的一样,在sql直接修改parameter,而让数据库系统帮你修改,这个方法也是官方推荐的办法,一是安全性好,它会在你修改参数的时候进行检查;二是有助于理解参数的意义.

  • 相关阅读:
    Windows服务的删除与添加
    综合布线施工规范与工艺
    电表产品型号代表什么意义?
    网线接线顺序
    电机绝缘电阻的测量方法
    实用电工口诀
    电工需熟知应用口诀-巧用低压验电笔
    各种工业以太网比较(EtherCAT,EtherNet/IP,ProfiNet,Modbus-TCP,Powerlink)
    C# 开启线程的几种方式
    C# 内置的类型转换方法
  • 原文地址:https://www.cnblogs.com/O/p/282809.html
Copyright © 2011-2022 走看看