ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 文件-spfile说明

文件-spfile说明

原创 Linux操作系统 作者:oracle_db 时间:2012-05-16 17:21:18 0 删除 编辑
SPFILE优点:
杜绝参数文件的繁殖,有多个PFILE,且版本内容不一的情况。不必手动查找维护所有参数文件,与PFILE对应。
SPFILE命名:
默认=spfile$oracle_sid.ora如:spfileTESTENV01.ora
SPFILE可以随便放在一个目录吗?
可以,但是推荐放在默认目录下!
如何由PFILE转换成SPFILE?
CREATE SPFILE FROM PFILE
SPFILE的参数值如何修改设置?
alter system set parameter=value[comment='text'] [deferred] scope=[memory][spfile][both]
deferred指定系统修改是否只对以后的会话有效,默认情况下alter system会立即生效,但是有些参数不能立即修改。
如何查看那些参考必须使用deferred选项?
QL> show user;
USER is "SYS"
SQL> select name from v$parameter where issys_modifiable='DEFERRED';

NAME
--------------------------------------------------------------------------------
backup_tape_io_slaves
audit_file_dest
object_cache_optimal_size
object_cache_max_size_percent
sort_area_size
sort_area_retained_size
olap_page_pool_size

7 rows selected.

SQL> 
对那些需要使用deferred选项的参数,如果没有给到正确选项会出什么错?
SQL> alter system set sort_area_size=65536;
alter system set sort_area_size=65536
                                    *
ERROR at line 1:
ORA-02096: specified initialization parameter is not modifiable with this
option


SQL> alter system set sort_area_size=65536 deferred;

System altered.

SQL> 

SCOPE=MEMORY|SPFILE|BOTH都是什么意思?
SCOPE=MEMORY 只在实例中修改;数据库重启后将不再保存。下一次重启数据库时,设置还是修改前的样子。

SCOPE=SPFILE 只修改SPFILE 中的值。数据库重启并再次处理SPFILE 之前,这个修改不会生效。有些参数只能使用这个选项来修改,例如,processes 参数就必须使用SCOPE=SPFILE,因为我们无法修改活动实例的processes 值。

SCOPE=BOTH 是指,内存和SPFILE 中都会完成参数修改。这个修改将反映在当前实例中,下一次重启时,这个修改也会生效。这是使用SPFILE 时默认的作用域值。如果使用init.ora 参数文件,默认值则为SCOPE=MEMORY,这也是此时惟一合法的值。

如何删除SPFILE中的参数值,取消设置?

alter system reset parameter  scope=xxx sid=xxx

如何根据SPFILE创建PFILE?

QL> create pfile='/u01/oracle/dbs/testpfile.ora' from spfile;

File created.

SQL> !
[oracle@oraclelinux ~]$ pwd
/u01/oracle
[oracle@oraclelinux ~]$ cd dbs
[oracle@oraclelinux dbs]$ ls
DBTEST2           init.ora           lkDBTEST2           spfiledbtest.ora
hc_TESTENV01.dat  initTESTENV01.ora  snapcf_TESTENV01.f  spfileTESTENV01.ora
initDBTEST2.ora   lkDBTEST           spfileDBTEST2.ora   testpfile.ora
[oracle@oraclelinux dbs]$ ll
total 7320
-rwxr-xr-x  1 oracle oinstall     273 Mar 22 10:48 DBTEST2
-rw-rw----  1 oracle oinstall    1544 May  2 11:07 hc_TESTENV01.dat
-rw-r--r--  1 oracle oinstall     906 Mar 22 11:10 initDBTEST2.ora
-rw-r-----  1 root   root        2403 May  2 11:01 init.ora
-rw-r-----  1 oracle oinstall    2403 Mar 15 14:08 initTESTENV01.ora
-rw-rw----  1 oracle oinstall      24 May  2 11:08 lkDBTEST
-rw-rw----  1 oracle oinstall      24 May  2 11:07 lkDBTEST2
-rw-r-----  1 oracle oinstall 7389184 May 15 17:34 snapcf_TESTENV01.f
-rw-r-----  1 oracle oinstall    2560 Mar 22 15:51 spfileDBTEST2.ora
-rw-r-----  1 oracle oinstall    2560 Mar 15 13:26 spfiledbtest.ora
-rw-r-----  1 oracle oinstall    2560 May 16 17:36 spfileTESTENV01.ora
-rw-r--r--  1 oracle oinstall     991 May 16 17:43 testpfile.ora
[oracle@oraclelinux dbs]$ 

SPFILE丢失了怎么办?

可以从数据库的ALERT文件中找到相关信息进行恢复,根据ALERT文件中的信息创建PFILE,然后创建SPFILE


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

上一篇: 文件-init.ora说明
下一篇: 文件-跟踪文件
请登录后发表评论 登录
全部评论

注册时间:2008-11-13

  • 博文量
    158
  • 访问量
    306110