估计数据库大小

时间:2011-04-24 19:59:13

标签: oracle oracle11g

我们有一个包含两个节点的集群数据库。我的目标是找出数据库的大小。你能给我一个估算数据库大小的脚本吗?

4 个答案:

答案 0 :(得分:5)

一个好的剧本是去dba,给几杯啤酒,你会得到你想要的。如果这没有帮助,请检查v $ datafile,v $ tempfile和v $ log视图。如果您可以访问它们,它们将为您提供所有需要的数据,在这种情况下,您可能是dba。

select sum(bytes)/1024/1024 MB from
( select sum (bytes) bytes from v$datafile
  union
  select sum (bytes) from v$tempfile
  union
  select sum (bytes * members) from v$log
)
/

我希望这会有所帮助。

答案 1 :(得分:1)

select a.data_size+b.temp_size+c.redo_size+d.controlfile_size "total_size in GB"
from ( select sum(bytes)/1024/1024/1024 data_size
from dba_data_files) a,
( select nvl(sum(bytes),0)/1024/1024/1024 temp_size
from dba_temp_files ) b,
( select sum(bytes)/1024/1024/1024 redo_size
from sys.v_$log ) c,
( select sum(BLOCK_SIZE*FILE_SIZE_BLKS)/1024/1024/1024 controlfile_size
from v$controlfile) d

答案 2 :(得分:1)

使用以下代码获取数据库大小。是的,它与上面相同,但您可以将它放在一个漂亮的PL / SQL脚本中,以便在不同的数据库中运行。

SET SERVEROUTPUT ON
Declare

  ddf Number:= 0;
  dtf Number:= 0;
  log_bytes Number:= 0;
  total Number:= 0;

BEGIN
  select sum(bytes)/power(1024,3) into ddf from dba_data_files;
  select sum(bytes)/power(1024,3) into dtf from dba_temp_files;
  select sum(bytes)/power(1024,3) into log_bytes from v$log;

  total:= round(ddf+dtf+log_bytes, 3);
  dbms_output.put_line('TOTAL DB Size is: '||total||'GB ');
END;

/

http://techxploration.blogspot.com.au/2012/06/script-to-get-oracle-database-size.html

答案 3 :(得分:0)

稍微修改了Jaun的查询以包含来自v $ log的成员,这可能是最准确的,因为它包含控制文件信息,它是整个数据库大小的一部分。

select a.data_size+b.temp_size+c.redo_size+d.controlfile_size "total_size in GB"
from ( select sum(bytes)/1024/1024/1024 data_size
from dba_data_files) a,
( select nvl(sum(bytes),0)/1024/1024/1024 temp_size
from dba_temp_files ) b,
( select sum(bytes*members)/1024/1024/1024 redo_size
from sys.v_$log ) c,
( select sum(BLOCK_SIZE*FILE_SIZE_BLKS)/1024/1024/1024 controlfile_size
from v$controlfile) d
相关问题