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,而让数据库系统帮你修改,这个方法也是官方推荐的办法,一是安全性好,它会在你修改参数的时候进行检查;二是有助于理解参数的意义.

  • 相关阅读:
    pch”预编译头文件来自编译器的其他版本,或者预编译头为 C++ 而在 C 中使用它(或相反) and vs找不到路径
    VC++获得当前系统时间的几种方案
    无法解析的外部符号 __imp____glutInitWithExit@12,该符号在函数 _glutInit_ATEXIT_HACK@8 中被引用
    error C2381: “exit” : 重定义
    vs2019 link glaux.lib 无法解析的外部符号,是缺少一个Lib
    操作系统算法整理+汇总
    vs2019配置glm包
    第二题 既约分数
    死磕Spring之IoC篇
    精尽Spring Boot源码分析
  • 原文地址:https://www.cnblogs.com/O/p/282809.html
Copyright © 2011-2022 走看看