本文主要是介绍Tablespace使用率告警及清理方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、名词解释
表空间(Tablespace):ORACLE数据库被划分成称作为表空间 [1] 的逻辑区域——形成ORACLE数据库的逻辑结构。一个ORACLE数据库能够有一个或多个表空间,而一个表空间则对应着一个或多个物理的数据库文件。表空间是ORACLE数据库恢复的最小单位,容纳着许多数据库实体,如表、视图、索引、聚簇、回退段和临时段等;表空间是一个虚拟的概念可以无限大,但是需要由数据文件作为载体;每个ORACLE数据库均有SYSTEM表空间。
段(Segment):段是指占用数据文件空间的通称,或数据库对象使用的空间的集合;段可以有表段、索引段、回滚段、临时段和高速缓存段等。
区间(Extent):分配给对象(如表)的任何连续块叫区间;区间也叫扩展,因为当它用完已经分配的区间后,再有新的记录插入就必须在分配新的区间(即扩展一些块);一旦区间分配给某个对象(表、索引及簇),则该区间就不能再分配给其它的对象。
Schema:元数据的一个抽象集合。
比较形象的说法:我们可以把Database看作是一个大仓库。仓库分了很多很多的房间,Schema就是其中的房间。一个Schema代表一个房间。Table可以看作是每个Schema中的床,Table(床)被放入每个房间中,不能放置在房间之外,那岂不是晚上睡觉无家可归了。然后床上可以放置很多物品,就好比 Table上可以放置很多列和行一样,数据库中存储数据的基本单元是Table。现实中每个仓库放置物品的基本单位就是床, User就是每个Schema的主人(所以Schema包含的是Object,而不是User),user和schema是一一对应的,每个user在没有特别指定下只能使用自己schema(房间)的东西。如果一个user想使用其他schema(房间)的东西,那就要看那个schema(房间)的user(主人)有没有给你这个权限了,或者看这个仓库的老大(DBA)有没有给你这个权限了。换句话说,如果你是某个仓库的主人,那么这个仓库的使用权和仓库中的所有东西都是你的(包括房间),你有完全的操作权,可以扔掉不用的东西从每个房间,也可以放置一些有用的东西到某一个房间,你还可以给每个User分配具体的权限,也就是他到某一个房间能做些什么,是只能看(Read-Only),还是可以像主人一样有所有的控制权(R/W),这个就要看这个User所对应的角色Role了。
2、表空间释放语句
select sum(a.BYTES)/1024/1024/1024 from dba_data_files a where a.TABLESPACE_NAME='xxx_'tablespace_name' | 查询表空间大小 |
select sum(a.BYTES)/1024/1024/1024 from dba_free_space a where a.TABLESPACE_NAME='xxx_'tablespace_name' | 查询空闲表空间大小 |
truncate table xxx_table_name drop storage | 清除表中数据释放表空间 |
这篇关于Tablespace使用率告警及清理方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!