Vendo o tamanho total dos segmentos, de várias instâncias
Oi!
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:
set trimspool on
set feed off
set head off
- -
spool d:\sum_segments.txt
conn user/&&senha@instancia1
spool d:\sum_segments.txt
select vi.instance_name instancia,
round(sum(ds.bytes)/1024/1024) MB
from dba_segments ds,
v$instance vi
group by vi.instance_name;
spool off
- -
conn user/&senha@instancia2
spool d:\sum_segments.txt app
select vi.instance_name instancia,
round(sum(ds.bytes)/1024/1024) MB
from dba_segments ds,
v$instance vi
group by vi.instance_name;
spool off
- -
conn user/&senha@instancia3
spool d:\sum_segments.txt app
select vi.instance_name instancia,
round(sum(ds.bytes)/1024/1024) MB
from dba_segments ds,
v$instance vi
group by vi.instance_name;
spool off
- -
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
set trimspool on
set feed off
set head off
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)
Views
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!
Criatividade nota 10!
Show de bola!
Ei, Michel!
Não se esquece de postar aqui no blog o resultado, ein!!!
T+,
Lílian
Descobri como faz para mascarar a senha:
Colocar no começo do script:
ACCEPT senha CHAR PROMPT ‘Senha: ‘ HIDE
depois,
conn user/&senha@instancia1
Testado e aprovado!