raksmart美国服务器为您介绍oracle之参数文件:
参数文件的含义
参数文件的作用:
设定数据库的限制、设定用户或者进程的限制、设定数据库资源的限制、调整系统的性能
数据库通过读取参数文件,分配内存空间,启动后台进程,启动到nomount状态。推荐文章:《ogg的安装与配置》
一.两种参数文件的区别
1.pfile —->init.ora
文本
能被编辑器修改
能放在oracle客户端也能放在oracle服务器端
不能被rman备份
2.spfile
二进制文件
修改方式:alter system/session set parameter_name=values<>;
只能放在oracle服务器端
能被rman备份
二.oracle启动时要打开参数文件,优先级如下:
spfile.ora>spfile.ora>init.ora
三.参数文件的位置:
spfile:$ORACLE_HOME/dbs/spfile$ORACLE_SID.ora
pfile::$ORACLE_HOME/dbs/init$ORACLE_SID.ora
四.指定参数文件启动
startup pfile=’/u01/oracle /10g/dbs/initorcl.ora’
可以通过 show parameter spfile 查看当前数据用了那种spfile文件推荐文章:《oracle 11g 表空间加密》
五.两种参数文件的复制:
create pfile/spfile=”…” from spflie/pfile=”…”
(路径可写可不写,不写为默认路径)
11g|:create spfile=”…” from memory
六.spfile参数文件的修改
alter system/session set parameter_name=values scope=memory|spfile|both;
scope中的memory表示修改的参数只在当前都生效,下次启动实例无效
spfile表示当前不生效,参数文件生效,所以下次启动才生效
both表示当前和spfile参数文件都生效(默认)
系统中总共存在三种状态的参数:
immediate 动态参数 alter system set parameter_name=values scope=memory|spfile|both;
false 静态参数 alter system set parameter_name=values scope=spfile;
deferred 会话参数 alter session set parameter_name=values scope=memory|spfile|both;
七.显示参数
show parameter 参数名;
select name,value from v$parameter;(所有参数)
select sid,name,value from v$spparameter where value is not null;(spfile中定义的参数)
八.隐藏参数文件(不建议使用)
隐藏参数 (hidden parameters) ,由oracle内部使用,以 ‘_’ 开头。
隐藏参数是oracle官方不推荐用户使用的参数,官方文档对这些参数介绍也不多,若是隐藏参数没有正确使用会导致严重的后果。
但是有时候我们遇到了一些问题,这些隐藏参数却又能达到意想不到的效果。推荐文章:《Oracle传输表空间》
比如:当我们在做恢复时,备份有问题,只能将数据库恢复到不一致状态,这时可以借助某个隐藏参数,让oracle跳过一致性检查打开从而数据库。
查看方式:
SELECT i.ksppinm name,
i.ksppdesc description,
CV.ksppstvl VALUE,
CV.ksppstdf isdefault,
DECODE(BITAND(CV.ksppstvf, 7),
1,
‘MODIFIED’,
4,
‘SYSTEM_MOD’,
‘FALSE’) ismodified,
DECODE(BITAND(CV.ksppstvf, 2), 2, ‘TRUE’, ‘FALSE’) isadjusted
FROM sys.x$ksppi i, sys.x$ksppcv CV
WHERE i.inst_id = USERENV(‘Instance’)
AND CV.inst_id = USERENV(‘Instance’)
AND i.indx = CV.indx
AND i.ksppinm LIKE ‘/_%’ ESCAPE ‘/’
ORDER BY REPLACE(i.ksppinm, ‘_’, ”);
或者
SELECT ksppinm, ksppstvl, ksppdesc
FROM x$ksppi x, x$ksppcv y
WHERE x.indx = y.indx
AND TRANSLATE(ksppinm, ‘_’, ‘#’) LIKE ‘#%’;

作者 admin

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注