oracle参数文件

oracle的参数文件

1、简介:oracle中的参数文件是一个包含一系列参数以及参数对应的值的系统文件,它可以分为两种类型:pfile和spfile。他们是在数据库实例启动时加载的,决定了数据库的物理结构,内存,数据库的限制及系统大量的默认值,数据库的各种物理属性,指定数据控制文件名(当数据库实例由nomount启动到mount状态时,就会通过参数文件找到对应的控制文件,来装载对应的数据库)和路径等信息,是进行数据库设计和性能调优的重要文件。

2、oracle的两种参数文件:pfile(参数文件)和spfile(动态参数文件/二进制文件)

(1)初始化参数文件(Initialization Parameters Files),在oracle 9i以前的版本中,oracle一直采用pfile方式存储初始化参数,该文件称为文本文件。

(2)服务器参数文件(Server Parameter Files),从Oracle 9i开始,Oracle引入了SPFILE文件,该文件为二进制格式,不能通过手工修改,只能通过使用sql语句进行相应的操作

两种参数文件的区别:

1:PFILE是文本文件的,而SPFILE是二进制格式的。PFILE文件可以用文本编辑器打开手工配置、而SPFILE不行,只能通过SQL命令在线修改。从操作系统上可以看到这两者的区别,初始化参数文件为ASCII文本文件,SPFILE为数据文件。

2:SPFILE的修改是可以通过SQL命令在线修改,不再需要通过手工修改,对于动态参数所有更改可以立即生效,而PFILE的修改必须重启实例才能生效。

修改spfile的三种方式:(1)scope=both,这种方式下内存(缓冲区)和spfile文件都立即做更改,即立即并永久生效(该模式为默认修改模式)

                                       (2)scope=spfile,这种方式下只修改spfile文件中的内容,而不修改内存(缓冲区)中的内容,这种修改模式不会立即生效,而是等下次启动数据库实例后才会生效

                                       (3)scope=memory,这种方式下只修改内存(缓冲区)中的内容,而不会修改spfile中的内容,这种修改模式只是临时有效,但下次重新启动数据库实例后失效

3、名称上的区别:(1)pfile 默认的名称为“init+例程名.ora”文件路径:/app/oracle/product/10.2.0/dbs,这是一个文本文件,可以用任何文本编辑工具打开。

                               (2)默认的名称为“spfile+例程名.ora”文件路径:/app/oracle/product/10.2.0/dbs以二进制文本形式存在,不能用vi编辑器对其中参数进行修改

4,启动次序不同:启动次序 SPfile优先于Pfile

5、PFILE是静态文件,修改之后不会马上生效,数据库必须重新启动读取这个文件才行

6、SPFILE是动态参数文件,是二进制文件,不可以直接用记事本等等程序做修改,可以用ALTER命令做修改,不用重起数据库也能生效

使用sqlplus查看spfile与pfile的目录位置:

语句一:select name,value,display_value from v$parameter where name='spfile';

语句二:show parameter spfile;或者show parameter pfile;(这条语句也可以用来判断数据库实例是以哪种方式启动的)

(如果数据库实例是使用spfile启动的,那么用上述两个语句的查询结果,value相同——spfile的路径,但是如果数据库实例是使用pfile启动的,那么上述两个语句的查询结果的value都为空)——造成这种结果的原因是:视图v$parameter里没有参数pfile,所以两者结果一致,当数据库以pfile启动时,查询结果为空。



使用sqlplus查看数据库实例是以何种方式启动的(spfile还是pfile):

语句一: show parameter spfile;或者show parameter pfile;

语句二: select count(1) FROM v$spparameter where value is not null;(通过v$spparameter视图,如果一下查询返回0值,表示你在使用pfile,否则表明你使用的是spfile)

oracle启动过程中搜索初始化参数文件的顺序:

(1)%ORACLE_HOME%\database\spfile$ORACLE_SID.ora,如果没有找到则找下一个

(2)%ORACLE_HOME%\datebase\spfile.ora,如果没有找到,则找下一个

(3) %ORACLE_HOME%\database\init$ORACLE_SID.ora,如果还是没有找到,则报错,提示连接不到数据库。

oracle使用sqlplus工具通过不同的文件给数据库实例装载不同的数据库的方法步骤:

(1)先到安装oracle的基目录下找到oracle中你所创建的数据库的位置(即相应文件夹),我的是E:\app\lenovo047\admin\orcl(orcl是数据库的SID——即数据库名称(标识)),然后在该目录下找到pfile文件夹,打开后选择该文件夹下的参数文件(我的为:initorcl.ora.1232017194718),将其复制到oracle的主目录下(home路径,我的为:E:\app\lenovo047\product\11.2.0\dbhome_1\database),这时准备工作已经完成。

(2)接下来就是对oracle数据库进行sqlplus的命令操作了。先关闭数据库实例(shutdown immediate)

然后指定参数文件装载数据库:startup pfile=‘想要使用的参数文件的路径’;(在上一步准备工作中,我们可以看到oracle的家目录下有两个pfile文件——一个inita.ora.2142017164550,一个initorcl.ora.1232017194718)如果选择了第一个,则数据库实例装载的是数据库A,如果选择的是第二个参数文件,则数据库实例装载的是数据库orcl。(以下是通过参数文件inita装载数据库A的例子)


由pfile参数文件创建spfile文件,并用spfile装载数据库的方法:

(1)先关闭数据库实例:shutdown immediate

(2)使用sql语句通过指定的pfile创建spfile(动态参数文件):create spfile from pfile='指定的要使用的参数文件的路径';

(3)直接打开数据库即可:startup open;




  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值