oracle9i引入了具有延续性的初始化参数文件spfile(server parameter file),所谓延续性是指对初始化参数的在线修改可以直接作用到参数文件中,这样所有被修改的参数将永久生效。
oracle9i引入了具有延续性的初始化参数文件spfile(server parameter file),所谓延续性是指对初始化参数的在线修改可以直接作用到参数文件中,这样所有被修改的参数将永久生效。
spfile有以下几个显著优点:
1、“alter system”所设定的参数可以直接保存在spfile中,不像以前那样需要手工更改参数文件才可以使改动永久生效;
2、rman支持对spfile的备份,在这之前是无法做到使用rman来备份初始化参数文件的;
3、可以实现在本地没有远程数据库的init.ora拷贝的时候,远程启动数据库;
4、在rac的多个实例之间可以共享一个spfile。
下面我们将详细讨论这几个新特性。
1、spfile概述
spfile是一个很小的二进制文件,有oracle服务器自动维护,位于oracle服务器端($oracle_home/dbs/spfile.ora),因为oracle默认就是此spfile,所以我们可以通过sql*plus或oem无需指定初始化参数在客户端远程启动数据库。
2、spfile的创建、导出与更新
sysdba/sysoper(我不知道别人是不是使用sysoper,反正我是从来不用这个)可以在数据库处于任何状态下(idle/nomount/mount/open),通过下面的语句来创建一个spfile:
| create spfile[='spfile_name'] from pfile[='pfile_name']; |
而将这个语句反过来就可以通过spfile来建立pfile,oracle称之为spfile的导出。
| create pfile[='pfile_name'] from spfile[='spfile_name']; |
导出的文件格式如下:
|
...... |
导出spfile由两个主要的用途:批量修改参数、作为spfile的一种备份方式(如果数据库采用rman备份方式,我们可以直接用rman来备份spfile)。当批量修改(编辑pfile)完成后,我们可以通过重新创建spfile来实现对spfile的更新。
3、参数的修改
对于单个参数的修改,我们可以通过下面的语句来完成:
| alter system set parameter=value [comment='comment text'][scope=memory|spfile|both] |
通过scope选项实现了对初始化参数更改的永久性。
对于动态参数,可以加上deferred关键字来标明更改仅对以后的sessions起作用。
| sql> alter system set sort_area_size=104800 2 comment='temporary seting' scope=spfile; system altered. |
4、启动时参数文件的读取顺序
数据库启动时startup默认使用初始化参数文件的顺序是:
| [指定的pfile -->] spfile --> $oracle_home/dbs/pfile |
当然在pfile中也可以指向spfile。
5、读取spfile参数设置
我们可以从v$spparameter, v$parameter, v$parameter2中获得相关参数的信息,也依旧可以使用show sga。
| sql> select name,value,update_comment from v$spparameter 2 where name='sort_area_size'; name value update_comment -------------------- ------------------------------ sort_area_size 104800 temporary seting |
6、共享初始化参数文件
在9i rac中,多个实例可以共享同一个初始化参数文件,而各实例所特有的参数值可以通过在参数前加上实例名称来标示:
| hawk19:sort_area_size=104800 hawk29:sort_area_size=102400 |
关于spfile差不多就这些内容了。
闽公网安备 35060202000074号