设为首页 收藏本站
查看: 495|回复: 0

[经验分享] Oracle初始化参数文件pfile和spfile

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-8-25 10:27:50 | 显示全部楼层 |阅读模式
pfile和spfile的区别pfile :Oracle 9i之前,ORACLE一直采用PFILE方式存储初始化参数,该文件为文本文件,可以在操作系统级别修改。当spfile文件修改出现错误导致oracle无法启动时,可以使用 pfile文件启动数据库
spfile:从Oracle 9i开始,Oracle引入了SPFILE文件,该文件为二进制格式,不能通过手工修改,只能在sql下通过alter system set 修改其中的参数。
如 ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE = EXCLUSIVE SCOPE = SPFILE ;
其中 scope有三个参数,分别为
        scope=both       立即并永久生效,(默认模式)
         scope=spfile     下次启动才能生效。
         scope=memory     立即生效但下次启动时失效
查看spfile的位置SQL> show parameter spfile ;

NAME                     TYPE     VALUE
------------------------------------ ----------- ------------------------------
spfile                     string     /opt/oracle/app/product/11.2.0
                         /dbhome_1/dbs/spfileorcl.ora

或者:
SQL> SELECT NAME, VALUE, DISPLAY_VALUE FROM V$PARAMETER WHERE NAME ='spfile';

NAME
--------------------------------------------------------------------------------
VALUE
----------------------------------------------------------------------------------------------------
DISPLAY_VALUE
----------------------------------------------------------------------------------------------------
spfile
/opt/oracle/app/product/11.2.0/dbhome_1/dbs/spfileorcl.ora
/opt/oracle/app/product/11.2.0/dbhome_1/dbs/spfileorcl.ora

验证是否是spfile启动1.执行SELECT ISSPECIFIED,count(*) FROM v$spparameter group by  ISSPECIFIED;
如果结果又true值,说明是spfile启动
2.show parameter spfile 如果value值不为空,则为spfile启动

使用spfile启动的实例,如何修改动态参数的内存值?
alter system set open_cursors=500 scope=memory;
使用spfile启动的实例,如何修改动态参数在参数文件中的取值?
alter system set open_cursors=400 scope=spfile;
使用spfile启动的实例,如何同时修改动态参数在参数文件中的取值和内存中的取值?
alter system set open_cursors=600 scope=both;
alter system set open_cursors=600;
使用spfile启动的实例,如何修改静态参数在参数文件中的取值?重新启动实例生效!!! startup force
alter system set db_unique_name='mydb' scope=spfile;

使用pfile:
create pfile from spfile;
create spfile from pfile;

*使用pfile启动实例alter system set命令没有scope选项!alter system set命令只能修改内存!
使用pfile启动的实例,如何修改动态参数的内存值?
alter system set open_cursors=500;
使用pfile启动的实例,如何修改动态参数在参数文件中的取值?
使用vi直接修改!
使用pfile启动的实例,如何同时修改动态参数在参数文件中的取值和内存中的取值?
先用alter system set命令,再使用vi!
使用pfile启动的实例,如何修改静态参数在参数文件中的取值?
使用vi直接修改!

实战:###############################################################
查看open_cursors参数值

strings $ORACLE_HOME/dbs/spfileorcl.ora  | grep open_cursors
show parameter name;
alter system set  db_unique_name = 'test' scope=spfile;
startup force;


(1)、如何创建pfile?
create pfile from spfile;
如何用pfile启动实例?
需要把spfile修改名字!spfile优先级高于pfile!!!!!!


show parameter spfile ;
有值 spfile启动实例
没有值 pfile

cat initorcl.ora  | grep open_cursors

(2)使用pfile启动实例,如何修改动态参数的内存值和参数文件的值?
1、alter system set open_cursors=600
2、 initorcl.ora

(3)修改pfile位置
shutdown immediate

mv initorcl.ora  /home/oracle/

startup pfile='/home/oracle/initorcl.ora'

(4)修改spfile位置
1、将spfile拷贝到指定路径
shutdown immediate
mv  spfileorcl.ora /home/oracle/2.ora

2、spfile指向pfile
vim initorcl.ora
spfile='/home/oracle/2.ora'

(5)将spfile写入设备

将参数文件写入字符设备,使用字符设备充当spfile启动实例!
使用dd创建二进制文件
dd if=/dev/zero of=/disk1 bs=1M count=10
将二进制文件变块设备
losetup /dev/loop1 /disk1
将块设备变字符设备
raw /dev/raw/raw1/ /dev/loop1
chown oracle.  /dev/raw/raw1
将spfile写入设备:
create spfile='/dev/raw/raw1' from pfile;
[oracle@install12 dbs]$ cat initorcl.ora
spfile='/dev/raw/raw1'

SQL> show parameter spfile;

NAME                     TYPE     VALUE
------------------------------------ ----------- ------------------------------
spfile                     string     /dev/raw/raw1


##########create pfile='/home/oracle/test.ora' from memory;







运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-262783-1-1.html 上篇帖子: oracle 11g 审计文件 audit 下篇帖子: oracle之procedures之常用判断等 Oracle
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表