Oracle从零学起_表空间

概述

DATABASE–>TABLESPACES–>SEGMENTS–>EXENTS–>BLOCKS
学习oracle 的表空间系统表

什么是表空间

oarcle数据库真正存放数据的是数据文件(data files);
Oarcle表空间(tablespaces)实际上是一个逻辑的概念,他在物理上是并不存在的,那么把一组data files 捻在一起就成为一个表空间;
在ORACLE数据库中,所有数据从逻辑结构上看都是存放在表空间当中,当然表空间下还有段、区、块等逻辑结构;
从物理结构上看是放在数据文件中。一个表空间可由多个数据文件组成;

表空间属性
1、一个数据库可以包含多个表空间,一个表空间只能属于一个数据库
2、一个表空间包含多个数据文件,一个数据文件只能属于一个表空间
3、表这空间可以划分成更细的逻辑存储单元

基本的表空间
SYSTEM:  系统表表空间
SYSAUX: 索引表空间
USERS: 用户表空间
UNDOTBS1: 回滚表空间
EXAMPLE: 工具表空间
TEMP: 临时表空间

表空间的基本操作

建一个简单的表空间

SQL> create tablespace a datafile '/u01/app/oracle/oradata/stephen/stephen.dbf' size 10m;

Tablespace created.
//设置某一列的显示长度
col file_name format a50;

//查看数据文件和表空间的关系
SQL> select file_id,file_name,tablespace_name,AUTOEXTENSIBLE ,bytes/1024/1024 "size" from dba_data_files;

   FILE_ID FILE_NAME	TABLESPACE_NAME	AUT size
---------- -------------------------------------------------- ------------------------------ --- ----------
  4 /u01/app/oracle/oradata/stephen/users01.dbf	USERS	YES	5
  3 /u01/app/oracle/oradata/stephen/undotbs01.dbf UNDOTBS1	YES	75
  2 /u01/app/oracle/oradata/stephen/sysaux01.dbf SYSAUX	YES	500
  1 /u01/app/oracle/oradata/stephen/system01.dbf SYSTEM	YES	680
  5 /u01/app/oracle/oradata/stephen/stephen.dbf	A NO 10

查看表空间的剩余大小

SQL> select TABLESPACE_NAME,sum(bytes)/1024/1024 from dba_free_space group by tablespace_name;

TABLESPACE_NAME SUM(BYTES)/1024/1024
------------------------------ --------------------
SYSAUX	            	33.625
UNDOTBS1            	60.9375
USERS	                	3.6875
SYSTEM	        	    	9.9375
A                             9

增加表空间的几种方法

// 扩大表空间,第一种方法,手动改变已存在数据文件的大小
alter database datafile '/u01/app/oracle/oradata/stephen/stephen.dbf' resize 10m


// 扩大表空间,第二种方法,给表空间增加数据文件
alter tablespace a add datafile '/u01/app/oracle/oradata/stephen/stephen1.dbf' size 20m;


// 扩大表空间,第三种方法,允许已存在的数据文件自动增长
alter database datafile '/u01/app/oracle/oradata/stephen/stephen.dbf' autoextend on next 10m maxsize 500m


// 扩大表空间,第三种方法,增加数据文件并允许数据文件自动增长
alter tablespace a add datafile '/u01/app/oracle/oradata/stephen/stephen2.dbf' size 2m autoextend on next 10m maxsize 500m;

表空间相关的视图

–包含数据库中所有表空间的描述信息
SELECT * FROM DBA_TABLESPACES

–包含当前用户的表空间的描叙信息
SELECT * FROM USER_TABLESPACES

–包含从控制文件中获取的表空间名称和编号信息
SELECT * FROM V$TABLESPACE;

–包含数据文件以及所属的表空间的描述信息
SELECT * FROM DBA_DATA_FILES;

–包含临时数据文件以及所属的表空间的描述信息
SELECT * FROM DBA_TEMP_FILES;

–包含从控制文件中获取的数据文件的基本信息,包括它所属的表空间名称、编号等
SELECT * FROM V$DATAFILE;

–包含所有临时数据文件的基本信息
SELECT * FROM V$TEMPFILE;

dba_tablespaces

数据字典,静态视图

