表空间使用率和OS目录可用空间关系

2023年 10月 30日 81.3k 0

今天巡检时发现系统表空间和磁盘空间出现异常,有明显的波动,但又自动恢复正常。

经过查询表空间使用率下降时间点正好是删归档时间点,删归档致使该OS目录可用空间增加。

我们先看下dba_tablespace_usage_metrics,该视图有字段
 tablespace_size 。
该字段显示的即是该表空间的总可用空间,下面分两种情况讨论此视图的tablespace_size的大小

第一种:当数据文件可自动扩展的最大值大于OS目录可用空间的最大值时
,tablespace_size字段显示大小直接默认占用该OS目录全部剩余空间

打个比方说
如果一个表空间的当前大小为5 GB,其数据文件的最大总大小为32 GB,但是OS目录空间只有20 GB的可用内存,那么tablespace_size值约为25
GB。

这里在测试库进行测试,创建了一个表空间自动扩展的最大值为15G,OS剩余内存为11.45G

table_name used_space free use_percentage OS剩余空间 tablespace_size

T1 8.75G 2.7 G 76.44 2.3G 11.45G

T1 8.75G 2.18G 80.06 1.8G 10.93G

T1 8.75G 1.66G 84.04 1.3G 10.41 G

这里我在OS中放入了一个0.5G的文件,
tablespace_size相应的也就少了0.5G,重复了两次。

第二种:则为OS可用内存大于数据文件可自动扩展的最大值时, tablespace_size字段显示大小为该文件可自动扩展的最大值。

打个比方说
如果一个表空间的当前大小为5 GB,其数据文件的最大总大小为10GB,OS内存有20 GB的可用内存,那么tablespace_size值约为10GB。

这里我进行测试创了一个可自动扩展最大值为7G的表空间
OS剩余内存为14.4G,满足其自动扩展的最大内存使用,此时tablespace_size值为7GB

综上所述,该表空间使用率上升再下降原因:归档的增长致使该OS目录剩余空间减少,此时数据文件可自动扩展的最大值大于了OS剩余空间,此时表空间使用率则随着OS目录剩余空间的增减而波动,删归档时OS目录可用空间上升
所以表空间使用率下降。归档删完之后OS目录剩余空间大于了数据文件可自动扩展的最大值。此时tablespace_size为一个定值,所以中间有一段平稳期,但是随着归档的再次增加又出现了第一种情况,随着删归档表空间使用率再次下降。后续扩了2T空间
OS目录可用空间始终大于数据文件可自动扩展的最大值,不再出现表空间使用率异常增长或下降的情况。

建议:关闭表空间自动增长!!!

最后:关于为什么表空间开启自动增长而不是一次性设置:1.业务高峰期,自动增长的文件创建较快,对业务影响小;2.问前辈;之前人很少,像晚上设置自动扩展,这样不是方便了许多().

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论