完整表空间的实际指标是什么?物理文件大小(已分配)或已用空间? 我们只有一个模式使用DATA01作为数据库中的主表空间。 请参考下面的sql:
Select Bytes/1024/1024/1024,Tablespace_Name,File_Name From Dba_Data_Files;
或
Select df.tablespace_name Tablespace,
totalusedspace Used_MB,
(df.totalspace - tu.totalusedspace) Free_MB,
Df.Totalspace Total_Mb,
round(100 * ( (df.totalspace - tu.totalusedspace)/ df.totalspace)) Pct_Free
from
(select tablespace_name,
round(sum(bytes) / 1048576) TotalSpace
from dba_data_files
Group By Tablespace_Name) Df,
(select round(sum(bytes)/(1024*1024)) totalusedspace, tablespace_name from dba_segments
group by tablespace_name) tu
where df.tablespace_name = tu.tablespace_name;
第一个sql给出以下结果:
SQL> Select Bytes/1024/1024/1024,Tablespace_Name,File_Name From Dba_Data_Files;
BYTES/1024/1024/1024 TABLESPACE_NAME
-------------------- ------------------------------
FILE_NAME
------------------------------------------------------------------------------------------------------------------------
.004882813 USERS
+DATA/xxx/datafile/users.289.863434089
1.43066406 UNDOTBS1
+DATA/xxx/datafile/undotbs1.288.863434089
5 SYSAUX
+DATA/xxx/datafile/sysaux.287.863434089
5 SYSTEM
+DATA/xxx/datafile/system.286.863434087
.537109375 UNDOTBS2
+DATA/xxx/datafile/undotbs2.294.863434493
31.9999847 DATA01
+DATA/xxx/datafile/data01a.dbf
31.9999847 DATA01
+DATA/xxx/datafile/data01b.dbf
31.9999847 DATA01
+DATA/xxx/datafile/data01c.dbf
.09765625 DATA02
+DATA/xxx/datafile/data02a.dbf
6.4831543 INDEX02
+DATA/xxx/datafile/index02a.dbf
31.9414063 DATA01
+DATA/xxx/datafile/data01d.dbf
第二个sql给出以下结果:
TABLESPACE USED_MB FREE_MB TOTAL_MB PCT_FREE
------------------------------ ---------- ---------- ---------- ----------
UNDOTBS1 27 1438 1465 98
SYSAUX 2211 2909 5120 57
SYSTEM 2579 2541 5120 50
DATA01 86363 44649 131012 34
UNDOTBS2 17 533 550 97
INDEX02 3103 3536 6639 53
如图所示,四个数据文件data01a / data01b / data01c / data01d的大小接近32G,但为什么显示第二个sql的结果仍有34%的表空间DATA01可用空间?
此外,DBA从db console发送以下屏幕截图时更加奇怪:
数据文件名称|用法|尺寸|二手|免费|
data01d.dbf | 0%| 31.96 Gb | 47MB | 31.9Gb
问题:
非常感谢您的任何意见/建议,赞赏。
答案 0 :(得分:0)
表空间只是磁盘上预先分配的空间量。它是管理表空间中空间使用情况的数据库,因此我倾向于使用数据库报告的内容 - 即。你的第二个问题。
所以,回答你的问题:
答案 1 :(得分:0)
扩展的数据文件大小和实际的数据库使用情况是两回事。数据文件可以100%扩展(在您的情况下为32GB),但实际上该文件中没有任何有意义的数据(但它仍占用驱动器上的所有空间)。例如,数据文件已展开,但稍后数据已被删除。数据文件本身不会缩小。它保持扩展。
您可能已将数据库文件设置为每个扩展至32GB,然后再继续填充下一个可用文件。检查Oracle中的设置。在数据文件大小方面存在平衡行为。最好将数据文件切割成较小的块,以提高性能,防止损坏,加快备份和恢复速度。查看: https://docs.oracle.com/cd/B28359_01/server.111/b28310/dfiles003.htm#ADMIN11423