如何查看Oracle数据库表空间大小(空闲、已使用),是否要增加表空间的数据文件

简介:

要查看Oracle数据库表空间大小,是否需要增加表空间的数据文件,在数据库管理中,磁盘空间不足是DBA都会遇到的问题,问题比较常见。


--1、查看表空间已经使用的百分比

Sql代码  

1
2
3
4
5
select   a.tablespace_name,a.bytes / 1024 / 1024  "Sum MB" ,(a.bytes - b.bytes) / 1024 / 1024    "used MB" ,b.bytes / 1024 / 1024  "free MB" , round (((a.bytes - b.bytes) / a.bytes) * 100 , 2 "percent_used"   from  
(select tablespace_name, sum (bytes) bytes  from  dba_data_files group by tablespace_name)   a,  
(select tablespace_name, sum (bytes) bytes, max (bytes) largest  from  dba_free_space group by tablespace_name)   b  
where   a.tablespace_name = b.tablespace_name  
order   by   ((a.bytes - b.bytes) / a.bytes)   desc

 “Sum MB”表示表空间所有的数据文件总共在操作系统占用磁盘空间的大小


比如:test表空间有2个数据文件,datafile1为300MB,datafile2为400MB,那么test表空间的“Sum MB”就是700MB
“userd MB”表示表空间已经使用了多少
“free MB”表示表空间剩余多少
“percent_user”表示已经使用的百分比

 

--2、比如从1中查看到MLOG_NORM_SPACE表空间已使用百分比达到90%以上,可以查看该表空间总共有几个数据文件,每个数据文件是否自动扩展,可以自动扩展的最大值。

Sql代码  

1
2
select   file_name,tablespace_name,bytes / 1024 / 1024  "bytes MB" ,maxbytes / 1024 / 1024  "maxbytes MB"    from    dba_data_files  
where tablespace_name = 'MLOG_NORM_SPACE' ;

 

--2.1、 查看 xxx 表空间是否为自动扩展 

Sql代码  

1
select file_id,file_name,tablespace_name,autoextensible,increment_by  from  dba_data_files order by file_id desc;



 

--3、比如MLOG_NORM_SPACE表空间目前的大小为19GB,但最大每个数据文件只能为20GB,数据文件快要写满,可以增加表空间的数据文件
用操作系统UNIX、Linux中的df   -g命令(查看下可以使用的磁盘空间大小)
获取创建表空间的语句: 

Sql代码  

1
select   dbms_metadata.get_ddl( 'TABLESPACE' , 'MLOG_NORM_SPACE' )    from    dual;



 

--4确认磁盘空间足够,增加一个数据文件

Sql代码  

1
alter   tablespace   MLOG_NORM_SPACE  add   datafile    '/oracle/oms/oradata/mlog/Mlog_Norm_data001.dbf'   size    10M    autoextend   on   maxsize    20G


 

--5验证已经增加的数据文件

Sql代码  

1
select   file_name,file_id,tablespace_name    from    dba_data_files  where   tablespace_name = 'MLOG_NORM_SPACE'

 

--6如果删除表空间数据文件,如下:

Sql代码  

1
alter   tablespace   MLOG_NORM_SPACE  drop  datafile  '/oracle/oms/oradata/mlog/Mlog_Norm_data001.dbf'

 


本文转自pizibaidu 51CTO博客,原文链接:http://blog.51cto.com/pizibaidu/1679749,如需转载请自行联系原作者

相关文章
|
23天前
|
SQL 运维 Oracle
【迁移秘籍揭晓】ADB如何助你一臂之力,轻松玩转Oracle至ADB的数据大转移?
【8月更文挑战第27天】ADB(Autonomous Database)是由甲骨文公司推出的自动化的数据库服务,它极大简化了数据库的运维工作。在从传统Oracle数据库升级至ADB的过程中,数据迁移至关重要。
36 0
|
1天前
|
Oracle 关系型数据库 数据库
数据库数据恢复—Oracle数据库文件出现坏块的数据恢复案例
打开oracle数据库报错“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。 数据库没有备份,无法通过备份去恢复数据库。用户方联系北亚企安数据恢复中心并提供Oracle_Home目录中的所有文件,急需恢复zxfg用户下的数据。 出现“system01.dbf需要更多的恢复来保持一致性”这个报错的原因可能是控制文件损坏、数据文件损坏,数据文件与控制文件的SCN不一致等。数据库恢复工程师对数据库文件进一步检测、分析后,发现sysaux01.dbf文件损坏,有坏块。 修复并启动数据库后仍然有许多查询报错,export和data pump工具使用报错。从数据库层面无法修复数据库。
数据库数据恢复—Oracle数据库文件出现坏块的数据恢复案例
|
8天前
|
Oracle 安全 关系型数据库
Oracle数据恢复—Oracle数据库误删除的数据恢复方法探讨
删除Oracle数据库数据一般有以下2种方式:delete、drop或truncate。下面针对这2种删除oracle数据库数据的方式探讨一下oracle数据库数据恢复方法(不考虑全库备份和利用归档日志)。
|
18天前
|
存储 Oracle 关系型数据库
Oracle同一台服务器创建多个数据库
【8月更文挑战第30天】在 Oracle 中,可在同一服务器上创建多个数据库。首先确保已安装 Oracle 软件并具有足够资源,然后使用 DBCA 工具按步骤创建,包括选择模板、配置存储及字符集等。重复此过程可创建多个数据库,需确保名称、SID 和存储位置唯一。创建后,可通过 Oracle Enterprise Manager 进行管理,注意服务器资源分配与规划。
32 10
|
27天前
|
存储 Oracle 关系型数据库
分享几个Oracle数据库日常维护中常见的问题
分享几个Oracle数据库日常维护中常见的问题
74 1
|
21天前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用问题之Oracle数据库是集群部署的,怎么进行数据同步
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
27天前
|
Oracle 关系型数据库 数据库
Oracle数据库备份脚本分享-Python
Oracle数据库备份脚本分享-Python
24 0
|
27天前
|
SQL 监控 Oracle
Oracle数据误删不用怕,跟我来学日志挖掘
Oracle数据误删不用怕,跟我来学日志挖掘
19 0
|
27天前
|
SQL Oracle 关系型数据库
Oracle误删数据怎么恢复?
Oracle误删数据怎么恢复?
29 0
|
1月前
|
SQL Oracle Java
实时计算 Flink版产品使用问题之采集Oracle数据时,为什么无法采集到其他TABLESPACE的表
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。

推荐镜像

更多