分类: Oracle
2008-05-20 11:23:52
Oracle在9i之前初始化参数文件只有一种,那就是pfile,一般格式是init$ORACLE_SID.ora(这是一个文本文件,可以直接使用vi修改),9i版本的推出,增加了
spfile,spfile的命名格式一般为spfile$ORACLE_SID.ora(二进制文件,不能使用vi进行修改,甚至还需要strings命令才能查看内容)。引进spfile,是为了能
够动态修改oracle的参数(不必重启数据库,修改即生效)。所以在9i之后,oracle启动时,如果不指定参数文件,那么oracle会自动按照如下顺序搜索参数文件
:spfile-->pfile-->init.ora。如果三个文件都损坏或者找不到,那么oracle将报错,且无法启动。spfile的引进,的确给oracle dba们带来了很多方便,毕竟在
很多重要系统中是不允许轻易停库操作的。究竟哪些参数可以动态修改呢?我们可以查找数据字典$parameter得出。使用select name,issys_modifiable from
v$parameter;(注意:不同版本的oracle查到的结果会是不一样的)可以查出所有参数的信息,其中issys_modifiable一项说明是否可以动态修改,如果这个属性值为“immediate”,即可以动态生效,如果为“false
”,那么必须修改pfile,重启数据库了。
修改动态参数的一般方法是:
alter system set parameter_name=value scope=both|spfile;
修改静态参数的一般方法是:
在数据库启动时:SQL>create pfile from spfile;
关闭数据库:SQL>shutdown immediate
vi pfile
在文件中修改参数值
cp $ORACLE_HOME/dbs/init$ORACLE_SID.ora
SQL>startup pfile='$ORACLE_HOME/dbs/init$ORACLE_SID.ora'
正常启动后,创建spfile:SQL>create spfile from pfile;
下次启动的时候,直接用startup就可以读取到新spfile的参数值了。