Chinaunix首页 | 论坛 | 博客
  • 博客访问: 34047
  • 博文数量: 16
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 5
  • 用 户 组: 普通用户
  • 注册时间: 2017-09-11 08:57
文章分类
文章存档

2013年(16)

分类: Oracle

2013-05-04 21:15:17

oracle参数文件
参数文件主要是用来记录oracle的配置的,在数据库启动时使用,根据参数文件分配内存,允许打开的进程数和会话数,控制文件的数目和位置。
参数文件在数据库启动的最初阶段被调用(startup nomount)
参数文件有2种,分别为文本格式,二进制格式的
文本格式-pfile
在9i之前使用,可以被操作系统指令修改,如VI
pfile 的位置:$ORACLE_HOME/admin/$ORACLE_SID/pfile  或者 $ORACLE_HOME/dbs
pfile 文件名的格式为:init<$ORACLE_SID>.ora  看文件名前面的initial(init)就是初始化的意思,顾名思义这是个数据库的初始化参数,这样容易记忆些。

二进制格式的参数文件-spfile(服务器参数文件)
这个参数文件是在9i之后才启用的
spfile的位置 $ORACLE_HOME/dbs
spfile的文件名格式: spfile<$ORACLE_SID>.ora
修改方法:alter system|session set parameter_name=value 
由于是二进制文件所以可以使用RMAN备份,pfile是不可以的

oracle启动调用参数文件的顺序:
spfile<$ORACLE_SID>.ora  --  spfile.ora ---- init<$ORACLE_SID>.ora

参数文件的相互转化
create pfile from spfile;
create pfile='....' from spfile;
create spfile from pfile;
create spfile from pfile='...';
create spfile='....' from pfile;
11g可以使用
create spfile from memory;

启动时指定pfile文件启动
startup pfile='....'

查看当前数据库使用什么参数文件启动
检查视图v$spparameter,第一个值是true就是spfile启动,如果是false就是pfile
SQL> select distinct ISSPECIFIED from v$spparameter;
ISSPEC
------
TRUE
FALSE


参数文件的修改
pfile不讨论了,直接文本修改就可以了。但是修改后当前不生效,数据库下次启动后生效

spfile修改
alter system|session set parameter_name=value
memory---修改后当前实例生效,下次重新启动不生效
spfile----修改后当前实例不生效,下次启动后生效
both-----修改后当前实例生效,下次启动也生效(默认)
注:以上三个参数只对alter system 时使用
alter session--是在会话级别对某些参数进行更改,在v$parameter视图中的ISSES_MODIFIABLE字段为true的表示这个参数可以使用alter session修改;
alter system--是在系统级别对某些参数进行更改,它的影响不仅仅是某个会话,而是整个实例。在v$parameter视图中的ISSYS_MODIFIABLE字段为immediate和deferred的表示这个参数可以使用alter system命令修改。当为false时必须跟(scope=spfile)
在v$parameter视图中的issys_modifiable的3个值来解释一下:
如果是immediate:表示这次对这个参数的修改会在你当前会话中就“立即”发生作用,即修改立即生效。
如果是deferred:表示这次修改对当前执行会话中不发生作用,在以后打开的会话中起作用,故它有“推迟”影响的效果。
当为false时必须跟(scope=spfile)
sid---当前实例,在单击环境下这个参数没有意义
sid='* '  RAC下使用,改所有的实例

spfile的删除,重置
alter system reset parameter_name scope=spfile sid='*';

常见的参数
*_pool_size:表示分配的各内存空间大小
audit_file_dest:警告日志的目录
background_dump_dest:后台进程的日志目录
compatible:版本兼容号
control_files:控制文件的个数以及路径
core_dump_dest:服务器进程相关的日志
db_block_size:块的大小
db_file_multiblock_read_count:一次可以读取多少个块,(貌似这个东西会跟条带化有点关系)
db_name:数据库名
db_recovery_file_dest:归档日志的目录
db_recovery_file_dest_size:归档日志目录可以使用的大小
db_writer_processes:(ps -ef |grep ora|grep dbw|grep -v grep)dbw进程的个数
job_queue_processes:作业的进程数
open_cursors:打开游标的个数
pga_aggregate_target:PGA的大小
processes:可以运行最多1500个进程
remote_login_passwordfile:远程登陆的时候是否需要密码文件的认证
sga_target:SGA的大小
undo_management:undo表空间管理的方式
undo_tablespace:使用的undo表空间
user_dump_dest:用户进程的日志目录
diagnostic_dest (11g):审计日志的目录
memory_target(11g):统一管理sga和pga的大小,设置了这个参数,sga和pga都不需要设置了


隐藏参数
相关的两个视图
SQL> desc x$ksppi
 Name                                                                                                              Null?    Type
 ----------------------------------------------------------------------------------------------------------------- -------- ----------------------------------------------------------------------------
 ADDR                                                                                                                       RAW(8)
 INDX                                                                                                                       NUMBER
 INST_ID                                                                                                                    NUMBER
 KSPPINM                                                                                                                    VARCHAR2(80)
 KSPPITY                                                                                                                    NUMBER
 KSPPDESC                                                                                                                   VARCHAR2(255)
 KSPPIFLG                                                                                                                   NUMBER
 KSPPILRMFLG                                                                                                                NUMBER
 KSPPIHASH   
ksppinm:隐藏参数名

SQL> desc x$ksppcv
 Name                                                                                                              Null?    Type
 ----------------------------------------------------------------------------------------------------------------- -------- ----------------------------------------------------------------------------
 ADDR                                                                                                                       RAW(8)
 INDX                                                                                                                       NUMBER
 INST_ID                                                                                                                    NUMBER
 KSPPSTVL                                                                                                                   VARCHAR2(512)
 KSPPSTDVL                                                                                                                  VARCHAR2(512)
 KSPPSTDF                                                                                                                   VARCHAR2(9)
 KSPPSTVF                                                                                                                   NUMBER
 KSPPSTCMNT  
ksppstvl:隐藏参数的值

查看隐藏参数
select ksppinm,ksppstvl from x$ksppi a,x$ksppcv b where a.indx=b.indx;



阅读(2270) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~