转一:
首先,说明SID是Oracle数据库的实例ID,用来唯一标识一个实例(通常也就是一个Oracle数据库)。
1,pfile文件是Oracle8i以前的启动参数文件(之后的9i,10g,11g中也能找到它)。以文本形式存在,
可以用vi编辑器对其中参数进行修改。文件格式为init.ora或 initSID.ora;
文件位置在:在10.0.2\admin\实例名\pfile\文件夹下有个init.ora.xxxxxxxxxxx 文件,后面的xxxxxxxxxxx 是时间戳。
2, spfile用于Oracle9i之后的版本,以二进制文本形式存在,
不能用vi编辑器对其中参数进行修改。
文件格式为spfileSID.ora(spfile.ora的话就是所有实例通用的参数文件)。
(1)如果要对spfile文件进行修改,可以在数据库运行时采用SQL语言:
SQL> ALTER SYSTEM SET PARAMETER = 'VALUES';进行修改。
ALTER SYSTEM还有选项:SCOPE。SCOPE参数有三个可选值:MEMORY ,SPFILE , BOTH
MEMORY:只改变当前 实例运行
SPFILE:只改变SPFILE的设置
BOTH:改变实例及SPFILE
用spfile以后,所有参数改变都可以写到spfile里面(只要定义scope=spfile或both):
SQL> ALTER SYSTEM SET PARAMETER = 'VALUES' SCOPE=SPFILE;
(2)如果不方便使用SQL语句对spfile进行操作,可以先通过SQL语句:
SQL> CREATE Spfile FROM pfile; 这种方法将二进制文本形式的spfile转换成文本形式的pfile格式,然后再用vi编辑器对其中的参数进行直观修改,以达到方便的目的。
修改完成之后还能通过语句 、将文本形式的pfile格式转换回二进制文本形式的spfile:
SQL> CREATE pfile FROM Spfile;
(3)Spfile改正了pfile管理混乱的问题,在多结点的环境里,pfile会有多个image,启动时候需要跟踪最新的image。spfile保证服务器每次的启动都是一致的,pfile可能会导致启动不一致。因为pfile可以在客户端启动。
3,spfile 可以在数据库运行时动态修改参数,有些不需要重启数据库,特殊的还要重启才能生效。
而pfile 不能动态修改数据库参数,文本编辑后必须重启数据库
4,启动时的查找顺序:
spfile.ora > spfile.ora > init.ora (也就是说spfile优先于pfile,而且本实例设置优先于全局设置)
也可以在启动时指定用哪个文件:
SQL>startup pfile='Your_Pfile.ora'
SQL>startup spfile='\product\11.1.0\db_1\database\SPFILE_SINKA.ORA' force
转二:
在9i 以前,Oracle 使用pfile 存储初始化参数配置,这些参数在实例启动时被读取,任何修改需要重起实例才能生效;使用spfile 您能够使用ALTER SYSTEM 或ALTER SESSION来动态修改那些可动态修改的参数,任何更改能够立即生效,您能够选择使更改只应用于当前实例还是同时应用到spfile。这就使得任何对spfile 的修改都能够在命令行完成,我们能够完全告别手工修改初始化参数文档,这就大大减少了人为错误的发生。
SPFILE 是个二进制文档,能够使用RMAN 进行备份,这样实际上Oracle 把参数文档也纳入了备份恢复管理。
除了第一次启动数据库需要PFILE(然后能够根据PFILE 创建SPFILE),我们能够不再需要PFILE,ORACLE 强烈推荐使用spfile,应用其新特性来存储和维护初始化参数配置。
一. 创建SPFILE
缺省的,ORACLE 使用PFILE 启动数据库,SPFILE 必须由PFILE 创建,新创建的SPFILE在下一次启动数据库时生效,CREATE SPFILE 需要SYSDBA 或SYSOPER 的权限:
语法如下:
CREATE SPFILE[=’SPFILE-NAME’] FROM PFILE[=’PFILE-NAME’]
例:
SQL> create spfile from pfile;
缺省的,spfile 创建到系统缺省目录
(Unix: $ORACLE_HOME/dbs; NT: $ORACLE_HOME\database)
假如SPFILE 已存在,那么创建会返回以下错误:
SQL> create spfile from pfile;
create spfile from pfile
*
ERROR 位于第1 行:
ORA-32002: 无法创建已由例程使用的SPFILE,这也能够用来判断当前是否使用了SPFILE 文档。
然而意外的时,Oracle 并没有向其他文档相同,在运行期间保持锁定,让我们作以下试验:
SQL> host rename SPFILEEYGLEN.ORA SPFILEEYGLEN.ORA.BAK
SQL> alter system set db_cache_size=24M scope=both;
系统已更改。
SQL> host dir *.ora
驱动器E 中的卷是Doc
卷的序列号是980C-8EFF
E:\Oracle\Ora9iR2\database 的目录
2003-02-10 14:35 2,048 PWDeyglen.ORA
1 个文档2,048 字节
0 个目录150,347,776 可用字节
SQL> alter system set db_cache_size=24M scope=spfile;
alter system set db_cache_size=24M scope=spfile
*
ERROR 位于第1 行:
ORA-27041: 无法打开文档
OSD-04002: 无法打开文档
O/S-Error: (OS 2) 系统很难找到指定的文档。
SQL> host rename SPFILEEYGLEN.ORA.BAK SPFILEEYGLEN.ORA
SQL> alter system set db_cache_size=24M scope=spfile;
系统已更改。
SQL>
估计Oracle 以后会想办法来锁定这个文档。
二. 使用SPFILE
重新启动数据库,使用startup 命令,Oralce 将会按照以下顺序在缺省目录中搜索参数文档:
a. spfile${ORACLE_SID}.ora
缺省目录UNIX: ${ORACLE_HOME}/dbs/
NT: ${ORACLE_HOME}\database
b. spfile.ora
缺省目录UNIX: ${ORACLE_HOME}/dbs/
NT: ${ORACLE_HOME}\database
c. init${ORACLESID}.ora
缺省目录UNIX: ${ORACLE_HOME}/dbs/
NT: ${ORACLE_HOME}\database or
${ORACLE_HOME}\admin\db_name\pfile\
创建了spfile,重新启动数据库,Oracle 会按顺序搜索以上目录,spfile 就会自动生效。
三. 使用pfile/spfile 启动数据库
假如您想使用pfile 启动数据库,您能够在启动时指定pfile 或删除spfile.
SQL> startup pfile='E:\Oracle\admin\eyglen\pfile\init.ora';
您不能以同样的方式指定spfile,但是能够创建一个包含spfile 参数的pfile 文档,指向spfile.
SPFILE 是个自Oracle9i 引入的初始化参数,类似于IFILE 参数。SPFILE 参数用于定义非缺省路径的spfile 文档。
您能够在PFILE 链接到SPFILE 文档,同时在PFILE 中定义其他参数,假如参数重复配置,后读取的参数将取代先前的配置。
PFILE 参数的使用,例如:
这是我们使用SPFILE 启动的榭觯?br> SQL> startup
ORACLE 例程已启动。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
数据库已打开。
SQL> show parameter log_archive_start
NAME TYPE
------------------------------------ ----------------------
VALUE
------------------------------
log_archive_start boolean
TRUE
SQL> show parameter spfile
NAME TYPE
------------------------------------ ----------------------
VALUE
------------------------------
spfile string
%ORACLE_HOME%\DATABASE\SPFILE%ORACLE_SID%.ORA
SQL>
我们修改PFILE 文档内容如下:
#Pfile link to SPFILE
SPFILE= 'E:\Oracle\Ora9iR2\database\SPFILEEYGLEN.ORA'
log_archive_start = false
能够预见这个log_archive_start 参数配置将会代替SPFILE 中的配置:
SQL> startup pfile='e:\initeyglen.ora'
ORACLE 例程已启动。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
数据库已打开。
SQL> show parameter spfile
NAME TYPE
------------------------------------ ----------------------
VALUE
------------------------------
spfile string
E:\Oracle\Ora9iR2\database\SPFILEEYGLEN.ORA
SQL> show parameter log_archive_start
NAME TYPE
------------------------------------ ----------------------
VALUE
------------------------------
log_archive_start boolean
FALSE
然后我们能够使用ALTER SYSTEM 方式将修改固定到SPFILE.
SQL> alter system set log_archive_start=false scope=spfile;
系统已更改。
所以您也能够通过如上方式在启动时修改初始化参数。比我们在本文最后介绍的导入导出方法要简便的多。
四. 修改参数
能够通过ALTER SYSTEM 或导入导出来更改SPFILE 的内容。
ALTER SYSTEM 增加了一个新选项:SCOPE。SCOPE 参数有三个可选值:
MEMORY ,SPFILE , BOTH
MEMORY:只改变当前实例运行
SPFILE:只改变SPFILE 的配置
BOTH:改变实例及SPFILE
1. SCOPE=MEMORY
SQL> show parameter timed_statistics
NAME TYPE
------------------------------------ ----------------------
VALUE
------------------------------
timed_statistics boolean
TRUE
SQL> ALTER SYSTEM SET timed_statistics=FALSE SCOPE=MEMORY;
系统已更改。
SQL> show parameter timed_statistics
NAME TYPE
------------------------------------ ----------------------
VALUE
------------------------------
timed_statistics boolean
FALSE
SQL> shutdown immediate
数据库已关闭。
已卸载数据库。
ORACLE 例程已关闭。
SQL> startup
ORACLE 例程已启动。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
数据库已打开。
SQL> show parameter timed_statistics
NAME TYPE
------------------------------------ ----------------------
VALUE
------------------------------
timed_statistics boolean
TRUE
2. SCOPE=SPFILE
SQL> show parameter timed_statistics
NAME TYPE
------------------------------------ ----------------------
VALUE
------------------------------
timed_statistics boolean
TRUE
SQL> ALTER SYSTEM SET timed_statistics=FALSE SCOPE=SPFILE;
系统已更改。
SQL> show parameter timed_statistics
NAME TYPE
------------------------------------ ----------------------
VALUE
------------------------------
timed_statistics boolean
TRUE
SQL> shutdown immediate
数据库已关闭。
已卸载数据库。
ORACLE 例程已关闭。
SQL> startup
ORACLE 例程已启动。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
数据库已打开。
SQL> show parameter timed_statistics
NAME TYPE
------------------------------------ ----------------------
VALUE
------------------------------
timed_statistics boolean
FALSE
SQL>
3. SCOPE = BOTH
使用BOTH 选项实际上等同于不带参数的ALTER SYSTEM 语句。
注意:假如修改静态参数,那么需要指定SPFILE 参数,否则将会报错。
SQL> show parameter timed_statistics
NAME TYPE
------------------------------------ ----------------------
VALUE
------------------------------
timed_statistics boolean
FALSE
SQL> ALTER SYSTEM SET timed_statistics=TRUE SCOPE=BOTH;
系统已更改。
SQL> show parameter timed_statistics
NAME TYPE
------------------------------------ ----------------------
VALUE
------------------------------
timed_statistics boolean
TRUE
SQL> shutdown immediate
数据库已关闭。
已卸载数据库。
ORACLE 例程已关闭。
SQL> startup
ORACLE 例程已启动。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
数据库已打开。
SQL> show parameter timed_statistics
NAME TYPE
------------------------------------ ----------------------
VALUE
------------------------------
timed_statistics boolean
TRUE
SQL> ALTER SYSTEM SET sql_trace=FALSE SCOPE=BOTH;
ALTER SYSTEM SET sql_trace=FALSE SCOPE=BOTH
*
ERROR 位于第1 行:
ORA-02095: 无法修改指定的初始化参数
SQL> ALTER SYSTEM SET sql_trace=FALSE SCOPE=SPFILE;
系统已更改。
4.您也能够在数据库shutdown 时创建和修改spfile,例如:
SQL> show sga
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
SQL> shutdown immediate
数据库已关闭。
已卸载数据库。
ORACLE 例程已关闭。
SQL> create pfile from spfile;
文档已创建。
SQL> create spfile from pfile;
文档已创建。
SQL>
五. 是否使用了spfile
判断是否使用了SPFILE,能够使用以下方法:
1.查询v$parameter 动态视图,假如以下查询返回空值,那么您在使用pfile.
SQL> SELECT name,value FROM v$parameter WHERE name='spfile';
NAME
------------------------------------------------------------------
VALUE
------------------------------------------------------------------
spfile
%ORACLE_HOME%\DATABASE\SPFILE%ORACLE_SID%.ORA
2.或您能够使用SHOW 命令来显示参数配置,假如以下结果value 列返回空值,那么说明您在使用pfile:
SQL> SHOW PARAMETER spfile
NAME TYPE
------------------------------------ ----------------------
VALUE
------------------------------
spfile string
%ORACLE_HOME%\DATABASE\SPFILE%ORACLE_SID%.ORA
3.查询v$spparameter 视图
假如以下查询返回0 值,表示您在使用pfile,否则表明您使用的是spfile:
SQL> SELECT COUNT(*) FROM v$spparameter WHERE value IS NOT NULL;
COUNT(*)
相关推荐
Oracle数据库系统中,参数文件是配置数据库运行方式的关键组件,主要分为PFILE(初始化参数文件)和SPFILE(服务参数文件)。这两种类型的参数文件各有特点,适用于不同的管理和操作场景。 一、PFILE(初始化参数...
Oracle数据库的初始化参数文件在系统配置中起着至关重要的作用,它们定义了数据库运行时的各种配置选项。在ORACLE 10G中,有两种类型的初始化参数文件:PFILE(Plain Text File)和SPFILE(Structured Parameter ...
Oracle数据库服务器参数文件是数据库管理系统的核心组成部分,它包含了运行Oracle数据库实例所需的所有配置信息。从Oracle 9i开始,引入了一种新的参数文件格式——服务器参数文件(SPFILE),以替代传统的参数文件...
在Oracle数据库管理中,PFILE(初始化参数文件)和SPFILE(系统参数文件)是两种重要的配置文件。PFILE是以文本格式存储的初始化参数,而SPFILE是二进制格式,能够提供更快的访问速度和更高级的功能。当ASM...
7. startup pfile=参数文件名:带初始化参数文件的启动方式。 8. startup EXCLUSIVE:独占式启动方式。 关闭方式包括: 1. shutdown normal:正常方式关闭数据库。 2. shutdown immediate:立即关闭数据库,数据库...
这是Oracle数据库的初始化参数文件,也称为`spfile`(如果是以.ora结尾,则可能是`pfile`)。它包含了数据库启动、运行及关闭所需的所有配置参数。例如,内存结构如SGA(System Global Area)、PGA(Program Global...
- **定义**:`spfile` 是一种二进制格式的参数文件,它由Oracle数据库自动创建并维护。`spfile` 无法直接被编辑或查看,但可以通过Oracle提供的工具进行管理。 - **优点**: - 更高的安全性:由于其二进制格式,...
"Oracle SGA 参数调整导致数据库启动异常处理方法" ...SGA 参数调整可能会导致数据库启动异常,但通过使用 PFILE 文件创建 SPFILE、修改 PFILE 文件和备份 SPFILE 文件,可以解决这种问题并恢复数据库。
初始化参数是Oracle数据库配置中的核心,它们在数据库启动时被读取,并用于控制数据库的行为和性能。Oracle 11g版本提供了超过200个初始化参数,这些参数大多数都有默认值,用户可以根据具体的数据库使用场景和性能...
二、Oracle数据库启动多实例 Oracle数据库在Linux系统下可以启动多个实例,每个实例都是独立的数据库环境。下面是启动Oracle数据库多实例的步骤: 1. 启动监听:使用lsnrctl start语句启动数据库监听服务。 2. ...
在数据库启动时,Oracle会按照特定顺序读取参数文件:如果有指定的PFILE,则优先使用,然后是SPFILE,最后是默认位置的$ORACLE_HOME/dbs/PFILE。如果PFILE中指定了SPFILE的位置,那么将优先读取SPFILE。 要查看...
本文将详细介绍Oracle数据库的一些主要维护任务,包括使用Oracle Enterprise Manager进行监控、表空间的扩充方法、解决死锁问题以及SPFILE与PFILE的应用。 1. **Oracle Enterprise Manager基本使用** - **启动连接...
- 数据库启动时,默认按以下顺序查找初始化参数文件:指定的PFILE -> SPFILE -> $ORACLE_HOME/dbs/PFILE。PFILE也可以指向SPFILE。 5. **查询SPFILE参数设置:** - 可以使用`v$spparameter`, `v$parameter`, `v$...
Oracle数据库的启动与关闭是数据库管理员日常管理的重要环节。Oracle数据库的启动分为三个阶段:启动例程、装载数据库和打开数据库。首先,启动例程涉及读取初始化参数文件,分配内存给SGA(系统全局区)和PGA(程序...
在Oracle数据库管理中,RAC(Real Application Clusters)是一种多节点的集群技术,允许多个Oracle数据库实例共享对同一个数据库的访问。在RAC环境中配置和管理spfile(服务器参数文件)是至关重要的,因为它存储了...
- spfile是Oracle9i引入的二进制格式的参数文件,优先级高于pfile。 - pfile到spfile或反之的转换需要特定权限,如`create spfile`或`create pfile`命令。 13. **SQL参数查询**: - 可以使用SQL查询来获取数据库...
首先,参数文件是Oracle数据库启动时必须的配置文件,用于指定数据库的初始化参数,如控制文件的位置、数据库名称、内存设置等。Oracle有两种类型的参数文件:SPFILE(二进制文件)和PFILE(文本文件)。启动时,...
Oracle数据库的创建通常涉及多个步骤,包括规划数据库的结构、配置初始化参数文件、创建控制文件、数据文件、重做日志文件等。 **1.1 使用DBCA创建数据库** DBCA是Oracle提供的一种图形化工具,它简化了数据库的...