关闭

20151118 parameter

133人阅读 评论(0) 收藏 举报

参数文件记录了数据库的配置,在数据库启动时,oracle要根据参数文件中的参数设置配置数据库。如要为各个内存池分配多少内存,允许打开的进程数和会话等

要想让数据库启动,必须先读取参数文件。参数文件中的参数 我们通常称其为初始化参数,简称就是参数

参数文件通常分为两大类

数据库启动的时候要用参数文件,先查找spfile<sid>,找不到再spfile.ora,再找不到 然后 init<sid>.ora

1.pfile ---文本文件 可以通过vi编辑修改 init<sid>.ora 

2.spfile ----9i 及之后推出 s代表server p代表parameter,二进制文件 只能存放在服务器端 spfile<sid>.ora

因为spfile是二进制文件 所以可以被rman备份

spfile只能通过 alter system|session set parameter_name=values <>的方式修改

参数文件位置 $ORACLE_HOME/dbs

cd $ORACLE_BASE/admin/$ORACLE_SID/PFILE

init.ora.1022015233559 这个是初始化参数文件,只在数据库初始化时候使用,以后不再使用

oracle9i 之后默认都是spfile

参数文件的转化

create pfile from spfile 由spfile

这个时候创建pfile的路径为$ORACLE_HOME/dbs

也可以指定路径

create pfile ='.....' from spfile;

反之对于创建spfile也适用

11g更强大的功能

create spfile =‘....’ from memory 

从内存中创建


修改参数文件 通过修改Initsid的方式修改的话 oracle还是会以spfile的方式启动 修改不会生效

所以要以pfile的方式启动

startup pfile='$ORACLE_HOME/dbs/initdevdb.ora'

此时修改spfile create spfile from pfile ,spfile文件就会覆盖掉,下次就会以新的参数启动


对于spfile的修改

alter system|session set parametername=value scope=memory|spfile|both

memory表示只修改当前实例,不修改成参数文件,下次启动不生效,只对当前instance内存有效

spfile  --只对spfile修改,必须下次启动才生效,当前实例没有修改

both --把内存和参数文件都会修改 为不指定scope的默认值


system session

v$parameter ---isses_modifiable 可以被alter session修改

                        ---issys_modifiable 可以被alter system修改

对于rac还可以 指定sid修改


对于查看参数文件的值可以用下面的方法

show parameter sga_

查看sga相关的参数



SQL> alter system set sga_max_size=200m;
alter system set sga_max_size=200m
                 *
ERROR at line 1:
ORA-02095: specified initialization parameter cannot be modified

这个表示sqa_max_size只能在启动的时候修改 为静态参数

所以这时只能通过修改spfile文件

alter system set sga_max_size=200m scope=spfile;


也可以 alter system set sga_max_size=200m scope=spfile sid='' 

对于集群有应用

alter system set pga_aggregate_target=20m scope=memory;

只对当前内存修改 下次启动后这个值并不会被修改


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:89282次
    • 积分:3407
    • 等级:
    • 排名:第9816名
    • 原创:261篇
    • 转载:21篇
    • 译文:0篇
    • 评论:2条
    最新评论