oracle 学习总结篇二: 服务器参数文件spfile的使用

在Oracle8i和以前的版本中,启动数据库后,该数据库的init.ora文件必须在客户机上。如果希望远程启动一个数据库实例,必须得有一个init.ora文件的本地拷贝,这是因为运行在客户机上的Oracle 数据库后端程序会处理init.ora文件的内容。这使得在网络中重新启动一个数据库多少有点困难。而且init.ora文件是文本文件,任何参数修改都要重新启动数据库,这或多或少对业务有点影响

在Oracle9i中,SPFILE文件以二进制格式存储于服务器自身。远程启动数据库不再需要建立本地拷贝(尽管如果愿意的话,你仍然可以那么做)。这也意味着,使用ALTER SYSTEM命令做出的改变当服务器重启时可以仍然有效,所以不再对init.ora文件进行更新。 而且使用alter system 命令时对某些参数不重启也生效

oracle 启动数据库对参数文件的搜索顺序为 spfile_sid.ora---&gtspfile.ora----&gtinit_sid.ora

存放路径  windows 下 oracle_home/ora92/database/下面

                  unix/linux 下  oracle_home/ora92/dbs/下面

在创建数据库脚本中 可以看到以下一句

  create spfile='D:\oracle\ora92\database\spfiledbca.ora' FROM pfile='D:\oracle\admin\dbca\scripts\init.ora';

    作用就是由文本文件参数转变成服务器参数文件  以二进制格式存储

 创建语法为:

  create spfile='filename'  from pfile='filename';

  create spfile  from pfile;

也可以从spfile文件内容创建pfile 文件

  create pfile='filename' from spfile='filename';

 create pfile='filename' from spfile   --从默认位置;

 create pfile  from spfile     --生成的参数文件放在默认目录下

如果想改变系统参数,可以使用ALTER SYSTEM命令的扩展语法格式来设置参数:
ALTER SYSTEM set parameter = valueI
SCOPE = MEMORY | SPFILE | BOTH;

SCOPE子句使你可以设置一个系统参数:
MEMORY:只对当前的数据库产生影响,重新启动后将不再有效。

SPFILE:这一选项不会改变当前的参数设置,但它会修改SPFILE文件,所以重新启动后,参数将会生效。

BOTH:它会改变当前设置并更新SPFILE。

 

相关视图名称

select * from v$spparameter;
select * from v$parameter;
select * from v$parameter2 ;

可以查到哪些参数是立即生效,哪些是需要重新启动数据库才生效的

C:\Documents and Settings\Paul Yi>sqlplus "/as sysdba"

SQL*Plus: Release 9.2.0.4.0 - Production on Fri Mar 7 14:22:12 2008

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.


Connected to:
Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.4.0 - Production

SQL> alter system set processes=400;
alter system set processes=400
                 *
ERROR at line 1:
ORA-02095: specified initialization parameter cannot be modified


SQL> alter system set processes=400 scope=spfile;

System altered.

--需要重启才生效


SQL> alter system set workarea_size_policy=auto;

System altered.

SQL>

--不需要重启 立即生效

 

取消某个参数的值 用以下语法

alter system reset  parameter sid=’sid|*’

例子

alter system reset buffer_pool_keep scope = spfile sid='*';

 

 

 

 


 




 

         

 



 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7199859/viewspace-200681/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/7199859/viewspace-200681/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值