ITPub博客

首页 > 数据库 > Oracle > 参数文件管理

参数文件管理

原创 Oracle 作者:coredumped 时间:2014-11-16 22:17:05 0 删除 编辑

参数:

什么是数据库参数

控制数据库的属性和行为的一些开关

参数的数量:随版本有些变化

select count(*) from v$parameter;

select count(*) from v$system_parameter;

 //查看参数名和参数值

SQL> select name,value from v$parameter;   

 //db_name参数是实例启动必要的参数

SQL> show parameter db_name   

 

初始化参数的种类:

静态参数:内存状态不允许修改

select name,ISSYS_MODIFIABLE from v$system_parameter  where ISSYS_MODIFIABLE='FALSE';

动态参数:内存状态可以修改

select name,ISSYS_MODIFIABLE from v$system_parameter where ISSYS_MODIFIABLE<>'TRUE' order by 2;

 

 

参数的分类:

1. 正常的参数

2. 隐含的参数

3. 事件参数

我们尽量的避免使用后面两种参数。

event="32333 trace name context forever,level 10"就是事件参数,为了解决一些bug的问题。

_allow_resetlogs_corruption=true 就是隐含参数,我们死马当活马医的时候才会使用后面的两类参数。

--查看所有的隐含参数和值

sys@YIDB> select x.ksppinm name, y.ksppstvl value from sys.x$ksppi x, sys.x$ksppcv y where x.indx = y.indx;

 

 

 

参数文件

参数文件的内容:

存放非default值的初始化参数!

 

参数文件的作用:

通过参数值约束实例的行为!

 初始化参数文件是描述实例的行为的文件,文件大小很小。

 

参数文件的种类:

1.pfile

一直存在

文本格式(使用文本编辑器修改)

可以放在客户端,也可以服务器端

命名规则:

init.ora

init.ora

一般放在ORACLE_HOME/dbs


2.spfile

oracle 9i之后引入

二进制格式(只能使用命令修改)

只能放在服务器端

spfile的优先级别高于pfile

spfile.ora

spfile.ora 

必须在dbs目录下才生效 

可以命令修改:动态和静态参数



纯文本参数文件和二进制参数文件的差别

1.修改参数的方式不同

2.优先级不同

3.是否动态存储修改的参数

4.存在的位置不同

纯文本可以存在于客户端

二进制文件一定存在于server 端

5.rman 可以备份二进制参数文件,不能备份纯文本参数文件。

 

参数文件的优先级别(从高到低):

spfile.ora

spfile.ora

init.ora

init.ora

 

参数文件存放的路径:

$ORACLE_HOME/dbs

 

//初始化参数的文档:

administration-->monitoring-->initalization parameters

 

查看现在数据库使用使用的是什么类型的参数文件:

验证现在数据库使用的参数文件类型,我们一定要知道我们使用的是什么类型的参数文件,涉及到我们如何修改参数的手段。

方式一:

sys@BEEDB> select distinct isspecified  from v$spparameter;

ISSPEC

------

TRUE

FALSE

 

--如果含有true 就是使用二进制参数文件

--如果只有false 就是使用的纯文本参数文件

因为上面的选择有true,所以这个数据库使用的是二进制参数文件。我们修改参数要使用命令而不是编辑文件,千万不要编辑二进制参数文件,你编辑以后会报ora-00600 的错误。

方式二:

sys@YIDB> show parameter spfile

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

spfile                               string      /oracle/app/product/11.2.0/db_

                                                 1/dbs/spfileyidb.ora

如果value有值,则使用spfile;如果没有值,则使用pfile

 

 

查看静态参数和动态参数的个数

sys@BEEDB> select isspecified,count(*) from v$spparameter group by isspecified;

 

ISSPEC   COUNT(*)

------ ----------

TRUE           24

FALSE         238

上面的查询表示有24 个参数存在于二进制参数文件,238 个参数为默认值。有的时候二进制

参数文件又调用了其它的二进制参数文件。如果你看到下面的结果:

 

SQL> select ISSPECIFIED ,count(*) from v$spparameter group by ISSPECIFIED;

ISSPECIFIED COUNT(*)

------------ ----------

TRUE 1

FALSE 213

如果真的只有1 个,很可能就是二进制的参数文件又调用了其它的二进制参数文件,这样

会很烦,千万不要来回引用,给自己的维护造成不必要的麻烦。

 

查看二进制参数文件内的参数设置

sys@YIDB> select name,value from v$spparameter where isspecified='TRUE';

 

--查看所有的参数及含义

col KSPPINM for a35

col KSPPDESC for a60

sys@YIDB> select ksppinm,ksppdesc from x$ksppi order by 1;

 

 

 

查看当前内存中的参数值(当前生效的参数值):

show parameter sga_target

select value from v$parameter where name='sga_target';

select value from v$system_parameter where name='sga_target';

查看参数文件中的参数值:

select value from v$spparameter where name='sga_target';

 

方式一:动态修改参数

只修改参数的内存状态(当前生效的参数值)

alter system set sga_target=160m scope=memory;

只将参数的新值写如spfile而不改变但前内存中的参数值

alter system set sga_target=160m scope=spfile;

既改变内存状态又改变参数文件中的参数值

alter system set sga_target=160m scope=both;

 

注:alter system set 命令的scope选项的默认风格是both!

 

方式二:静态修改参数

alter system set sga_max_size=200m scope=spfile;

由于静态参数的内存状态是不可以被更改的,所以只能将现的参数值改写到参数文件中,

等待下一次重新启动数据库时才能生效!

 

--同时修改二进制文件和内存,是默认选项

sys@YIDB> alter system set pga_aggregate_target=30m scope=both;

 


参数文件的优先级

spfilesid.ora

spfile.ora

snitsid.ora


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

上一篇: Oracle 11G 升级
请登录后发表评论 登录
全部评论

注册时间:2014-11-16

  • 博文量
    25
  • 访问量
    57960