初始化参数文件介绍

长平狐 发布于 2013/09/17 15:11
阅读 587
收藏 0

1.初始化参数文件 initializationparameter files;

初始化参数文件是最重要的文件之一,实例启动时读入此文件的参数,并使用这些参数来配置ORACLE INSTANCE;数据库运行期间不锁定参数文件。

初始化参数的分类:

按照得出方式不同,初始化参数可以分为3类:推导参数,操作系统依赖参数和可变参数。

推导参数 derived parameters,通常来自于其它参数的运算,依赖其它参数得出。通常不需要修改。

操作系统依赖参数,如db_cache_size参数,设置ORACLE  buffer cache内存大小,此参数大小受限于物理内存

可变参数:此类参数通常可以被调整,从而产生限制或性能变化。

按照修改方式划分 ,可分为静态参数和动态参数。静态参数只能在参数文件中修改,重启后生效。动态参数可以动态调整,调整后即生效。

按获取方式不同,初始化参数可以分为显示参数和隐含参数。显示参数可以通过v$parameter查询出,隐含参数通常以_开关,通过查询系统表才能获得。在初始化参数文件中没有参数项,但使用ORACLE默认值.

ORACLE_SID从ORACLE 10G开始,参数文件不再记录INSTANCE_NAME,此时INSTANCE_NAME动态从系统ORACLE_SID获得。将保持一致。

2.有两种不同类型的初始化参数文件

静态参数文件 PFILE,此文件为文本文件。动态参数文件 spfile,此文件为二进制文件,ORACLE9I后缺省使用SPFILE启动数据库。 静态参数文件一般名为:initSID.ora  动态参数文件名一般为spfileSID.ora   SID为实例名。

静态参数文件PFILE,在11G中位置为:$ORACLE_HOME\database\

可以直接使用操作系统的复制命令来进行备份。使用写字板来查看文件内容。

查询使用的是动态还是静态参数文件五种方法:VALUE值是空则为静态参数文件

SQL> show parameter spfile;

NAME   TYPE        VALUE

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

spfile string C:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\SPFILEORCL.ORA

BYS|HELLO>select name,value fromv$parameter where name= 'spfile';

BYS|HELLO>select count(*) fromv$spparameter where value is not null;

BYS|HELLO>selectisspecified,count(*) from v$spparameter group by isspecified;

BYS|HELLO>selectdecode(count(*),1,'spfile','pfile') used from v$spparameter where rownum=1 andisspecified='TRUE'; 这是上一句的引申。

静态参数文件是一个包含一系列参数及参数对应值的操作系统文件,有初始化参数文件,PFILE,文本文件可手工修改。

服务器参数文件SPFILE: server parameter files 二进制文件,不能手动修改,使用  alter system set 来设置修改。

视图v$spparameter用于记录SPFILE文件中设置的初始化参数。

SQL>select sid,name,value from v$parameter where value is not null;

视图v$system_parameter用于显示对当前实例级别生效的参数设置,是系统级别的参数设置。一个会话创建时,首先从此视图继承参数设置,v$parameter用于显示会话级别生效的参数设置,如果在会话级别修改了参数,这里的参数值可能与v$system_parameter显示的不同。

还存在一个v$parameter2视图,与v$parameter不同在于如果参数有多个值,它分多行显示。如三行控制文件

查询参数文件信息:

SQL>show parameter   这个命令实际上是在后台查询v$parameter视图。

SQL>show spparameter

SQL>show parameter sga

NAME                                 TYPE        VALUE

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

lock_sga                             boolean     FALSE

pre_page_sga                         boolean     FALSE

sga_max_size                         big integer 412M

sga_target                           big integer 0

3.参数文件的搜索顺序:在缺省目录$ORACLE_HOME/database下搜索SPFILESID.ORA——SPFILE.ORA——PFILESID.ORA

创建动态参数文件 create spfile frompfile  ORACLE    用默认的PFILE产生一个默认位置和名字的SPFILE

也可以从指定的PFILE生成指定的SPFILE。ORACLE运行期间未锁定SPFILE文件。

create spfile='C:\DBHOME_1\DATABASE\SPFILEORAC.ORA'  from pfile='C:\oracle\admin\orac\pfile\initorcl.ora';

4.部分参数介绍:

DB_NAME:
实例启动的最少参数要求,有此参数,数据库实例就可以启动。
可以新建INIT.ORA只包括此参数测试。

它代表了实例即将连接的数据库名称,关系到具体的物理文件。单实例数据库DB_NAME与INSTANCE_NAME可设置相同,RAC环境下多实例对应一个数据库,两者不同。

DB_NAME用来定义数据库名称,必须是不超过8个字符的文本串,数据库创建过程中,DB_NAME被记录在数据文件、日志文件、控制文件,实例启动过程中参数文件中DB_NAME与控制文件中不一致,则数据库不能启动。

一个实例可以MOUNT并打开任何数据库,同一时间一个实例只能打开一个数据库。

一个数据库可以被一个或多个实例MOUNT并打开,如RAC

简单来说就比如实例是男人,数据库是女人。正常情况下,同一时间一男只能打开一女,理论上一男能打开任意女。一女可以被一个男打开,也可以同时被多个男打开。

ORACLE_SID:

ORACLE System IDentifier的缩写, ORACLE_SID以环境变量形式出现。ORACLE实例由一块共享内存区域SGA和一组后台进程background process组成,后台进程是数据库与操作系统运行交互的通道。比如JORACLE根据ORACLE_SID决定查找参数文件并启动实例。

INSTANCE_NAME 在数据库内部ORACLE_sid关联概念就是INSTANCE_NAME,ORACLE存在的初始化参数INSTANCE_NAME用于标示数据库实例名字缺省值是ORACLE_SID,在数据库内部视图V$INSTANCE中记录着INSTANCE_NAME,来自数据库实例的SID,始终与ORACLE_SID保持一致。

从动态参数文件创建静态参数文件为:

create pfile from spfile;

create sfile='C:\DBHOME_1\DATABASE\initorcl.ora'from spfile=' C:\DBHOME_1\DATABASE\SPFILEORAC.ORA';

5.如何修改初始化参数:

Alter system命令或者导入导出SPFILE内容修改。Alter system  的SCOPE参数有3个可选值,MEMORY,只改变当前实例,重启数据库后失效。SPFILE,只改变SPFILE,不改变当前实例,重启后生效。对于静态参数,只能指定SCOPE=SPFILE进行修改。BOTH,同时改变实例及SPFILE,当前生效,重启后有效。默认不加SCOPE参数时就是BOTH此参数。

命令示例:

Alter system set db_cache_advice=offscope=memory;

Alter system set db_cache_advice=offscope=spfile;

Alter system setdb_cache_advice=off scope=both;这两条命令等效。

Alter system setdb_cache_advice=off;

RAC环境需要指定SID名称,指定为*对所有实例生效

Alter system set db_cache_advice=off sid=’*’ scope=spfile;

Alter system set db_cache_advice=off sid=’orcl’scope=spfile;

6.重置SPFILE中设置的参数:

Alter system reset open_cursors scope=both;


原文链接:http://blog.csdn.net/q947817003/article/details/11269807
加载中
返回顶部
顶部