Oracle中证明spfile和pfile的启动顺序

 问题:
     Oracle在nomount状态:只启动实例而不加载数据库,用于创建数据库或重建控制文件。
 启动实例时会在$ORACLE_HOME/dbs目录中按如下顺序搜索启动参数文件:spfileSID.ora,
 spfile.ora和initSID.ora。可以在startup命令后面通过pfile参数来手工指定启动参数文件。
 我们怎么证明spfile和pfile的启动顺序呢?
 理论:
     在oracle10g以后log_archive_start参数已经废弃,不再使用,如果在归档模式下开启此
 参数将报错.
实验:
1.启动数据库
SQL> startup;
ORACLE 例程已经启动。

Total System Global Area  548225024 bytes                                      
Fixed Size                  1334436 bytes                                      
Variable Size             427819868 bytes                                      
Database Buffers          109051904 bytes                                      
Redo Buffers               10018816 bytes                                      
数据库装载完毕。
数据库已经打开。
2.查看log_archive_start的原始参数为false
SQL> show parameter log_archive_start;

NAME                                 TYPE        VALUE                         
------------------------------------ ----------- ------------------------------
log_archive_start                    boolean     FALSE  
查看spfile的数值                      
SQL> show parameter spfile;

NAME                                 TYPE        VALUE                         
------------------------------------ ----------- ------------------------------
spfile                               string      D:\APP\ADMINISTRATOR\PRODUCT\1
                                                 1.1.0\DB_1\DATABASE\SPFILETICK
                                                 ET.ORA      
3.修改log_archive_start的数值,修改之后spfile文件数据变化.            
SQL> alter system  set log_archive_start=true scope=spfile;

系统已更改。
4.正常启动报错,说明默认读取的spfile文件.
SQL> shutdown ;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORACLE 例程已经启动。

Total System Global Area  548225024 bytes                                      
Fixed Size                  1334436 bytes                                      
Variable Size             427819868 bytes                                      
Database Buffers          109051904 bytes                                      
Redo Buffers               10018816 bytes                                      
数据库装载完毕。
数据库已经打开。
5.关闭重新读取pfile文件启动正常,说明数据库默认先读spfile,在spfile不存在的情况下读取pfile
SQL> shutdown ;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> host del D:\app\Administrator\product\11.1.0\db_1\database\INITticket.ORA

SQL> startup ;
ORACLE 例程已经启动。

Total System Global Area  548225024 bytes                                      
Fixed Size                  1334436 bytes                                      
Variable Size             427819868 bytes                                      
Database Buffers          109051904 bytes                                      
Redo Buffers               10018816 bytes                                      
数据库装载完毕。
数据库已经打开。
6.重新生成spfile文件
SQL> create spfile from pfile;

文件已创建。

SQL> spool off;


备注:在数据启动之后想看数据库是spfile方式启动还是pfile方式启动;
通过:
   SQL> show parameter spfile;
   如果有value的值,表示是spfile方式启动的,没有值表示为pfile方式启动.
  

你可能感兴趣的:(oracle)