一、数据库的物理结构
:
1.数据文件(data file)
每个数据库有一个或多个数据文件,数据文件包含了全部数据库的数据。逻辑数据库结构(如表、索引、数据字典)都存储在数据文件中。在存取数据时,Oracle先从数据文件中读取数据到内存的数据缓冲区中,这样的存取方式减少了磁盘I/O操作,提高了相应性能。数据文件一旦建立后就不能改变大小,只能增加。
数据文件系统机制包括:
①
“
Cooked
”
操作系统(OS)文件系统
②原始分区(raw partitions)
③自动存储系统(Automatic Storage Management,ASM)
④集群文件系统(RAC)
本地管理的表空间:
8.1.5版本之后使用
本地管理表空间(local-managed tablespace),他的优点是:无需数据字典,仅对每个数据文件中存储的一个位图来管理区段。目前版本已无法建立dictionary tablespace
2.控制文件(control file)
控制文件是一个很小的二进制文件,用于描述数据库的物理结构。包括:①数据库名;②数据库数据文件和日志文件的名字和位置;③数据库建立日期。
一般在安装Oracle时自动创建,其存放位置由参数文件SPFILEsid.ora的CONTROL_FILES参数值来确定。数据库在使用的过程中会不断更新控制文件。如果该文件损坏,则数据库将无法正常工作。
Oracle10g默认安装了3个控制文件,每个文件内容相同,当某个文件损坏时,Oracle会自动使用另一个,以确保数据库正常运行。
可查询
V$CONTROLFILE
来获得控制文件信息。
3.重做日志文件(redo log file)
重做日志文件用于记录对数据库的修改信息,包括数据的修改以及数据库结构的修改。查询信息不会被记录在日志中。为了防止日志文件本身的故障,ORACLE允许镜象日志(mirrored redo log),以致可在不同磁盘上维护两个或多个日志副本。日志文件中的信息仅在系统故障或介质故障恢复数据库时使用,这些故障阻止将数据库数据写入到数据库的数据文件。然而任何丢失的数据在下一次数据库打开时,ORACLE自动地应用日志文件中的信息来恢复数据库数据文件。
日志工作过程中,多个日志是循环使用的,即一个日志文件组被填满后,系统自动转换到另一个日志文件组。当所有日志文件组都被填满后,系统会将日志信息写入到第一个日志组中,这时有两个模式:归档模式(Archivelog)和非归档模式(NoArchivelog),当运行在归档模式时,系统将启用ARCH进程将要被覆盖的日志保存到磁盘上形成归档日志。若使用非归档模式,则会覆盖被写入的文档。
查询数据库的日志组情况:
select
group#,bytes,members,status
from
v$log;
查询数据库的日志归档模式:
select
log_mode
from
v_database;
4.临时文件(temp file)
Oracle
的临时文件用来存储大规模排序和散列操作的中间结果。如果
RMAN
中没有足够的空间,还会用临时文件存储全局临时表数据,或者结果集数据。
注意:
1.
永久表和索引等不会存储在临时文件中,但是临时表及其索引的内容要存储在临时文件。
2.
临时文件不生成
redo log
,无法重做
3.
不需要备份临时数据文件,因为无法恢复
5.密码文件(password file)
密码文件是一个可选文件,允许远程
SYSDBA
或管理员访问数据库。具体操作比较复杂。
二、实例的物理结构
:
1.参数文件(parameter file)
参数文件记录了
Oracle
数据库的基本参数信息,主要包括:数据库名、控制文件路径、进程等。
以前的参数文件名为
init.ora
,所以又叫
init
文件,但是在
Oracle10g
中,参数文件名为
SPFILEsid.ora
,其参数由
Oracle
系统自动管理。
SPFILE
的改进主要消除了参数文件的两个严重问题:
1.
由于只能放在数据库服务器上,不能放在客户机上,所以杜绝参数文件的繁衍。
2.
可使用
ALTER SYSTEM
命令直接写入参数值,无需使用编辑器进行编辑。
(
用户最好不要用编辑器进行修改
)
注:取消参数设置:
alter
system
reset
sort_area_size
scope
=
spfile
sid=
'*'
2.跟踪文件(trace file)
跟踪文件能够提供调试信息,需要设置参数
SQL_TRACE=TRUE
数据库的测量性可以使用以下方法:
1.V$
动态视图:例如
V$WAITSTAT
、
V$SESSION_EVENT
等,均可反映系统动作
2.
审计命令:例如
DBMS_FGA
等,可对某个表进行颗粒审计检测
3.
资源管理器:
DBMS_RESOURCE_MANAGER
,对数据库资源
(CPU
、
I/O
等
)
实现微管理
4.Oracle
事件:跟踪诊断,在之前文章中已经详细介绍过
5.DBMS_TRACE
:
PL/SQL
引擎中的工具,全面记录调用树、产生的异常、遇到的错误等
6.
触发器:不用介绍了
7.SQL_TRACE
:即
10046
事件
3.警告文件(alert file)
警告文件就是数据库的日记,是一个简单的文本文件。记载了从数据库创建到完结之间的所有包括日志开关、内部错误、表空间创建、离线及恢复等等的所有操作信息。
三、其他物理结构:
1.修改跟踪文件(change tracking file)
修改跟踪文件是
Oracle10g
新增的一个可选文件,唯一的目的是跟踪上一个增量备份以来那些块已经修改。这样
RMAN
就只需要备份发生变化的块,而不必读取整个数据库。如果打开跟踪功能,数据库的任何改变都会被自动写入到这个文件中。但是这回消耗系统的资源。
可使用以下命令打开:
alter
database
enable
block
change
tracking;
2.闪回日志文件(flashback log file)
这也是
Oracle10g
的新增功能。引入
Flash Back
命令是为了加快原来很慢的时间点数据库恢复
(point in time database recovery)
过程。具体内容参考详细资料。
3.转储文件(dump/DMP file)
使用导出工具创建的独立的
DMP
文件,其中包括了所有必要的元数据
(create
和
alter
语句形式
)
,可能还有数据本身,可以用于重新创建表、模式、甚至整个数据库。而导入工具的作用就是读取这些
DMP
文件,执行其
DDL
语句,并加载其数据。
4.数据泵文件(Data Pump file)
主要是被外部表和新的导入、导出工具
(IMPDP/EXPDP)
使用。只有
10g
之后的版本有这种功能。
5.平面文件(flat file)
平面文件就是一些没有格式的数据记录文件。
-The End-