Oracle查看表空间使用率以及爆满解决方案详解


Posted in Oracle onJuly 23, 2022

一、查看表空间使用率

1.查看数据库表空间文件:

--查看数据库表空间文件
select * from dba_data_files;

2.查看所有表空间的总容量:

--查看所有表空间的总容量
select dba.TABLESPACE_NAME, sum(bytes)/1024/1024 as MB  
from dba_data_files dba 
group by dba.TABLESPACE_NAME;

3.查看数据库表空间使用率

--查看数据库表空间使用率
select total.tablespace_name,round(total.MB, 2) as Total_MB,round(total.MB - free.MB, 2) as Used_MB,round((1-free.MB / total.MB)* 100, 2) || '%' as Used_Pct 
from (
select tablespace_name, sum(bytes) /1024/1024 as MB 
from dba_free_space group by tablespace_name) free,
(select tablespace_name, sum(bytes) / 1024 / 1024 as MB 
from dba_data_files group by tablespace_name) total     
where free.tablespace_name = total.tablespace_name 
order by used_pct desc;

4.1.查看表空间总大小、使用率、剩余空间

--查看表空间总大小、使用率、剩余空间
select a.tablespace_name, total, free, total-free as used, substr(free/total * 100, 1, 5) as "FREE%", substr((total - free)/total * 100, 1, 5) as "USED%"
from
(select tablespace_name, sum(bytes)/1024/1024 as total from dba_data_files group by tablespace_name) a,
(select tablespace_name, sum(bytes)/1024/1024 as free from dba_free_space group by tablespace_name) b
where a.tablespace_name = b.tablespace_name
order by a.tablespace_name

4.2.查看表空间使用率(包含temp临时表空间)

--查看表空间使用率(包含临时表空间)
select * from (
Select a.tablespace_name,
(a.bytes- b.bytes) "表空间使用大小(BYTE)",
a.bytes/(1024*1024*1024) "表空间大小(GB)",
b.bytes/(1024*1024*1024) "表空间剩余大小(GB)",
(a.bytes- b.bytes)/(1024*1024*1024) "表空间使用大小(GB)",
to_char((1 - b.bytes/a.bytes)*100,'99.99999') || '%' "使用率"
from (select tablespace_name,
sum(bytes) bytes
from dba_data_files
group by tablespace_name) a,
(select tablespace_name,
sum(bytes) bytes
from dba_free_space
group by tablespace_name) b
where a.tablespace_name = b.tablespace_name
union all
select c.tablespace_name,
d.bytes_used "表空间使用大小(BYTE)",
c.bytes/(1024*1024*1024) "表空间大小(GB)",
(c.bytes-d.bytes_used)/(1024*1024*1024) "表空间剩余大小(GB)",
d.bytes_used/(1024*1024*1024) "表空间使用大小(GB)",
to_char(d.bytes_used*100/c.bytes,'99.99999') || '%' "使用率"
from
(select tablespace_name,sum(bytes) bytes
from dba_temp_files group by tablespace_name) c,
(select tablespace_name,sum(bytes_cached) bytes_used
from v$temp_extent_pool group by tablespace_name) d
where c.tablespace_name = d.tablespace_name
)
order by tablespace_name

5.查看具体表的占用空间大小

--查看具体表的占用空间大小
select * from (
select t.tablespace_name,t.owner, t.segment_name, t.segment_type, sum(t.bytes / 1024 / 1024) mb
from dba_segments t
where t.segment_type='TABLE'
group by t.tablespace_name,t.OWNER, t.segment_name, t.segment_type
) t
order by t.mb desc

二、扩展大小或增加表空间文件

1.更改表空间的dbf数据文件分配空间大小

alter database datafile ‘...\system_01.dbf' autoextend on;
alter database datafile ‘...\system_01.dbf' resize 1024M;

2.1 为表空间新增一个数据文件(表空间满32G不能扩展则增加表空间文件)

alter tablespace SYSTEM add datafile '/****' size 1000m autoextend on next 100m;

2.2 如果是temp临时表新增表空间会报错:

0RA-03217: 变更TEMPORARY TABLESPACE 无效的选项

解决方法: datafile改为tempfile

alter tablespace TEMP01 add tempfile'/****' size 1000m autoextend on next 100m;

针对temp临时表空间使用率爆满问题

临时表空间主要用途是在数据库进行排序运算、管理索引、访问视图等操作时提供临时的运算空间,当运算完成之后系统会自动清理,但有些时候我们会遇到临时段没有被释放,TEMP表空间几乎满使用率情况;

引起临时表空间增大主要使用在以下几种情况:

1、order by or group by (disc sort占主要部分);

2、索引的创建和重创建;

3、distinct操作;

4、union & intersect & minus sort-merge joins;

5、Analyze 操作;

6、有些异常也会引起TEMP的暴涨。

解决方法一:用上述方法给temp增加表空间文件

解决方法二:在服务器资源空间有限的情况下,重新建立新的临时表空间替换当前的表空间

--1.查看当前的数据库默认表空间:
select * from database_properties
where property_name='DEFAULT_TEMP_TABLESPACE';

--2.创建新的临时表空间
create temporary tablespace TEMP01 tempfile 
'/home/temp01.dbf' size 31G;

--3.更改默认临时表空间
alter database default temporary tablespace TEMP01;

--4.删除原来的临时表空间
drop tablespace TEMP02 including contents and datafiles;

