我们有一个包含两个节点的集群数据库。我的目标是找出数据库的大小。你能给我一个估算数据库大小的脚本吗?
答案 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