基础知识5——表空间和数据文件

表空间和数据文件
逻辑上数据存储在段(一般是表)中,物理上讲,数据存储在数据文件(datafile)中.
表空间是二者的抽象,一个表空间可能包含多个段,并由多个数据文件组成,段和数据文件没有直接关系.数据文件可以作为文件 系统中的文件存在,10g开始也可以作为自动存储管理(automatic storage management ASM)设备上的文件而存在.

虚线表示段和数据文件的多对多关系,应避免这种情况存在.

典型的段是表一个段可以仅存在于一个表空间中.

oracle块是数据库的基本I/O单元,数据文件设置为连续编号的oracle块.对于表空间来说,oracle块大小固定不变,默认8KB

多个块组成了区间extent,区间是一个数据文件中一组连续编号的oracle块.

一定要避免操作系统块大小超过oracle块大小!

数据存储在段中,视图DBA_SEGMENTS描述数据库中每个段:

select segment_type,count(1) from dba_segments group by segment_type order by segment_type

SEGMENT_TYPE    COUNT(1)
----------------------------------------
CLUSTER    10
INDEX    1698
INDEX PARTITION    276
LOB PARTITION    1
LOBINDEX    551
LOBSEGMENT    551
NESTED TABLE    11
ROLLBACK    1
TABLE    1332
TABLE PARTITION    128
TYPE2 UNDO    10


TABLE   包含数据行的堆结构表,典型的段是表,但不能说表就是段,还有更复杂的表组织使用其他段类型.
INDEX   索引是键值的有序列表,相应的指针rowid指向每行的物理位置,rowid指定行位于哪个数据文件的哪个oracle块中,并指定行在块中的编号
TYPE2 UNDO  撤销段,存储数据的更改前版本,为了提供完整性(回滚,读取一致性和隔离),这些是必须的.
ROLLBACK    9i开始,引入了基于撤销段的自动撤销管理,总有一个回滚段保护用于创建数据库的事务
TABLE PARTITION 可将表分成多个区,可将一个表分不到多个表空间中.
INDEX PARTITION 默认是一个索引在一个段中,但也可对索引进行分区,如果对表进行分区,通常也会对这些表上的索引进行分区.
LOBSEGMENT LOBINDEX LOB PARTITION   如果将列定义为大对象数据类型,那么仅在表本身存储一个指针,指向列数据实际所在的不同段中的条目,
LOB可以拥有在此基础上构建的索引以便快速访问对象中的数据,也可以对LOB进行分区.
CLUSTER cluster段包含多个表,分区将一个表分布在多个段中,而cluster相反,允许将多个表反规范化(denormalize)为一个段.
NESTED TABLE    如果一个表列定义为本身就具有的列用户定义的对象类型,那么列可以作为嵌套表,存储在自身的段中.


每个段都有一个或多个区间,创建段时oracle将在指定的任何表空间中为其分配区间,最后随着数据的输入,区间被填满.此后 oracle将在同一表空间(不一定在同一个数据文件中)分配第二个区间.

一个区间由一组连续编号的块组成.

文件存储技术
数据文件可保存在四类设备上:本地文件系统,群集文件系统,原始设备和ASM磁盘组.

本地文件系统上的文件:最简单的数据文件,磁盘目录结构的普通操作系统文件.
群集文件系统上的文件:群集文件系统是外部磁盘,同时安装在多个计算机上.群集文件系统调停群集中所有计算机上运行的进程到磁盘的访问. 使用群集文件系统是一种RAC实现方法:数据库必须位于要打开它的所有实例可以访问的磁盘上. oracle公司的OCFS(oracle clustered file system oracle群集文件系统)是个好选择,OCFS最先为没有适当群集文件系统的linux和windows编写,10g被迁移到其它所有主流 操作系统上.
原始设备上的文件:还可能在根本没有文件系统的磁盘上创建数据文件.
ASM设备上的文件:ASM是10g引入的功能,是文件系统的替代品,基于数据文件存储.

有人认为原始设备性能最好,在现代磁盘和文件系统技术前,此观点无法立足,而且难以管理,会被淘汰.

ASM:oracle提供的逻辑卷管理器,与数据库绑定在一起,通常的做法是购买一组原始磁盘,将磁盘交给oracle,让oracle处理,系统管理员 根本不需要考虑如何创建文件系统.ASM只能存储数据库文件,不能存储二进制文件,始终必须将oracle主目录保存在常规文件系统上.



练习,看看数据库的物理结构

控制文件的名称和大小
select name,block_size*file_size_blks bytes from v$controlfile

NAME    BYTES

-------------------------------------------------------------------------------------------------------
D:\ORACLE\PRODUCT\10.2.0\ORADATA\BOB\CONTROL01.CTL    7340032
D:\ORACLE\PRODUCT\10.2.0\ORADATA\BOB\CONTROL02.CTL    7340032
D:\ORACLE\PRODUCT\10.2.0\ORADATA\BOB\CONTROL03.CTL    7340032
D:\ORACLE\PRODUCT\10.2.0\ORADATA\BOB\CONTROL04.CTL    7340032

确定联机重做日志文件成员名称,大小:
select member,bytes from v$log join v$logfile using (group#);

MEMBER    BYTES
----------------------------------------------------------------------------------------------------
D:\ORACLE\PRODUCT\10.2.0\ORADATA\BOB\REDO03.LOG    52428800

D:\ORACLE\PRODUCT\10.2.0\ORADATA\BOB\REDO02.LOG    52428800
D:\ORACLE\PRODUCT\10.2.0\ORADATA\BOB\REDO01.LOG    52428800
D:\ORACLE\PRODUCT\10.2.0\ORADATA\BOB\REDO01A.LOG    52428800
D:\ORACLE\PRODUCT\10.2.0\ORADATA\BOB\REDO02A.LOG    52428800
D:\ORACLE\PRODUCT\10.2.0\ORADATA\BOB\REDO03A.LOG    52428800


确定数据文件和临时文件的名称,大小:

select name,bytes from v$datafile
union all
select name,bytes from v$tempfile

NAME    BYTES
----------------------------------------------------------------------------------------------------------
D:\ORACLE\PRODUCT\10.2.0\ORADATA\BOB\SYSTEM01.DBF    503316480
D:\ORACLE\PRODUCT\10.2.0\ORADATA\BOB\UNDOTBS01.DBF    36700160
D:\ORACLE\PRODUCT\10.2.0\ORADATA\BOB\SYSAUX01.DBF    272629760
D:\ORACLE\PRODUCT\10.2.0\ORADATA\BOB\USERS01.DBF    5242880
D:\ORACLE\PRODUCT\10.2.0\ORADATA\BOB\EXAMPLE01.DBF    104857600
D:\ORACLE\PRODUCT\10.2.0\ORADATA\BOB\BOBTEST.DBF    1048576
D:\ORACLE\PRODUCT\10.2.0\ORADATA\BOB\TEMP01.DBF    20971520
















来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25025926/viewspace-1067848/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/25025926/viewspace-1067848/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值