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

  • 相关阅读:
    VUE笔记-如何处理vue create demo时候,不能使用上下按键选择?
    帝国CMS之PC端上新栏目后,移动端无法同步,添加内容编辑页打开空白的处理方法
    帝国cms:迁移站点后,配置多端访问显示“访问端目录不存在”
    如何批量删除帝国CMS中同一前缀的数据表?
    宝塔插件"网站监控报表"错误日志显示大量不存在的链接,处理方法及流程
    mysql删除重复数据只保留一条
    VirtualBox 中 discuzq不能添加软链接的处理方法
    mysql8 source 导入大文件时 经常意外中断 且无法再链接断续 解决方法先设置 set names utf8;
    discuzq Virtualbox 虚拟机 在共享文件夹设置软链接 in 报错 Protocol error问题
    是的,奈学教育一周年了!
  • 原文地址:https://www.cnblogs.com/O/p/282809.html
Copyright © 2011-2022 走看看