SQL> desc dba_tablespaces;
 Name	Null?	Type
 ----------------------------------------- -------- ----------------------------
 TABLESPACE_NAME	NOT NULL VARCHAR2(30)	#表空间名
 BLOCK_SIZE	NOT NULL NUMBER	#表空间块大小(以字节为单位)
 INITIAL_EXTENT NUMBER	#默认初始扩展区大小(以字节为单位)
 NEXT_EXTENT	NUMBER	#默认增量扩展区大小(以字节为单位)
 MIN_EXTENTS	NOT NULL NUMBER	#默认最小范围
 MAX_EXTENTS	NUMBER	#默认最大范围数
 MAX_SIZE	NUMBER	#区段的默认最大大小(以Oracle块为单位)
 PCT_INCREASE	NUMBER	#范围大小的默认增加百分比
 MIN_EXTLEN	NUMBER	# 该表空间的最小扩展区大小(以字节为单位)
 STATUS VARCHAR2(9)	# 表空间状态:ONLINE,OFFLINE,READ ONLY
 CONTENTS	VARCHAR2(9)	# 表空间内容:UNDO,PERMANENT,TEMPORARY
 LOGGING	VARCHAR2(9)	#默认日志记录属性:LOGGING,NOLOGGING
 FORCE_LOGGING	VARCHAR2(3)	# 指示表空间是否处于强制日志记录模式(YES)或(NO)
 EXTENT_MANAGEMENT	VARCHAR2(10)	#指示表空间中的扩展区是字典管理的(DICTIONARY)还是本地管理的(LOCAL)
 ALLOCATION_TYPE	VARCHAR2(9)	#对表空间有效的扩展区分配类型:SYSTEM,UNIFORM,USER
 PLUGGED_IN	VARCHAR2(3)	#指示表是否插好(YES)否(NO)
 SEGMENT_SPACE_MANAGEMENT	VARCHAR2(6)	#指示是否使用空闲列表(MANUAL)或位图(AUTO)管理表空间中的可用段空间和已用段空间
 DEF_TAB_COMPRESSION	VARCHAR2(8)	#表示默认表压缩是否启用(ENABLED)否(DISABLED)注意:启用默认表压缩表示除非另有指定,否则将在启用表压缩的情况下创建表空间中的所有表。
 RETENTION	VARCHAR2(11)	#GUARANTEE-表空间是一个撤消表空间,RETENTION指定为GUARANTEE;一个RETENTION的值GUARANTEE表示在撤销表空间的所有还原段是未到期的撤销应予以保留,即使这意味着要向前操作需要生成撤销在这些细分市场失败。  NOGUARANTEE-表空间是一个撤消表空间,RETENTION指定为NOGUARANTEE; NOT APPLY -表空间不是撤消表空间
 BIGFILE	VARCHAR2(3)    	#指示表空间是大文件表空间(YES)还是小文件表空间(NO)
 PREDICATE_EVALUATION	VARCHAR2(7)	#谓词是HOST由主机()还是由存储(STORAGE)评估
 ENCRYPTED	VARCHAR2(3)	#表空间是否已加密(YES| NO)
 COMPRESS_FOR	VARCHAR2(12)	#默认情况下要压缩的操作类型

v$tablespace

动态视图

SQL> desc v$tablespace
 Name	Null? Type
 ----------------------------------------- -------- ----------------------------
 TS#	NUMBER   #表空间号
 NAME	VARCHAR2(30)#表空间名称
 INCLUDED_IN_DATABASE_BACKUP	VARCHAR2(3)#指示是否使用BACKUP DATABASERMAN命令(YES)将表空间包含在完整数据库备份中NO;NO仅当CONFIGURE EXCLUDERMAN命令用于此表空间时
 BIGFILE	VARCHAR2(3)#指示表空间是大文件空间还是小文件空间
 FLASHBACK_ON	VARCHAR2(3)#指示表空间是否参与flashback database操作
 ENCRYPT_IN_BACKUP	VARCHAR2(3)#指示在表空间级别是打开还是关闭加密:ON -在表空间级别打开加密,OFF -在表空间级别关闭了加密,NULL-在表空间级别(默认值或清除时)均未明确打开或关闭加密
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值