Pular para o conteúdo

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!

Quão útil foi este post ?

Clique em uma estrela para classificar o post

nota média 0 / 5. Contagem de votos: 0

Sem votos ! Seja o primeiro a classificar !

3 comentários em “Vendo o tamanho total dos segmentos, de várias instâncias”

  1. Avatar de Lílian Barroso

    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!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

plugins premium WordPress