Oracle 运维篇+查看表空间使用率

特色:该SQL中表空间最大值为数据文件最大容量之和,这和网上常见的SQL有很大的优化​​​​​​

大纲

--查看表空间使用率(11g新特性)(官方SQL)

--查看表空间使用率(自己写的SQL)(方便且精确)

 

一、查看表空间使用率(11g新特性)

SQL> select * from dba_tablespace_usage_metrics;

SQL> show parameter db_block_size

温馨提示:

  • 它的大小计算单位是block,所以需要关联下数据库的block大小
  • 表空间总容量如果是可自动扩展的datafile,那么结果就是所有datafile最大的max值的和
  • 该视图不稳定,add datafile后不一定及时刷新,可能会等一段时间
  • 当表空间drop datafile后该视图由于bug,总容量不会减小,需要重启实例
  • 某表空间truncate某张表后,使用率有时不会下降,但作为workaround,手动创建一个表再drop后该视图会刷新

 

二、查看表空间使用率(自己写的SQL)(有时CSDN会将半角空格转为全角空格,用户自行替换后即可直接使用SQL)

温馨提示:如果您发现该SQL有问题或者有更好的写法请留言或私信我进行修改优化

列名

用途

详情

tablespace_name

表空间名称

表空间名称

member

数据文件数

该表空间中包含几个数据文件

MAX_size

表空间最大上限

该表空间中所有数据文件最大可扩展上限之和(即建设自动扩展的表空间达到最大值)

MAX_free

表空间最大剩余值

该表空间中所有数据文件达到最大空间上限之和之前的剩余量

MAX_used

表空间最大使用的值

该表空间目前最大使用了多少空间

MAX_used_percent

表空间最大使用率

该表空间以最大可扩展上限为总量的使用率

Now_Sum

表空间当前最大上限

该表空间当前已分配的空间大小之和

Now_used

表空间当前最大剩余值

该表空间当前已使用的空间

Now_free

表空间当前最大使用的值

该表空间当前已分配的空间为总量的剩余量(这个值基本没什么用,因为对于可自动扩展的数据文件来说它是会变的)

Now_used_percent

表空间当前最大使用率

该表空间当前已分配的空间为总量的使用率(这个值基本没什么用,因为对于可自动扩展的数据文件来说它是会变的)

★ 永久表空间

