-------------------------------逻辑结构------------------------------------
参考文档:12章
tablespace 表空间 最大存储单位 建立对象指定存储在那个表空间
Segment 段: 可以存储数据 表段(建立表xs 一定建议个段xs段)
Extent 区 :空间分配单位 (至少对象一个区)
Oracle data block 数据库块 最小i/0单位
连续的数据块就组成区 存储同一类型的数据区域成为一个段 一个段只在一个表空间里 一个表空间只能在一个数据库里
例如:我建立一个表xs (id number ,name char(10) ) 指定表空间为users 插入1条数据
create table scott.xs (id number ,name char(10)) tablespace users ;
insert into scott.xs values(1,‘tom‘);
commit;
会在users表空间分配空间给xs段 插入的数据
分配了多大的空间给xs段,如果我继续插入数据,段会满 ,继续以Extent单位分配空间
select SEGMENT_NAME,SEGMENT_TYPE, TABLESPACE_NAME,EXTENT_ID, BLOCKS
from dba_extents
where OWNER =‘SCOTT‘ and SEGMENT_NAME=‘XS‘ ;
段名xs
是一个表段
使用空间是users
EXTENT_ID 第一个区是0 (编号从0开始)
blocks 占用8个块
一个块大小多少?
SQL> show parameter db_block_size
总结:我建立一个段xs 使用的uses表空间,分配1个区 占有8个块 总大小64K
继续插入,如果数据量大于64K 数据库怎么办?
insert into scott.xs select * from scott.xs ;
SQL> select SEGMENT_NAME,SEGMENT_TYPE, TABLESPACE_NAME,EXTENT_ID, BLOCKS
from dba_extents
where OWNER =‘SCOTT‘ and SEGMENT_NAME=‘XS‘ ;
区是连续的数据块
BLOCK_ID 起始编号
select SEGMENT_NAME,SEGMENT_TYPE, TABLESPACE_NAME,EXTENT_ID, BLOCK_ID,BLOCKS
from dba_extents
where OWNER =‘SCOTT‘ and SEGMENT_NAME=‘XS‘ ;
Tablespaces and Data Files 表空间和数据文件之间的关系
表空间分为 大文件表空间:一个表空间只能有1个数据文件 支持到128T (?)
小文件表空间(默认) :一个表空间里面可以有多个数据文件
建库的时候默认强制建立system 和sysaux
system必须在线,存储是核心功能(数据字典)
sysaux 存储em的信息
system sysaux 不建议存储用户数据
总结:
1 oracle server =instance +database
2 instance =meomoy +process
3 物理结构
4 逻辑结构
oracle进阶笔记-管理员1-数据库逻辑结构