oracle 学习总结篇二: 服务器参数文件spfile的使用
oracle 学习总结篇二: 服务器参数文件spfile的使用
在Oracle8i和以前的版本中,启动[color=#009999]数据库后,该数据库的init.ora文件必须在客户机上。如果希望远程启动一个数据库实例,必须得有一个init.ora文件的本地拷贝,这是因为运行在客户机上的Oracle 数据库后端程序会处理init.ora文件的内容。这使得在网络中重新启动一个数据库多少有点困难。而且init.ora文件是文本文件,任何参数修改都要重新启动数据库,这或多或少对业务有点影响
在Oracle9i中,SPFILE文件以二进制格式存储于服务器自身。远程启动数据库不再需要建立本地拷贝(尽管如果愿意的话,你仍然可以那么做)。这也意味着,使用ALTER SYSTEM命令做出的改变当服务器重启时可以仍然有效,所以不再对init.ora文件进行更新。 而且使用alter system 命令时对某些参数不重启也生效
oracle 启动数据库对参数文件的搜索顺序为 spfile_sid.ora--->spfile.ora---->init_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
例子
alter system reset buffer_pool_keep scope = spfile sid='*';