Decode360's Blog

业精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

  BlogJava :: 首页 :: 新随笔 :: 联系 ::  :: 管理 ::
  302 随笔 :: 26 文章 :: 82 评论 :: 0 Trackbacks
    基本上是网上找的资料,来源比较多,内容也都是重复,就不列举出处了。
 
    1、查看数据库是否由SPFILE启动:
 
SQL> Select isspecified,count(*) from v$spparameter group by isspecified;
 
ISSPECIFIED   COUNT(*)
----------- ----------
FALSE              225
TRUE                34
 
V$SPPARAMETER Description: V$SPPARAMETER displays information about the contents of the server parameter file. If a server parameter file was not used to start the instance, then each row of the view will contain FALSE in the ISSPECIFIED column.
 
    从v$spparameter的说明来看,只要是该视图中有TRUE项,即表示该数据库由SPFILE启动。
 
 
    2、查看SPFILE所在地址:
 
SQL> show parameter spfile
 
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      %ORACLE_HOME%\DATABASE\SPFILE%ORACLE_SID%.ORA
 
    这个就是基本的默认路径了。
 
 
    3、SPLIFE的意义:
 
    在9i之前,参数文件只有PFILE一种,是文本格式的。从9i开始新增了服务器参数文件,即SPFILE,是二进制格式,无法直接手动修改。
    现在这两种参数文件都可以用来存储参数配置以供Oracle读取,但也有不同点,注意以下几点:
    第一:PFILE是文本文件,SPFILE是二进制文件;
    第二:对于参数的配置,PFILE可以直接以文本编辑器打开手工配置,而SPFILE不行,必须在数据库启动后,通过sql命令进行在线修改;
    第三:PFILE配置改变后,必须重新启动数据库后才能生效,SPFILE的配置生效时限和作用域可由SQL命令指定。(有些参数的修改必须重启数据库才能生效);
    第四: 可用SQL命令由PFILE创建SPFILE,也可以由SPFILE创建PFILE
    第五: 如果是手动创建数据库而不是通过DBCA,则开始创建数据库时,你只能定义PFILE,因为它是文本格式的;
    第六: Oracle启动只使用一个参数文件,要么是PFILE,要么是SPFILE,可以通过create pfile方法来鉴别,也可以用show parameter spfile命令,如果值为空,则表示使用的是pfile
 
    SPFILE改正了PFILE管理混乱的问题。在多结点的环境里,PFILE会有多个 IMAGE 启动时候需要跟踪最新的IMAGE,这是个烦琐的过程。用SPFILE以后,所有参数改变都写到SPFILE里面(只要定义scope=spfile或both),参数配置有个权威的来源。
 
 
    4、SPFILE/PFILE的创建:
 
    spfile获取pfile

    Create pfile = 'pfile_location' from spfile ;

    Create pfile = 'pfile_location' from spfile = 'spfile_location' ;

 
    pfile获取spfile

    Create spfile from pfile = 'pfile_location' ;

    Create spfile = 'spfile_location' from pfile = 'Your_pfile_location' ;

 
    注:可以通过先从SPFILE创建PFILE,然后修改新生成的PFILE,再重新生成SPFILE,这样会“比较”安全一些。
    另:要修改当前在使用的参数文件,必须将数据库先关闭,然后重启生效。必须是SHUTDOWN,STARTUP NOMOUNT也不行。
 
 
    5、动态修改参数:
 
    alter system set parameter=Value scope=spfile|both|memory;
 
    MEMORY:只改变当前实例运行
    SPFILE:只改变SPFILE的设置
    BOTH:改变实例及SPFILE
 
    alter session set parameter=Value;
 
    也可通过这样来改变当前实例的参数
 
 
    6、强制使用PFILE启动:
 
    SQL> startup pfile='Your_Pfile.ora';
 
 
    7、Oracle启动时的判定:
 
    Oracle先去找SPFILE,若没有找到则使用PFILE启动,或还没有,通过DBS文件夹下的INIT.ORA启动。
 




-The End-

posted on 2008-11-04 21:15 decode360-3 阅读(437) 评论(0)  编辑  收藏 所属分类: DBA

只有注册用户登录后才能发表评论。


网站导航: