逻辑存储结构 (扩展)
物理存储结构(扩展)
表空间与数据文件
数据字典
数据库的主要功能是存储数据,存储数据的方式称为存储结构。
逻辑存储结构(灵魂):
用于描述ORACLE内部组织和管理数据的方式。
物理存储结构(肉体):
用于描述ORACLE在操作系统中的物理文件组成情况。
逻辑存储结构
定义:
是从逻辑的角度分析数据库的构成,是指的一种层次结构。
主要层次有:
表空间、段、数据区和数据块
1、数据块:(类似于一个座位)
逻辑存储结构中最小的逻辑单位,也是执行数据库输入输出操作的最小存储单位;
数据区(数据扩展区):(类似于一张桌子)
1)是由一组连续的ORACLE数据块所构成的ORACLE存储结构,一个或多个数据块组成一个数据区
2)数据区是ORACLE存储分配的最小单位,ORACLE进行存储空间的扩展时以区为基本单位
段: (类似于一个小组)
段是由一个或多个数据区构成的,是为特定的数据对象分配的一系列数据区
数据库通常有以下四种段:
数据段:保存表中数据
索引段:保存索引数据
回滚段:也叫撤销段,保存回滚数据。例如更新数据时,ORACLE会先将旧数据保存在回滚段中,提交时或回滚时删除
临时段:当执行创建索引、排序、分组、表连接、去重等操作时,暂时存储“解析过的数据”
表空间:(类似于一个班级)
1)数据库最大的逻辑划分区域,任何数据库对象的创建都必须被指定存储在某个表空间中。
2)一个用户可以将对象指定建立在多个表空间上,创建用户的同时一定会指定一个默认的数据表空间和一个默认的临时表空间
3)创建数据库(orcl)时会自动创建表空间,包括用于管理用户数据的表空间和管理ORACLE系统自身的表空间
4)几种默认创建的表空间
SYSTEM表空间:即系统表空间,存放ORACLE内部数据,例如系统内部表和数据字典数据,如表名、用户名、列名等,不赞成用于存储用户数据
SYSAUX表空间:SYSTEM表空间的辅助表空间,降低SYSTEM表空间的负荷
UNDO表空间:即撤销表空间,存储旧数据 --对应回滚段
USERS表空间:用户表空间,专门存放用户数据,如表、索引、序列等 --对应数据段和索引段
TEMP表空间:临时表空间,不同于撤销表空间,它存放的是解析数据 --对应临时段
5)建议单独创建并命名用户使用的表空间(每种系统或每种用途单独划分),并单独维护
6)表空间对应的物理结构是数据文件,一个表空间下可以有多个数据文件,但一个数据文件只属于一个表空间
物理存储结构
定义:
描述ORACLE数据在磁盘上的物理组成情况。换句话说,ORACLE数据在逻辑上存储在表空间,而在物理上存储在表空间所包含的物理文件中。
主要文件有:
数据文件、控制文件、重做日志文件、归档日志文件、参数文件、口令文件和警告日志文件等 warning error
1、数据文件:保存用户数据和ORACLE内部数据。对应数据字典:dba_data_files/dba_temp_files .dbf
2、控制文件:一个二进制文件,记录了数据库的物理结构信息,包括数据库名、数据文件与日志文件等的名字和位置,建库信息等。出于安全性考虑,ORACLE会在创建数据库时自动创建2到3个控制文件并记录相同的信息。 对应数据字典:v$controlfile
.ctl
3、日志文件:包括重做日志文件和归档日志文件。
重做日志:UNDO表空间内只能尽可能地存放撤销数据,但出于性能考虑不能一直存放,超过一定时间会将其写入到重做日志中,可以用于数据恢复,重做日志文件循环使用。对应数据字典:v
l
o
g
f
i
l
e
归
档
日
志
:
重
做
日
志
文
件
循
环
使
用
必
将
导
致
旧
日
志
被
覆
盖
,
为
了
保
留
这
部
分
日
志
,
重
做
日
志
被
覆
盖
前
会
写
进
归
档
日
志
,
由
归
档
日
志
永
久
保
留
。
出
于
性
能
考
虑
,
大
部
分
项
目
组
不
会
采
用
归
档
模
式
,
但
会
每
天
备
份
数
据
库
(
e
x
p
d
p
i
m
p
d
p
)
。
对
应
数
据
字
典
:
s
e
l
e
c
t
d
b
i
d
,
n
a
m
e
,
l
o
g
m
o
d
e
f
r
o
m
v
logfile 归档日志:重做日志文件循环使用必将导致旧日志被覆盖,为了保留这部分日志,重做日志被覆盖前会写进归档日志,由归档日志永久保留。出于性能考虑,大部分项目组不会采用归档模式,但会每天备份数据库(expdp impdp )。对应数据字典:select dbid,name,log_mode from v
logfile归档日志:重做日志文件循环使用必将导致旧日志被覆盖,为了保留这部分日志,重做日志被覆盖前会写进归档日志,由归档日志永久保留。出于性能考虑,大部分项目组不会采用归档模式,但会每天备份数据库(expdpimpdp)。对应数据字典:selectdbid,name,logmodefromvdatabase; --日志模式
4、服务器参数文件:记录数据库的基本参数,例如标准块大小、日志缓冲区大小、排序缓存大小、语言设置等 DBA
$oracle\product\11.2.0\dbhome_1\dbs\int.ora
5、密码文件:存放密码的文件 $oracle\product\11.2.0\dbhome_1\database
6、警告文件:存放报错信息
$oracle\admin\orcl\dpdump
7、跟踪文件:跟踪后台进程或用户运行的SQL的执行情况
表空间与数据文件的关系
重要!!!
1.一个表空间可以由多个数据文件构成,一个数据文件只归属于一个表空间
2.每个数据文件最多可以扩展到32G
3.一个表空间的容量与数据文件的大小以及数据文件的个数有着直接的关系,一个表空间的最大容量=每个数据文件大小之和。
表空间:XXX 5个数据文件 2个10g,3个20g。 80g/160=50%
User表空间
数据文件:User01 user 02
数据字典
定义:
是数据库自己维护的一组表,它是存放ORACLE内部信息的地方,描述数据库内部运行情况和管理情况。本质上是一张表,区别于平时使用的事实表,它仅存放关于数据库某项内部内容的信息
分类:
dba_ --管理员用户登录
user_ --对应用户登录
all_ --管理员或普通用户登录
数据字典动态视图:动态性能视图 v$ --管理员用户登录
select * from dba_users; --所有用户信息
select * from dba_tablespaces; --表空间信息
select * from dba_data_files; --数据文件信息
select * from dba_temp_files; --临时文件信息
select * from user_objects; --用户的对象信息
SELECT * FROM USER_TABLES; --当前用户下的所有表的信息
SELECT * FROM USER_TAB_COLS WHERE TABLE_NAME = ‘’; --表的列的信息
SELECT * FROM USER_TAB_COMMENTS WHERE TABLE_NAME = ‘’; --表注释
SELECT * FROM USER_COL_COMMENTS WHERE TABLE_NAME = ‘’; --列注释
SELECT * FROM USER_IND_COLUMNS; --查询用户的索引
SELECT * FROM USER_SEQUENCES; --查询序列
SELECT * FROM USER_VIEWS; --查询视图
SELECT * FROM USER_CONSTRAINTS; --约束信息
SELECT * FROM USER_CONS_COLUMNS; --约束覆盖字段信息