判断ORACLE启动时使用spfile还是pfile
自Oracle 9i以后启动的时候默认使用的初始化文件是spfile,我们可以通过如下三种方式来判断是SPFILE还是PFILE方式启动数据库。
1、show parameter spfile
2、show parameter pfile
3、看v$spparameter视图
1、通过查看spfile、pfile视图
用spfile启动数据库:
SQL> show parameter pfile;
NAME TYPE VALUE
------------------------------------ -------- ------------------------------
spfile string C:\ORACLE\PRODUCT\10.2.0\DB_1\
DATABASE\SPFILEWWL.ORA
SQL> show parameter spfile;
NAME TYPE VALUE
------------------------------------ -------- ------------------------------
spfile string C:\ORACLE\PRODUCT\10.2.0\DB_1\
DATABASE\SPFILEWWL.ORA
用pfile启动数据库
SQL> startup pfile=c:\initwwl.ora
ORACLE instance started.
Total System Global Area 1610612736 bytes
Fixed Size 2066080 bytes
Variable Size 385878368 bytes
Database Buffers 1207959552 bytes
Redo Buffers 14708736 bytes
Database mounted.
Database opened.
SQL> col type format a8
SQL> show parameter pfile;
NAME TYPE VALUE
------------------------------------ -------- ------------------------------
spfile string
SQL> show parameter spfile;
NAME TYPE VALUE
------------------------------------ -------- ------------------------------
spfile string
SQL>
我们在这里可以很明显的发现,使用spfile启动数据库,在查看show parameter pfile和show parameter spfile 都能看到spfile参数文件的路径。
反之使用pfile启动的数据库,我们无论是查看show parameter pfile还是show parameter spfile 都无法看到pfile参数文件的路径。
2、通过v$spparameter视图
使用spfile启动数据库,我们可以看到查询出来的结果是spfile
SQL> select decode(count(*),1,'spfile','pfile') from v$spparameter where rownum=1 and isspecified = 'TRUE';
DECODE(COUNT
------------
spfile
使用pfile启动数据库,我们可以看到查询出来的结果是pfile。
SQL> select decode(count(*),1,'spfile','pfile') from v$spparameter where rownum=1 and isspecified ='TRUE';
DECODE(COUNT
------------
pfile
自9i后,数据库默认使用spfile启动,但是我们也可以指定通过pfile的方式启动。而且pfile和spfile是可以互相转换的,并且转换的话要应用到数据库必须重启数据库。
从spfile创建pfile
SQL> create pfile from spfile;
File created.
从pfile创建spfile
SQL> create spfile from pfile;
File created.
如果在数据库的$ORACLE_HOME/dbs/目录下既有spfile又有pfile,使用spfile启动数据库,不需要指定参数文件路径(因为数据库会优先选择spfile启动),使用pfile启动,则需指定完整路径,如实例1。如果参数文件不在$ORACLE_HOME/dbs/目录下,无论是通过spfile或pfile启动均需要指定完整路径。
实例1:
SQL> startup pfile=$ORACLE_HOME/dbs/initorcl.ora
ORACLE instance started.
Total System Global Area 422670336 bytes
Fixed Size 1300352 bytes
Variable Size 306186368 bytes
Database Buffers 109051904 bytes
Redo Buffers 6131712 bytes
Database mounted.
Database opened.
SQL> show parameter spfile;
NAME TYPE VALUE
------------------------------------ ---------- ------------------------------
spfile string
SQL> show parameter pfile;
NAME TYPE VALUE
------------------------------------ ---------- ------------------------------
spfile string
show parameter spfile和show parameter pfile结果仍然一样,此时spfile的值为NULL了。
SQL> select decode(count(*),1,'spfile','pfile') from v$spparameter where rownum=1 and isspecified = 'TRUE';
DECODE(COUNT
------------
pfile
spfile和pfile的区别
就Oracle的spfile和pfile的区别主要是spfile的修改是可以在线的,而pfile的修改必须关闭数据库,到参数文件所在路径下通过vi或记事本等文本编辑工具修改。(因为参数文件里面的内容太多,编辑起来容易导致错误的编辑到其它的参数,从而导致数据库无法起来,所以在9i以前一般都是要备份pfile后再来做参数的修改,而且修改任何参数都需要停库,非常的不方便;在9i以后的spfile就可以同通过命令修改指定的参数了,而且有很多参数都不用重启数据库,能够在线生效,这个在线生效的参数会随着数据库的版本增高而增加。如果参数修改有问题数据库起不来了可以在nomount状态下创建成pfile再修改回来即可。)
修改spfile参数的三种模式:
scope=both 立即并永久改变,(默认模式)
scope=spfile 下次启动执行新的改变。
scope=memory 立即临时改变下次启动新参数失效
spfile 修改的方法:
SQL> alter system set processes = 100 scope=both; ----该参数不支持动态修改,必须修改完后重启数据库
alter system set processes = 100 scope=both
*
ERROR at line 1:
ORA-02095: specified initialization parameter cannot be modified
-------------------------------------------------------------------------------------------------------------------------------
SQL> show parameter pga;
NAME TYPE VALUE
------------------------------------ -------- ------
pga_aggregate_target big inte 798M
ger
SQL> alter system set pga_aggregate_target = 500m scope=both; -----该参数支持动态修改,所以就立即生效了
System altered.
SQL> show parameter pga;
NAME TYPE VALUE
------------------------------------ -------- ------
pga_aggregate_target big inte 500M
ger
SQL>
SQL> alter system set processes = 100 scope=spfile; ----修改完后重启数据库能生效,不信你试试。
System altered.
SQL> alter system set pga_aggregate_target = 700m scope=spfile; ----当然也可以选择数据库下次启动的时候生效。
System altered.
SQL> alter system set processes = 100 scope=memory; ----因为该参数不支持动态修改,同样也就无法实现立即生效,下次启动失效。
alter system set processes = 100 scope=memory
*
ERROR at line 1:
ORA-02095: specified initialization parameter cannot be modified
SQL>
SQL> alter system set pga_aggregate_target = 600m scope=memory; ---因为该参数支持动态修改,当然也就可以实现立即生效,下次启动失效咯。
System altered.
SQL>
如果使用的是pfile则无法通过命令进行修改,会报ORA-02095或32001错误。
SQL> alter system set processes = 100;
alter system set processes = 100
*
ERROR at line 1:
ORA-02095: specified initialization parameter cannot be modified
SQL> alter system set processes = 100 scope=spfile;
alter system set processes = 100 scope=spfile
*
ERROR at line 1:
ORA-32001: write to SPFILE requested but no SPFILE specified at startup
SQL> alter system set processes = 100 scope=both;
alter system set processes = 100 scope=both
*
ERROR at line 1:
ORA-02095: specified initialization parameter cannot be modified
SQL> alter system set processes = 100 scope=memory;
alter system set processes = 100 scope=memory
*
ERROR at line 1:
ORA-02095: specified initialization parameter cannot be modified
SQL>
分享到:
相关推荐
Oracle数据库系统中,参数文件是配置数据库运行方式的关键组件,主要分为PFILE(初始化参数文件)和SPFILE(服务参数文件)。这两种类型的参数文件各有特点,适用于不同的管理和操作场景。 一、PFILE(初始化参数...
在Oracle数据库管理中,PFILE(初始化参数文件)和SPFILE(系统参数文件)是两种重要的配置文件。PFILE是以文本格式存储的初始化参数,而SPFILE是二进制格式,能够提供更快的访问速度和更高级的功能。当ASM...
在ORACLE 10G中,有两种类型的初始化参数文件:PFILE(Plain Text File)和SPFILE(Structured Parameter File)。PFILE是文本格式的文件,可以直接编辑,而SPFILE是二进制格式,提供了更多的高级特性,如动态调整...
在RAC环境中配置和管理spfile(服务器参数文件)是至关重要的,因为它存储了数据库实例的配置参数。 首先,我们需要了解spfile在RAC环境下的创建和使用过程。与传统的单实例数据库不同,在RAC中,数据库实例可能...
### Oracle 数据库中的 Spfile 和 Pfile:深入解析与实践 #### 一、概述 在Oracle数据库管理中,参数文件(Parameter File)是至关重要的组成部分,它负责存储和管理数据库的各项配置参数。根据其格式的不同,参数...
Oracle中的SPFILE(Server Parameter FILE)是Oracle 9i引入的一种新型初始化参数文件,它具有持久性和其他传统初始化参数文件(PFILE)不具备的优势。SPFILE的出现使得对数据库参数的管理和维护更加高效和便捷。 1...
总的来说,Oracle 10g中创建SPFILE的过程涉及到启动实例、运行SQL命令以及检查和维护新生成的文件。理解这个过程对于数据库管理员来说至关重要,因为它可以帮助快速恢复从SPFILE丢失的情况,保证数据库的稳定运行。
### Oracle SPFILE与PFILE详解 #### 一、引言 在Oracle数据库中,初始化参数文件扮演着极其重要的角色,它决定了数据库实例的配置和行为。随着版本的更新,Oracle引入了一个新的概念——SPFILE(Server Parameter ...
在Oracle 9i中,一个重要的新特性被引入——SPFILE(Server Parameter File),它标志着Oracle在安全性、可靠性和管理效率上的重大提升。SPFILE作为服务器参数文件,取代了传统的文本格式的PFILE(Parameter File)...
CREATESPFILE='$ORACLE_HOME/dbs/spfileUAEE.ora' FROM PFILE='$ORACLE_HOME/dbs/initUAEE.ora' ``` 这里需要注意几点: - `initUAEE.ora` 是现有的文本格式参数文件(pfile); - `spfileUAEE.ora` 是即将创建的二...
在数据库启动时,Oracle会按照特定顺序读取参数文件:如果有指定的PFILE,则优先使用,然后是SPFILE,最后是默认位置的$ORACLE_HOME/dbs/PFILE。如果PFILE中指定了SPFILE的位置,那么将优先读取SPFILE。 要查看...
5. Spfile 和 Pfile:Spfile 和 Pfile 都是 Oracle 数据库的参数文件,用于存储数据库的参数配置。Spfile 是二进制格式的参数文件,而 Pfile 是文本格式的参数文件。 6. Spfile 的优点:Spfile 的优点是可以在线...
总的来说,Oracle的参数管理从PFILE到SPFILE的发展,反映了数据库管理系统在性能、灵活性和易用性方面的提升。理解和掌握SPFILE的使用是现代Oracle DBA必备的技能之一。在实际环境中,应始终参考Oracle的官方文档以...
Oracle 数据库是一个高度复杂且广泛使用的数据库管理系统,其性能和稳定性取决于多个配置参数的恰当设置。本文主要讨论了由于配置 `Process` 参数不当导致Oracle监听器无法启动的问题及其解决方案。 `Process` 参数...
"Oracle SGA 参数调整导致数据库启动异常处理方法" ...SGA 参数调整可能会导致数据库启动异常,但通过使用 PFILE 文件创建 SPFILE、修改 PFILE 文件和备份 SPFILE 文件,可以解决这种问题并恢复数据库。
Oracle提供了两种主要的配置文件类型:pfile(参数文件)和spfile(服务器配置文件),这两种文件分别有不同的特性和使用场景。 pfile,即初始化参数文件,是一种文本文件,包含了数据库实例启动时需要的所有参数...
- **Oracle如何使用SPFILE**:SPFILE存储在Oracle的二进制格式中,可以更快地读取和解析参数,且支持动态调整参数无需重启数据库。 - **SPFILE的创建及修改**:可以使用`CREATE SPFILE FROM PFILE`命令从PFILE创建...
最后,Oracle SPFILE(System Parameter File)是Oracle 10g引入的新型参数文件,替代了传统的PFILE。SPFILE具有动态更新、自动备份和提高性能等特点。使用`ALTER SYSTEM SET`命令可以直接修改SPFILE中的参数,无需...