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/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/15720542/viewspace-729948/