SPFile文件是一个二进制格式的文件,尽管可以打开它查看其中的内容,但是任何用户都不应当手工对其内容进行修改,否则实例将无法启动。
修改SPFile文件需要使用Alter System语句,可以在Set子句中通过Scope选项来设置Alter System语句的影响范围。
a.Scope=SPFile:修改仅记录在SPFile文件中。只有在下一次启动数据库时修改才会生效,同时适用于动态/静态初始化参数。
b.Scope=Memory:修改仅记录在内存中。更改将立即生效(只对本次操作有效),下一个次启动数据库时仍然会使用修改前的参数设置。只适用于动态初始化参数。
c.Scope=Both(默认):修改将同时记录在内存中和SPFile文件中。更改立即生效,只适用于动态初始化参数。
另:在修改动态参数时,还可以指定Deferred关键字,这样对参数的修改将延迟到新的会话产生时才生效。
修改服务器端SPFile配置文件:SQL > alter system set ParameterName=ParameterValue scope=spfile;
对动态初始化参数JOB_Queue_Processes进行修改:SQL > Alter System Set JOB_Queue_Processes=50 Comment='Specifies the frequency of checkpoints';
查看spfile文件的内容:SQL> select * from v$spparameter;
查看当前实例的运行参数:
SQL > show parameters;
SQL > select * from v$parameter; SQL > select * from v$parameters;
在创建数据库时,SPFile文件中部分必须考虑的参数值:
基本规则
a.在SPFile文件中,所有参数都是可选的,也就是说只需要在初始化参数文件中列出那些需要修改的参数,其它保持默认值即可。
b.SPFile文件中只能包含参数赋值语句和注释语句。注释语句以“#”符合开头,是单行注释。
c.SPFile文件中列出的参数是不分次序的。
d.SPFile参数的名称和值是不区分大小写的,只有在Unix系统中,由于操作系统本身区分文件名称和路径的大小写,才需要在设置参数时注意大小写问题。
e.若要在SPFile文件的同一行设置多个参数,需要使用空格分隔。比如:PROCESSES=100 CPU_COUNT=1 OPEN_CURSORS=10
f.对于可以具有多个值的初始化参数,需要将所有的值放在一个括号内,并使用逗号进行分隔,比如ROLLBACK_SEGMENTS=(SEG1,SEG2,SEG3,SEG4,SEG5)
g.在SPFile文件中,可以使用IFILE参数引用其它的SPFile文件。
h.对于具有字符串类型值的参数,如果字符串中包含空格或制表符,必须使用单引号或双引号将字符串括起来,比如:NLS_TERRITORY="CZECH REPUBLIC"
常用参数
- DB_NAME和DB_DOMAIN