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 from v$parameter where name= 'spfile';
BYS|HELLO>select count(*) from v$spparameter where value is not null;
BYS|HELLO>select isspecified,count(*) from v$spparameter group by isspecified;
BYS|HELLO>select decode(count(*),1,'spfile','pfile') used from v$spparameter where rownum=1 and isspecified='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不同在于如果参数有多个值,它分多行显示。如三行控制文件
查询参数文件信息:
v$parameter2与v$parameter显示时的区别
BYS@ bys3>select name,value from V$PARAMETER2 where name like '%control_files%';
NAME VALUE
-------------------- ----------------------------------------
control_files /u01/oradata/bys3/control01.ctl
control_files /u01/oradata/bys3/control02.ctl
BYS@ bys3>select name,value from V$PARAMETER where name like '%control_files%';
NAME VALUE
-------------------- ----------------------------------------
control_files /u01/oradata/bys3/control01.ctl, /u01/or
adata/bys3/control02.ctl
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
主机,实例,数据库关系:
比如实例是男人,数据库是女人,主机就是一张大床。
正常情况下,同一时间一男只能打开一女,而理论上一男能打开任意女滴。
一女理论上可以被任意一个男打开,也可以同时被多个男打开----RAC/3P-NP。
一张大床(主机)可以睡一个男人(实例)和一个女人(库),只要床足够大,也可以睡多个男人和多个女人。
使用任意实例名来打开数据库测试 --- http://blog.csdn.net/q947817003/article/details/16337309
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 pfile='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=off scope=memory;
Alter system set db_cache_advice=off scope=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;