Oracle实例初始化参数文件(InitializationParameterFiles)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle实例初始化参数⽂件(InitializationParameterFiles)当 Oracle 实例启动时,它从初始化参数⽂件中读取参数进⾏实例初始化,最⼩化初始化参数⽂件只需要指定参数 DB_NAME 的值,所有其他参数有默认值。
初始化参数⽂件可以是只读(静态)的⽂本⽂件 (pfile),或是读/写(动态)的⼆进制⽂件 (spfile),⼆进制参数⽂件被称为服务器参数⽂件(Server Parameter File)。
pfile 可以⽤记事本进⾏直接修改,且必须重启才能⽣效。
spfile 须⽤ alter system 命令来进⾏修改,⽣效的时限和作⽤域由修改命令的参数 scope 来决定。
如:alter system set job_queue_processed=50 scope=memory;
实例启动初始化参数⽂件查找顺序:spfile ORACLE_SID.ora -> spfile.ora -> init ORACLE_SID.ora
可以通过 show parameter spfile 或者 select value from v$parameter where name = 'spfile' 命令查看服务器参数⽂件的位置,如果启动⽤的是 pfile,则 spfile 值为空。
[oracle@rac1 dbs]$ ls -hl
total 6.8M
-rw-r----- 1 oracle oinstall 1.6K Aug 28 11:56 hc_byisdb.dat
-rw-r----- 1 oracle oinstall 13K May 3 2001 initdw.ora
-rw-r----- 1 oracle oinstall 8.2K Sep 11 1998 init.ora.bak
-rw-r----- 1 oracle oinstall 24 Aug 28 11:58 lkBYISDB
-rw-r----- 1 oracle oinstall 1.5K Sep 2 10:44 orapwbyisdb
-rw-r----- 1 oracle oinstall 6.8M Aug 29 04:13 snapcf_byisdb.f
-rw-r----- 1 oracle oinstall 3.5K Sep 5 10:11 spfilebyisdb.ora
当前只有服务器初始化参数⽂件 spfilebyisdb.ora,下⾯再⽣成两个参数⽂件,⼀个是服务器参数⽂件 spfile.ora,另外⼀个是静态参数⽂件 pfile,看三个参数⽂件并存的时候,看实例启动时优先使⽤哪个⽂件作为初始化参数⽂件?
SQL> create pfile from spfile
2 /
File created.
[oracle@rac1 dbs]$ cp spfilebyisdb.ora spfile.ora
[oracle@rac1 dbs]$ ls -hl
total 6.8M
-rw-r----- 1 oracle oinstall 1.6K Aug 28 11:56 hc_byisdb.dat
-rw-r--r-- 1 oracle oinstall 1.2K Sep 5 10:12 initbyisdb.ora
-rw-r----- 1 oracle oinstall 13K May 3 2001 initdw.ora
-rw-r----- 1 oracle oinstall 8.2K Sep 11 1998 init.ora.bak
-rw-r----- 1 oracle oinstall 24 Aug 28 11:58 lkBYISDB
-rw-r----- 1 oracle oinstall 1.5K Sep 2 10:44 orapwbyisdb
-rw-r----- 1 oracle oinstall 6.8M Aug 29 04:13 snapcf_byisdb.f
-rw-r----- 1 oracle oinstall 3.5K Sep 5 10:11 spfilebyisdb.ora
-rw-r----- 1 oracle oinstall 3.5K Sep 5 10:16 spfile.ora
可以看到实例正常启动,使⽤的初始化参数⽂件为 spfilebyisdb.ora。
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 285212672 bytes
Fixed Size 1218968 bytes
Variable Size 79693416 bytes
Database Buffers 197132288 bytes
Redo Buffers 7168000 bytes
Database mounted.
Database opened.
SQL> show parameter spfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string /u01/app/oracle/product/10.2.0
/db_1/dbs/spfilebyisdb.ora
SQL>
模仿spfilebyisdb.ora不存在,可以看到,实例正常启动,使⽤的初始化参数⽂件为:spfile.ora
[oracle@rac1 dbs]$ mv spfilebyisdb.ora spfilebyisdb.ora.bak
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 285212672 bytes
Fixed Size 1218968 bytes
Variable Size 79693416 bytes
Database Buffers 197132288 bytes
Redo Buffers 7168000 bytes
Database mounted.
Database opened.
SQL>show parameter spfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string /u01/app/oracle/product/10.2.0
/db_1/dbs/spfile.ora
SQL>
模仿spfile.ora也不存在,可以看到实例还是可以正常启动,此时的参数 spfile 为空,表明没有⽤到服务器参数⽂件,⽽是⽤到静态参数⽂件 pfile 即 initbyisdb.ora。
[oracle@rac1 dbs]$ mv spfile.ora spfile.ora.bak
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 285212672 bytes
Fixed Size 1218968 bytes
Variable Size 79693416 bytes
Database Buffers 197132288 bytes
Redo Buffers 7168000 bytes
Database mounted.
Database opened.
SQL> show parameter spfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string
模仿initbyisdb.ora参数⽂件也不存在,只剩下它的副本init.ora⽂件。
[oracle@rac1 dbs]$ cp initbyisdb.ora init.ora
[oracle@rac1 dbs]$ mv initbyisdb.ora initbyisdb.ora.bak
[oracle@rac1 dbs]$ ls -hl
total 6.9M
-rw-r----- 1 oracle oinstall 1.6K Aug 28 11:56 hc_byisdb.dat
-rw-r--r-- 1 oracle oinstall 1.2K Sep 5 10:12 initbyisdb.ora.bak
-rw-r----- 1 oracle oinstall 13K May 3 2001 initdw.ora
-rw-r--r-- 1 oracle oinstall 1.2K Sep 5 10:31 init.ora
-rw-r----- 1 oracle oinstall 8.2K Sep 11 1998 init.ora.bak
-rw-r----- 1 oracle oinstall 24 Aug 28 11:58 lkBYISDB
-rw-r----- 1 oracle oinstall 1.5K Sep 2 10:44 orapwbyisdb
-rw-r----- 1 oracle oinstall 6.8M Aug 29 04:13 snapcf_byisdb.f
-rw-r----- 1 oracle oinstall 3.5K Sep 5 10:21 spfilebyisdb.ora.bak
-rw-r----- 1 oracle oinstall 3.5K Sep 5 10:24 spfile.ora.bak
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/u01/app/oracle/product/10.2.0/db_1/dbs/initbyisdb.ora'
SQL>
此时只保留了静态参数⽂件 pfile 的副本 init.ora,重启实例报错,说明最后找的参数⽂件为 initbyisdb.ora,即 init ORACLE_SID.ora,这个跟 Oracle 联机⽂档描述的相吻合。
在⽹上看到说当前⾯三个参数⽂件不存在的时候,最后会找 init.ora 参数⽂件,所以就动⼿试验了⼀下,得出结论是不会找 init.ora 参数⽂件。
Oracle 联机⽂档描述:
In the platform-specific default location, Oracle Database locates your initialization parameter file by examining file names in the following order:
1. spfileORACLE_SID.ora
2. spfile.ora
3. initORACLE_SID.ora。