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;
阅读(2366) | 评论(0) | 转发(0) |