Vendo o tamanho total dos segmentos, de várias instâncias - GPO (Grupo de Profissionais Oracle)
por lilian · Published janeiro 16, 2009 · Updated julho 15, 2019
Uma tarefa importante, e simples, é o acompanhamento do crescimento das tablespaces do banco. Este trabalho fica um pouco mais complicado quando o DBA tem que acompanhar o crescimento de várias tablespaces ou, no meu caso, de várias instâncias: só um dos nossos clientes tem 25!
Por isso, ao invés de ficar conectando instância por instância, eu criei um script simples que tem ajudado bastante:
-  -
spool d:\sum_segments.txt
conn user/&&senha@instancia1
select     vi.instance_name instancia,
round(sum(ds.bytes)/1024/1024) MB
from     dba_segments ds,
v$instance vi
group by vi.instance_name;
conn user/&senha@instancia2
spool d:\sum_segments.txt app
conn user/&senha@instancia3
O que este script faz: Ele armazena em um arquivo de texto o nome das instâncias (neste caso, apenas 3) e o tamanho, em megas, dos seus segmentos.
Para nao aparecer linhas em branco, o nº total de linhas e o cabeçalho da consulta, foram usados respectivamente os comandos
Para a senha do usuário ser digitada apenas 1 vez (no caso de uma senha única para o mesmo usuário em todas as instâncias)
&&senha – observe que há 2 "&"
Comandos de spool:
spool d:\sum_segments.txt – antes da consulta (cria o arquivo de spool "sum_segments.txt" na unidade D:)
spool off – logo após a consulta, para não aparecer o texto da consulta SQL (o "select")
spool d:\sum_segments.txt app – abre o arquivo de spool e acrescenta o resultado da consulta abaixo do texto já existente (app – append)
v$instance – Armazena informações sobre a instância. Neste caso, v$instance.instance_name retorna o nome da instância
dba_segments – Armazena informações sobre todos os sementos do banco (segmentos de índice, tabela, entre outros). A coluna bytes/1024/1024 traz o resultado em MB.
Este script ainda pode ser melhorado, como adicionando função para mascarar a senha durante a digitação. Mesmo assim, tem me ajudado muito!