Оцените размер базы данных - PullRequest
4 голосов
/ 24 апреля 2011

У нас есть кластерная база данных с двумя узлами. Моя цель - узнать размер базы данных. Не могли бы вы дать мне скрипт для оценки размера базы данных?

Ответы [ 4 ]

5 голосов
/ 25 апреля 2011

Хороший сценарий - иди в БД, дай несколько сортов пива, и ты получишь то, что хочешь. Если это не помогает, проверьте представления 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 голос
/ 02 июля 2012

Используйте код ниже, чтобы получить размер БД. Да, то же самое, что и выше, но вы можете поместить его в хороший скрипт 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

1 голос
/ 27 марта 2012
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
0 голосов
/ 10 мая 2013

Небольшое изменение в запросе 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...