2.1 物理结构
数据文件、控制文件、重做日志文件
2.1.1 数据文件
dbf文件
desc dba_data_files
2.2.2 控制文件
二进制文件
select * from v$controlfile;
2.1.3 重做日志文件
select *from v$log;
2.1.4 其他文件
参数文件——备份文件——归档日志文件——警告、跟踪日志文件
2.2 逻辑存储结构
数据库——表空间——段——区——数据块
2.2.1 表空间tablespace
select * from dba_tablespaces;
系统自动创建6个表空间:
system:系统表空间,用于存储系统的数据字典、系统的管理信息和用户数据表等。
sysaux:辅助系统表空间,用于减少系统表空间的负荷,提高系统的作业效率。
undotbs1:撤销表空间,用于在自动撤销管理方式下存储撤销信息。
temp:临时表空间,用于存储临时数据,如存储排序时产生的临时数据。
users:用户表空间,用于存放永久性用户对象和私有信息。
example:实例表空间,用于存放实例数据库的模式对象信息等。
2.2.2 段segment
一个段只属于一个特定的数据库对象。
数据段:用于存储表中的数据。
索引段:用于存储表中的所有索引信息。
临时段:用于存储临时数据。
LOB段:用于存储表中的大型数据对象,CLOB和BLOB。
回退段:用于存储用户数据被修改之前的值。
2.2.3 区extent
磁盘空间分配的最小单位,由一个或多个数据块组成。
2.2.4 块block
管理存储空间的最基本单位,最小的逻辑存储单位。
结构:块头部——表目录——行目录——空闲空间——行空间
块头部:包含数据块中一般的属性信息,如数据块的物理地址、所属段的类型等。
表目录:表的信息
行目录:用来存储数据块中有效的行信息
空闲空间:还未使用的存储空间
行空间:数据存储在行空间中,已使用的存储空间
2.3 oracle数据库的实例结构
oracle进程结构——oracle内存结构
2.3.1 oracle进程结构
DBWn进程——LGWR进程——SMON进程——PMON进程——ARCn进程——RECO进程
LCKn进程——Dnnn进程——SNPn进程
2.3.2 oracle内存结构
SGA——PGA——排序区——大型池——java池
2.4 数据字典
oracle数据字典主要由user视图、all视图、dba视图、v$视图和GV$视图组成。
2.4.1 基本数据字典
select * from dba_tables;
select *from dba_tab_columns;
select *from dba_views;
select *from dba_synonyms;
select *from dba_sequences;
select *from dba_constraints;
select *from dba_indexes;
select *from dba_ind_columns;
select *from dba_triggers;
select *from dba_sources;
select *from dba_segments;
select *from dba_extents;
select *from dba_objects;
select *from cat;
select *from tab;
select * from dict;
2.4.2 与数据库组件相关的数据字典
数据库:
select * from v$datafile;
表空间:
select * from dba_tablespaces;
select * from dba_free_space;
控制文件:
select * from v$controlfile;
select * from v$controlfile_record_section;
select * from v$parameter;
数据文件:
select * from dba_data_files;
select * from v$filestat;
select * from v$datafile_header;
段:
select * from dba_segments;
区:
select * from dba_extents;
归档:
select * from v$archived_log;
select *from v$archive_dest;
实例:
select * from v$instance;
select *from v$system_paramter;
内存结构:
select * from v$sga;
select * from v$sgastat;
select * from db_object_cache;
select * from v$sql;
select * from v$sqltext;
select * from v$sqlarea;
后台进程:
select * from v$bgprocess;
select * form v$session;
2.4.3 常用动态性能视图
select * from v$fixed_table;--显示当前发行的固定对象的说明
select * from v$instance;
select * from v$latch;
select * from v$librarycache;--显示有关库缓存性能的统计信息
select * from v$rollstat;--显示联机的回滚段的名字
select * from v$rowcache;--显示活动数据字典的统计
select * from v$sga;
select * from v$sgastat;
select * from v$sort_usage;--显示临时段的大小及会话
select * from v$sqlarea;--显示sql区的sql信息
select *from v$sqltext;--显示在sga中属于共享游标的sql语句内容
select * from v$stsstat;--显示基本的实例统计信息
select * from v$system_event;
select * from v$waitstat;--显示块竞争统计数据
2.5 实践案例:查询表中字段的信息
2.6 动手练一练