Monitorar crescimento dos extents (db/bi)

Discussão em 'Banco de Dados / Database' iniciado por marcioricardo, Setembro 9, 2010.

  1. marcioricardo

    marcioricardo Membro Participativo

    Boas.

    Habilitei o EnableLargeFiles para todos os meus bancos Datasul, agora quero monitorar o crescimento dos arquivos para quando chegarem a um tamanho X me enviar um e-mail/SMS e crio um novo extent.
    Poderia fazer isso através de Shell Script (servidor HP-UX), mas queria ver com os colegas se tem algum programinha/procedure/função pronta que já faça isso.

    Grato,
    Márcio.
  2. kirchner

    kirchner Membro Participativo Moderador

    Márcio,

    Existe uma ferramenta da Progress que faz isto e muito mais, chama OpenEdge Management. Os boatos dizem que é caríssima, mas eu nunca vi o preço.
    Você pode fazer no shell ou um programa em qualquer linguagem que conecte no banco e monitore estes tamanhos.

    Agora mudando o foco: se você habilitou arquivos grandes, porque você quer criar um outro extent?
  3. marcioricardo

    marcioricardo Membro Participativo

    Marcos, hoje eu administro um bano Oracle e tenho como padrão de limitar meus datafiles até 2.5GB. Sempre tem uma discussão em saber qual o tamanho ideal, como tem algumas querys de terceiros ruins e eu deixando dessa maneira, a performance fica melhor.

    No progress, estou començando agora, queria seguir essa mesma padronização, não tenho certeza, mas acredito que a performance melhora. E também, separando os extents, em caso de corrupção de algum bloco, terei somente um extent de 2GB para corrigi-lo e o procedimento será mais rápido do que eu fazer num extent ilimitado.

    Não sei se estou certo no que estou dizendo em relação a Progress, ou se surgi algum efeito sobre a administração.

    Hoje, por exemplo, já tenho extents com mais de 2 GB e arquivos de BI com até 43GB. Teve uma vez que o banco caiu por limitação do extent, quando fui subi-lo meu bi estava com 43GB, a empresa parou a manhã inteira, depois que vi que posso truncar o meu BI antes da carga do banco.

    Então Marcos, devo seguir esse raciocínio ou deixo os extents crescerem e só me preocupar com o espaço em disco.

    Grato,
    Márcio.
  4. kirchner

    kirchner Membro Participativo Moderador

    Márcio,

    Isso é sempre um assunto muito polêmico.

    Mas de cara: o Progress não suporta partial recovery, como o Oracle ou SQL Server. Muito menos recovery online. Se você precisar restaurar algo, terá que restaurar o banco inteiro, completamente offline. Neste aspecto eu não vejo nenhum benefício.

    A questão de arquivos menores era comum no passado, quando os FileSystems eram mais toscos. Nos sistemas operacionais modernos isso não é mais problema. Não sou expert em Unix, mas o Windows permite arquivos de 16TB, sem prejuízo nenhum ao desempenho.
    Claro, se você tiver uma recomendação explícita do fabricante do SO, do tipo no HP nunca use arquivos maiores de 4GB, você deve seguí-la. Mas eu não vejo isso em lugar nenhum atualmente.

    Se você tiver vários discos para o mesmo banco a divisão faz mais sentido. Outro ponto que faz sentido é quando você usa áreas diferentes. Usar vários extents para a mesma área e no mesmo disco não traz ganho nenhum, na minha opinião. Eu sempre recomendo você avaliar o gerenciamento.

    O BI tem uma dinâmica e comportamento completamente diferentes do restante do banco, e a discussão muda de figura. Mas em linhas gerais, o que incomoda não é o tamanho do BI, mas a porção ativa dele. Uma casca de 43GB mas com apenas 10MB de notas de BI será muito rápido para processar.
    Vou te indicar 6 posts de um blog sobre BI. Não fala tudo mas ajuda um bocado:
    http://ingleses.datasul.com.br/blog/author/wolfgramm.aspx?page=2
  5. marcioricardo

    marcioricardo Membro Participativo

    Obrigado Marcos pela explicação e pelo link. Iria limitar também os arquivos, que teve um consultor uma vez que disse que seria mais performatico, mas vendo a sua aplicação e tendo já arquivos com mais de 2GB não teria vantagem memso.

    Sobre o BI, quando ele fala em "queda anormal" do banco, isso inclui em o banco cair por limitação do extent? Como sabe, quando atinge os 2GB o Progress derruba todos os bancos, nessa queda ele efetua algum processo de redo/undo?

    Grato,
    Márcio.
  6. kirchner

    kirchner Membro Participativo Moderador

    Márcio,

    Queda anormal é qualquer parada diferente de "proshut <banco> -by".
    Pode ser um crash no banco ou no SO, falta de energia, um KILL forçado, falta de espaço, limite de extent, etc.

    Em todos os casos o Progress tentará o Crash Recovery (redo/undo) quando você ativar o banco novamente, ou quando executar um TRUNCATE BI (e nem pense em usar o -F).
    Se o banco parar por falta de espaço no arquivo de BI você deverá adicionar mais arquivos, pois o próprio crash recovery gera notas no BI. Se não houver espaço de BI o crash recovery aborta e o banco não pode ser aberto.

Compartilhe esta Página