set line 150
set pages 200
select /* tag_zzt */
       a.tablespace_name,
       a.member,
       round(a.max / 1024 / 1024 / 1024) "MAX_size GB",
       round((a.max - (a.bytes - b.bytes)) / 1024 / 1024 / 1024) "MAX_free GB",
       round((a.bytes - b.bytes) / 1024 / 1024 / 1024) "MAX_used GB",
       round((a.bytes - b.bytes) / a.max * 100) "MAX_used_percent %",
       round(a.bytes / 1024 / 1024) "Now_Sum MB",
       round((a.bytes - b.bytes) / 1024 / 1024) "Now_used MB",
       round(b.bytes / 1024 / 1024) "Now_free MB",
       round(((a.bytes - b.bytes) / a.bytes) * 100) "Now_used_percent %"
  from (select tablespace_name,sum(bytes) bytes,sum(decode(maxbytes, 0, bytes, maxbytes)) max,count(file_id) member 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 5, 1;

※ 案例:

① 表空间使用率

   TABLESPACE_NAMEMEMBERMAX_size GBMAX_free GBMAX_used GBMAX_used_percent %Now_Sum MBNow_used MBNow_free MBNow_used_percent %
1UNDOTBS11323200906846
2USERS35252001030210280
3SYSAUX13231125605312995
4SYSTEM1323112710702899

 ② 数据文件信息

   FILE_NAMEFILE_IDTABLESPACE_NAMEBYTESBLOCKSSTATUSRELATIVE_FNOAUTOEXTENSIBLEMAXBYTESMAXBLOCKSINCREMENT_BYUSER_BYTESUSER_BLOCKSONLINE_STATUS
3/u01/oracle/oradata/orcl/sysaux01.dbf2SYSAUX58720256071680AVAILABLE2YES343597219844194302128058615398471552ONLINE
4/u01/oracle/oradata/orcl/system01.dbf1SYSTEM74448896090880AVAILABLE1YES343597219844194302128074344038490752SYSTEM
2/u01/oracle/oradata/orcl/undotbs01.dbf3UNDOTBS19437184011520AVAILABLE3YES3435972198441943026409332326411392ONLINE
1/u01/oracle/oradata/orcl/users01.dbf4USERS5242880640AVAILABLE4YES3435972198441943021604194304512ONLINE
5/u01/oracle/oradata/orcl/users02.dbf5USERS1048576128AVAILABLE5YES1073741824013107201983040120ONLINE
6/u01/oracle/oradata/orcl/users03.dbf6USERS1073741824131072AVAILABLE6YES10737418240131072011072693248130944ONLINE

★ 临时表空间

set line 150
set pages 200
select /* tag_zzt */
   a.tablespace_name,
   count(b.file_id) member,
       sum(round(decode(b.maxbytes, 0, b.bytes, b.maxbytes) / 1024 / 1024 / 1024)) "MAX_size GB",
       sum(round(a.allocated_space / 1024 / 1024 / 1024)) "MAX_used GB",
       sum(round((decode(b.maxbytes, 0, b.bytes, b.maxbytes) - a.allocated_space) / 1024 / 1024 / 1024)) "MAX_free GB",
       sum(round(a.allocated_space / decode(b.maxbytes, 0, b.bytes, b.maxbytes) * 100)) "MAX_used_percent %",
       sum(a.TABLESPACE_SIZE / 1024 / 1024) "Now_sum MB",
       sum((a.TABLESPACE_SIZE - a.FREE_SPACE) / 1024 / 1024) "Now_used MB",
       sum(a.FREE_SPACE / 1024 / 1024) "Now_FREE MB",
       sum(a.ALLOCATED_SPACE / 1024 / 1024) "Now_ALLOCATED MB",
       sum(round((a.TABLESPACE_SIZE - a.FREE_SPACE) / a.TABLESPACE_SIZE * 100)) "Now_percent_used %"
  from dba_temp_free_space a, dba_temp_files b
 where a.tablespace_name = b.tablespace_name
 group by a.tablespace_name;

※ 案例:
① 表空间使用率

   TABLESPACE_NAMEMEMBERMAX_size GBMAX_used GBMAX_free GBMAX_used_percent %Now_sum MBNow_used MBNow_FREE MBNow_ALLOCATED MBNow_percent_used %
1TEMP352052011791089324

② 临时文件信息

   FILE_NAMEFILE_IDTABLESPACE_NAMEBYTESBLOCKSSTATUSRELATIVE_FNOAUTOEXTENSIBLEMAXBYTESMAXBLOCKSINCREMENT_BYUSER_BYTESUSER_BLOCKS
1/u01/oracle/oradata/orcl/temp01.dbf1TEMP304087043712ONLINE1YES34359721984419430280293601283584
2/u01/oracle/oradata/orcl/temp02.dbf2TEMP5242880640ONLINE2YES10737418240131072014194304512
3/u01/oracle/oradata/orcl/temp03.dbf3TEMP5242880640ONLINE3YES10737418240131072014194304512

 

※ 如果您觉得文章写的还不错, 别忘了在文末给作者点个赞哦 ~

over

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle数据库运维涉及多个方面,包括性能优化、备份和恢复、安全管理、故障排除等。下面是一些常见的Oracle数据库运维任务和建议: 1. 性能优化: - 监控数据库性能指标,如CPU利用率、内存使用情况、I/O负载等。 - 优化SQL查询,使用索引、调整查询计划等手段提高查询性能。 - 定期收集统计信息,以帮助优化查询计划。 2. 备份和恢复: - 定期进行数据库备份,包括全量备份和增量备份,以确保数据的安全性和可恢复性。 - 进行恢复测试,验证备份的可靠性,并确保可以在需要时快速恢复数据库。 3. 安全管理: - 设置强密码策略,限制访问权限,并定期更改密码。 - 使用数据库防火墙和入侵检测系统来保护数据库免受未经授权的访问和攻击。 - 定期审计数据库活动,检查异常操作和安全漏洞。 4. 故障排除: - 监控数据库错误日志和警告日志,及时发现并解决潜在问题。 - 运行诊断工具,如ADRCI、AWR报告等,以帮助分析和解决故障。 此外,还可以考虑以下一些常用的运维实践: - 定期应用数据库补丁和升级。 - 管理数据库存储空间,包括数据文件和日志文件的增加和调整。 - 配置数据库备份策略,包括冷备份、热备份和逻辑备份。 - 监控数据库的容量规划,确保足够的存储空间和资源。 - 保证数据库的高可用性和容错性,如配置数据保护和灾备解决方案。 需要注意的是,Oracle数据库运维是一个广泛而复杂的领域,具体的运维任务和策略可能会因环境和需求而有所不同。建议根据实际情况进行细化和定制化的运维计划。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值