Oracle存储概述

一个表空间可以包含多个segments,也可以包含多个datafiles;

segments 和datafiles之间没有直接的关系;

数据文件可以保持在服务器的文件系统里面也可以保持在ASM设备中;

 

Oracle将一个 segment存储在多个数据文件中,一个数据文件包含多个segments的各个部分,而避免使用一个segment对应一个数据文件的方法,这样可以解决2个问题:

1、避免系统中出现成百上千个表或索引文件,增加了系统管理员的负担;

2、可以避免文件最大容量对单个segment的限制;

 

常见的segment有以下几种形式:table,index,undo segments

而PL/SQL procedures,views,sequences不是segments,他们不包含数据,存在于数据字典中;

 

对于Oracle数据库来说,基本单位是oracleblocks, 默认值为8K

同一个block当中可以存许多行记录;

在linux和windows系统上block size可以在2K-16K之间,而在其他一些系统上,可以为32K,受DB_BLOCK_SIZE初始化参数决定;这个参数在数据库创建后不能修改,它是组成SYSTEM表空间的block大小;

 

多个block可以组成一个extents

 

FAT格式的文件系统支持的最大文件为4G,每个目录中最多有512个文件

operating system block : 512B for NTFS, 1KB for ext3;

 

通过DBA_SEGMENTS可以查看到系统内所有的segments;

--查询系统中segments的情况

select * fromdba_segments;

select segment_type,count(1) from dba_segments

group by segment_typeorder by segment_type;

 

 

TABLE:表的存储形式可以有多种,最常见的是heap-structured tables

INDEX:

TYPE2 UNDO:就是undo类型数据

ROLLBACK:这种类型从9i以后就很少使用,应该使用automaticundo management;

TABLE PARTITION:一个表可以被分为多个partitions, 单个的partition可可以作为一种segments存在;

LOBSEGMENT, LOBINDEX, LOB PARTITION:如果一个列被定义为largeobject data type,那么在这个表中的列只存在这个大类型的一个指针,指向大类型数据的实际存储位置;

CLUSTER:A cluster is a segment that can contain several tables;它和partitioning的作用刚好相反,clustering lets you denormalize many tablesinto one segment;

NESTED TABLE:嵌套表

 

--确认某个segments所在位置的详细信息

select * fromdba_extents where owner='SJ' and segment_name='T';

--给表增加一个新的extent;

alter table Tallocate extent;

--确定某个segment所在的物理数据文件;

selecttablespace_name,file_name from dba_data_files where file_id=5;

--可以通过下面这个命令强制指定extent分配到具体哪个数据文件中;

altertable tablename allocate extent storage (datafile 'filename');

 

你可以通过查询DBA_TABLES来确定某个表在哪个表空间中,但是这个方法对partitioned tables不起作用,each partition is its own segment and can be in a differenttablespace.

partitioninglets one table(stored as multiple segments) span tablespaces;

 

文件存储技术

1、存储在local file system

2、存储在clustered file system:在RAC环境中使用的就是clustered file system.  Oracle 公司的OCFS

3、存储在raw devices

4、存储在ASM devices:ASM is a logical volume manager designed for Oracle database files.

       ASM可以管理的文件包括:controlfile, online redo log files,  datafiles, backup files,  archived redo logfiles,  Data Pump files

       ASM不可以管理的文件包括: Oralce Home, the alert log and the trace files;

 

确定三大文件信息的sql语句

--确定控制文件的信息

select name,block_size*file_size_blks bytes from v$controlfile;

--确定联机重做日志文件的信息

select member,bytesfrom v$log join v$logfile using (group#);

--确定数据文件和临时文件的信息

select name, bytesfrom v$datafile

union all

select name,bytesfrom v$tempfile;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值