--如果删除原来临时表空间报错ORA-60100:由于排序段,已阻止删除表空间...
--(说明有语句正在使用原来的临时表空间,需要将其kill掉再删除,此语句多为排序的语句)
--查询语句
Select se.username,se.sid,se.serial#,su.extents,su.blocks*to_number(rtrim(p.value))as Space,
tablespace,segtype,sql_text
from v$sort_usage su,v$parameter p,v$session se,v$sql s
where p.name='db_block_size' and su.session_addr=se.saddr and s.hash_value=su.sqlhash
and s.address=su.sqladdr
order by se.username,se.sid;

--删除对应的'sid,serial#'
alter system kill session 'sid,serial#'

附:查看表空间是否具有自动扩展的能力

--查看表空间是否具有自动扩展的能力     
SELECT T.TABLESPACE_NAME,D.FILE_NAME,     
D.AUTOEXTENSIBLE,D.BYTES,D.MAXBYTES,D.STATUS     
FROM DBA_TABLESPACES T,DBA_DATA_FILES D     
WHERE T.TABLESPACE_NAME =D.TABLESPACE_NAME     
 ORDER BY TABLESPACE_NAME,FILE_NAME;

总结

到此这篇关于Oracle查看表空间使用率以及爆满解决方案的文章就介绍到这了,更多相关Oracle查看表空间使用率内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Oracle 相关文章推荐
Oracle笔记
Apr 05 Oracle
Oracle更换为MySQL遇到的问题及解决
May 21 Oracle
Oracle创建只读账号的详细步骤
Jun 07 Oracle
Oracle安装TNS_ADMIN环境变量设置参考
Nov 01 Oracle
使用Oracle命令进行数据库备份与还原
Dec 06 Oracle
Oracle中update和select 关联操作
Jan 18 Oracle
详细聊聊Oracle表碎片对性能有多大的影响
Mar 19 Oracle
详解SQL的窗口函数
Apr 21 Oracle
ORACLE中dbms_output.put_line输出问题的解决过程
Jun 28 Oracle
Oracle中日期的使用方法实例
Jul 07 #Oracle
oracle设置密码复杂度及设置超时退出的功能
Jun 28 #Oracle
Oracle删除归档日志及添加定时任务
Jun 28 #Oracle
oracle delete误删除表数据后如何恢复
Jun 28 #Oracle
ORACLE中dbms_output.put_line输出问题的解决过程
Jun 28 #Oracle
Oracle 11g数据库使用expdp每周进行数据备份并上传到备份服务器
Jun 28 #Oracle
Oracle数据库事务的开启与结束详解
Jun 25 #Oracle
You might like
php+iframe实现隐藏无刷新上传文件
2012/02/10 PHP
PHP代码保护--Zend Guard的使用详解
2013/06/03 PHP
Zend Framework教程之路由功能Zend_Controller_Router详解
2016/03/07 PHP
Laravel框架自定义公共函数的引入操作示例
2019/04/16 PHP
在IE,Firefox,Safari,Chrome,Opera浏览器上调试javascript
2008/12/02 Javascript
javascript 树控件 比较好用
2009/06/11 Javascript
JS常用正则表达式总结
2013/11/12 Javascript
原生JS操作网页给p元素添加onclick事件及表格隔行变色
2013/12/01 Javascript
JavaScript实现简单图片翻转的方法
2015/04/17 Javascript
javascript判断变量是否有值的方法
2015/04/20 Javascript
Vue封装一个简单轻量的上传文件组件的示例
2018/03/21 Javascript
详解小程序云开发攻略(解决最棘手的问题)
2019/09/30 Javascript
create-react-app中添加less支持的实现
2019/11/15 Javascript
基于js实现逐步显示文字输出代码实例
2020/04/02 Javascript
JS实现页面鼠标点击出现图片特效
2020/08/19 Javascript
[06:21]完美世界亚洲区首席发行官竺琦TI3采访
2013/08/26 DOTA
[36:05]完美世界DOTA2联赛循环赛 Forest vs DM 第一场 11.06
2020/11/06 DOTA
python Django模板的使用方法
2016/01/14 Python
Python获取暗黑破坏神3战网前1000命位玩家的英雄技能统计
2016/07/04 Python
python使用SMTP发送qq或sina邮件
2017/10/21 Python
python爬虫URL重试机制的实现方法(python2.7以及python3.5)
2018/12/18 Python
使用coverage统计python web项目代码覆盖率的方法详解
2019/08/05 Python
Python 脚本的三种执行方式小结
2019/12/21 Python
TensorFlow获取加载模型中的全部张量名称代码
2020/02/11 Python
Python文件时间操作步骤代码详解
2020/04/13 Python
用python实现一个简单的验证码
2020/12/09 Python
澳大利亚领先的运动鞋商店:Hype DC
2018/03/31 全球购物
英国最大的在线时尚眼镜店:Eyewearbrands
2019/03/12 全球购物
Under Armour安德玛意大利官网:美国高端运动科技品牌
2020/01/16 全球购物
会计自我鉴定范文
2013/10/06 职场文书
期中考试后的反思
2014/02/08 职场文书
4s店销售经理岗位职责
2014/07/19 职场文书
远程培训的心得体会
2014/09/01 职场文书
2015年初一班主任工作总结
2015/05/13 职场文书
催款函范本大全
2015/06/24 职场文书
Python自动化工具之实现Excel转Markdown表格
2022/04/08 Python