文件类型
本节重点讨论如下文件
与Instance相关的文件:
Parameter File
Trace File
Alert File
与Database相关的文件:
Data File
Temp File
Control File
Redo log file
Password File
快速备份与恢复相关的文件:
Change-tracking File
Flashback log File
Dump File
Data Dump File
Flat File
Parameter File
主要讨论init.ora 和 spfile.ora
参数文件名: init<ORACLE_SID>.ora 和 spfile<ORACLE_SID>.ora
注:SID site identifier, 它是非常重要的一个标识符,作用是SID会和ORACLE_HOME组合成一个hash值(一个ORACLE HOME下可以创建多个DATABASE,但每个SID必须唯一),来唯一标识SGA。如果SID或者ORACLE_HOME设置有误的话,ORACLE会无法启动,得到一个ORACLE NOT AVAILABLE错误。
如何查看当前Instance的参数设置
方法1. 用 SHOW PARAMETER 命令
show parameter db_block_size
show parameter 参数名
参数名可以是前半部分,因为Oracle会自动加通配符%到参数名的后面,所以 参数名=%参数%。
show parameter db_block_s 等价于 show parameter db_block_size
方法2. 通过视图 V$PARAMETER
SQL> select value
2 from v$parameter
3 where name = 'db_block_size';
方法3. dbms_utility.get_parameter_value
当你的权限不够时,方法1和2无法访问,那么可以使用dbms_utility.get_parameter_value 这个API函数。但是该函数无法查看与内存相关的参数,如sga_max_size, db_cache_size, pga_aggregate_target等等。
先来创建一个PLSQL帮助函数
create or replace
function get_param(p_name in varchar2) return varchar2 as
l_param_type number;
l_intval binary_integer;
l_strval varchar2(256);
invalid_parameter exception;
pragma exception_init(invalid_parameter, -20000);
begin
begin
l_param_type := dbms_utility.get_parameter_value(parnam => p_name,
intval => l_intval,
strval => l_strval);
exception
when invalid_parameter then
return '*access denied*';
end;
if (l_param_type = 0) then
l_strval := to_char(l_intval);
end if;
return l_strval;
end get_param;
/
然后来查看参数值
exec dbms_output.put_line( get_param( 'db_block_size' ) );
如果其他账户被授予该函数的exec权限,可以通过该函数查看不可见的参数。
select name, scott.get_param( name ) val
from v$parameter
where scott.get_param( name ) = '*access denied*';
废弃的参数
Oracle中以下划线开头的参数是废弃的,通常在文档中找不到,也不应该使用。
特列,在开发环境中倒是可以设置这个过时参数
_TRACE_FILES_PUBLIC = TRUE
该参数可以让所有人都可以访问tracefile,利于debug。当然,在生产环境中,该参数必须去除。
修改参数值并让该参数生效,init.ora必须手动修改,并且重启instance。但是spfile.ora可以用命令来完成,不需要重启。
init.ora
简单介绍init.ora,该访问已经过时。
spfile.ora