实验目的:测试参数文件的启动顺序

1.查看参数文件,生成文本文件参数文件
$ cd $ORACLE_HOME/dbs 
$ cp spfilezwb.ora spfile.ora  
$ export ORACLE_SID=zwb
$ sqlplus "/as sysdba"
SQL> create pfile from spfile;  

2.三个文件都存在的情况下,测试结果为spfilezwb.ora文件启动
SQL> startup nomount
SQL> show parameter spfile;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      /oracle/app/product/10.2.0/db_
                                                 1/dbs/spfilezwb.ora


3.spfilezwb.ora文件丢失后,启动顺序测试为spfile.ora文件启动
$ mv spfilezwb.ora spfilezwb.ora.bak
SQL> startup nomount
SQL> show parameter spfile;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      /oracle/app/product/10.2.0/db_
                                                 1/dbs/spfile.ora


4.再把spfile.ora文件丢失,查询为空反向腿倒出为initzwb.ora文件启动
$ mv spfile.ora spfile.ora.bak
SQL> startup nomount
SQL> show parameter spfile;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string

5.实验结果:优先顺序为spfilezwb.ora > spfile.ora > initzwb.ora

 

实验目的:修改为文本文件启动的参数文件initzwb.ora
一.修改process参数为200
1.检查参数
SQL> show parameter process

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes                      integer     0
db_writer_processes                  integer     1
gcs_server_processes                 integer     0
job_queue_processes                  integer     10
log_archive_max_processes            integer     2
processes                            integer     150

2.通过alter system set修改均报错,测试该种方式无法修改
SQL> alter system set processes=200 scope=memory;
alter system set processes=200 scope=memory
                 *
ERROR at line 1:
ORA-02095: specified initialization parameter cannot be modified


SQL> alter system set processes=200 scope=spfile;
alter system set processes=200 scope=spfile
*
ERROR at line 1:
ORA-32001: write to SPFILE requested but no SPFILE specified at startup


SQL> alter system set processes=200 scope=both;
alter system set processes=200 scope=both
                 *
ERROR at line 1:
ORA-02095: specified initialization parameter cannot be modified


3.通过vi修改重启后正常
$ vi initzwb.ora  ---修改
SQL> shutdown immediate
SQL> startup nomount


二.修改aq_tm_processes参数为10
1.通过alter system set 成功,spfile修改失败,重启后丢失
SQL> alter system set aq_tm_processes=10 scope=memory;

System altered.

SQL> show parameter process

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes                      integer     10
db_writer_processes                  integer     1
gcs_server_processes                 integer     0
job_queue_processes                  integer     10
log_archive_max_processes            integer     2
processes                            integer     150

2.通过警告日志$ cd $ORACLE_BASE/admin/zwb/bdump 可查看具体修改方式

3.重启后丢失,必须通过$ vi initzwb.ora (如没有即添加)修改。

实验结果:文本文件启动的参数文件initzwb.ora,要修改参数必须通过$ vi initzwb.ora (如没有即添加)修改。
 

 

实验目的:修改二进制参数文件spfilezwb.ora
1.重命名回来并重启数据库
$ mv spfilezwb.ora.bak spfilezwb.ora
SQL> shutdown immediate
SQL> startup nomount

2.查看是否spfilezwb.ora启动
SQL> show parameter spfile;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      /oracle/app/product/10.2.0/db_
                                                 1/dbs/spfilezwb.ora

3.同样测试修改processes 和 aq_tm_processes参数
1)修改processes 参数
SQL> show parameter process

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes                      integer     0
db_writer_processes                  integer     1
gcs_server_processes                 integer     0
job_queue_processes                  integer     10
log_archive_max_processes            integer     2
processes                            integer     200

SQL> alter system set processes=150 scope=memory;   ---修改内存失败
alter system set processes=150 scope=memory
                 *
ERROR at line 1:
ORA-02095: specified initialization parameter cannot be modified


SQL> alter system set processes=150 scope=spfile;   ---修改SPFILE成功

System altered.

 

2)查看参数文件spfilezwb.ora是否已被修改
通过$ more spfilezwb.ora 查看已被成功修改,由于只是修改到spfile,但需要重启后生效

3)修改aq_tm_processes参数
SQL> alter system set aq_tm_processes=9 scope=both;

System altered.   ---修改内存和spfile均成功

4)可查看警告日志和二进制参数文件spfilezwb.ora 确认修改成功


4.注意点:二进制参数文件不能用VI编辑修改,如修改对当前库没有影响,但重启后系统不认该参数文件。会导致无法启动数据库及调优数据丢失。

实验结果:二进制参数文件spfilezwb.ora必须用alter system set 来修改

 

参数文件小技巧:
1.文本文件转二进制文件
SQL> create spfile from pfile;
2.二进制文件转文本文件
SQL> create pfile from spfile;

3.也可另立路径文件名生成,如
SQL> create spfile='/tmp/111.ora' from pfile;

File created.

SQL> !ls /tmp/111.ora
/tmp/111.ora