Migrar Indices do Banco de Dados

Discussão em 'Banco de Dados / Database' iniciado por kikofr, Junho 16, 2010.

  1. kikofr

    kikofr Membro Participativo

    Bom dia.

    Estou planejando um Dump/load para minha base de dados e gostaria de ver o seguinte problema. Quero criar áreas de armazenagem diferentes para indices e dados. Existe alguma forma de migrar todos os indices de um determinado banco para uma área nova? Ou migrar os indices de uma determinada tabela?

    Obrigado desde já.
  2. kirchner

    kirchner Membro Participativo Moderador

    kikorf,

    Existe o proutil idxmove. Ele recria o índice em uma nova área, que você especifica.
    Como o comando trabalha com 1 índice de cada vez, você pode ser bem seletivo sobre quais índices migrar ou não.

    De forma semelhante, existe o proutil tablemove, que move uma tabela e opcionalmente os índices.

    Estes utilitários movem dados/índices sem precisar de dump/load. Como você já está programando o dump/load, muda o arquivo de definições (.df), e aponta as tabelas/índices para a nova área. O load já vai carregar os dados corretamente. É muito mais rápido fazer isso no load do que usar o tablemove/idxmove.
  3. kikofr

    kikofr Membro Participativo

    Essa é minha idéia, fazer o dump/load e migrar os dados, o problema é que o arquivo de definição do banco de cadastro possui mais de 590 mil linhas, trocar todos os indices no arquivo é quase que inviavel.

    Estava pensando em criar o banco e aplicar o DF e depois migrar os indices vazios, mas daí caio no mesmo ponto de alterar os indices na mão.
    Após isso fazer o load da base.
  4. kirchner

    kirchner Membro Participativo Moderador

    Então, isto é um problema realmente. É simples mas é trabalhoso.

    Você pode fazer um replace no arquivo .df, mas se todas as tabelas e índices já estão na mesma área, é mais complicado.
    Outra opção é um programa simples para ler o arquivo e alterá-lo.

    Ou então, faz o load do .df em um banco vazio e gera os milhares de idxmove para estes índices. Você pode gerar um script lendo a tabela _Index.
  5. kikofr

    kikofr Membro Participativo

    Existe alguma tabela do sistema que guarde a informação do banco + indice? para que possa criar um script do idxmove?
  6. ItaloSantiago

    ItaloSantiago Sem Pontuação

    Cara, se puder, entre em contato comigo..

    Tenho uma idéia que pode te ajudar. Se realmente for viável, postamos aqui.

    Abraço.

Compartilhe esta Página