ITPub博客

首页 > Linux操作系统 > Linux操作系统 > About oracle pfile/spfile

About oracle pfile/spfile

原创 Linux操作系统 作者:BenX22 时间:2012-06-15 22:46:22 0 删除 编辑

9i以前使用静态参数文件,位置$ORACLE_HOME/dbs
1:文本文件
2:只在nomount状态时打开,读取文件内参数后关闭
3:只能用编辑器修改任何参数
4:修改参数后需要重启才能生效

查找顺序:initSID.ora---->init.ora


oracle9i开始,oracle引入了动态参数文件spfile,
1:在nomount后一直打开,里面的部分参数是可以动态调整的,调整后立即生效。这区别于pfile。
2:rman可以自动备份spfile。
3:二进制文件,不能修改,否则会破坏这个文件。

查找顺序:spfileSID.ora---->spfile.ora---->initSID.ora---->init.ora

show parameter spfile
都是查看数据库使用的是pfile还是spfile。

修改spfile需要使用命令修改,并且数据库启动到nomount状态。

create pfile from spfile;命令可以再数据库没有启动的状态下执行。


动态参数文件中参数的修改只能使用  ALTER SYSTEM SET  命令进行修改

ALTER SYSTEM SET parameter_name=parameter_value[comment=‘注释......’] scope=[memory|spfile|both] [sid=‘sid’|’*’]
只是修改内存|只是修改spfile|同时修改spfile和内存默认是both(动态参数可以使用三种方式,静态参数只能使用spfile方式)
默认是’*’,在RAC环境中有意义

一个常见错误的解决流程
错误了的修改了spfile里面的参数,数据库启动失败,因为没有办法直接修改spfile,该怎么办?
1、sql>create pfile=‘/u01/app/oracle/initoraclr10g.ora’ from spfile
2、手工的在pfile里面编辑和修改错误的参数
3、sql>create spfile from pfile=‘=‘/u01/app/oracle/initoraclr10g.ora’
4、sql>startup

创建spfile,pfile的时候可以指定另外的路径:
create spfile=‘/oracle/bak/spfileolit.bak’from pfile='/oracle/db/dbs/initolit.ora';

实例的启动和关闭
1、nomount阶段
 1、寻找参数文件
 2、打开参数文件
 3、打开告警日志alterSID.log(路径$ORACLE_BASE/ADMIN/SID/bdump)
 4、在这个阶段可以重建控制文件

2、mount阶段
 根据参数文件中控制文件的路径和名字,打开所有的控制文件(默认有三个控制文件)
 如果有一个控制文件不能打开,那么不能进入mount状态
 从控制文件中读取数据文件、日志文件的路径和名字,不校验这些文件是否真的存在

3、open阶段
 根据控制文件中对数据文件、日志文件的记录,打开所有的文件
 有一个文件不能打开,就不能进入这个状态

 

实例的关闭
1:abort
 类似突然掉电
 内存被清空、内存中的数据没有写入数据文件
 事务被立即中断
 没有提交、没有回滚

2:immediate
        强制中断当前正在运行的所有事务,回滚这些事务
 回滚完毕,强制中断所有的连接
 将实例中的所有数据写入数据文件

3:transactional
 等待正在运行的事务,一直到他们提交或者回滚
 所有事务主动结束以后(提交或者回滚),强行中断连接
 将实例里面的数据写入数据文件
 清空缓存
 如果有事务一直没有提交或者回滚,实例无法关闭


4:normal
 等待事务的主动提交或者回滚
 等待用户主动断开连接
 如果有一个用户没有断开连接,那么数据库无法关闭

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27064837/viewspace-732987/,如需转载,请注明出处,否则将追究法律责任。

上一篇: TLM 1T Migration
下一篇: Useful SQL
请登录后发表评论 登录
全部评论

注册时间:2012-06-13

  • 博文量
    74
  • 访问量
    93843