sexta-feira, 27 de maio de 2011

Exportando tabelas vazias com o EXP no Oracle 11

  No Oracle 11 tem um parâmetro (deferred_segment_creation) que indica ao SGBD para não alocar segmentos no banco de dados enquanto uma tabela está vazia, desta forma economizando espaço.
  A configuração padrão de instalação é ativo (TRUE).
  Desta forma quem utiliza o utilitário exp para exportar as informações do banco de dados, observa que todas as tabelas vazias não são geradas no arquivo de exportação, sendo que em alguns casos isto é um problema.
  Para resolver esta situação existem algumas procedimentos que podem ser feitos, o primeiro é trocar a exportação do exp pelo utilitário expdp.
  Outra forma é desativar esta opção através dos comandos ALTER SESSION, ALTER SYSTEM deixando este parâmetro com o valor FALSE.

        ALTER SYSTEM SET deferred_segment_creation=FALSE;
  Entretanto esta segunda opção somente irá valer para as tabelas criadas após a execução do comando. Para resolver esta situação nas tabelas já criadas e vazias utilizar a instrução:

        ALTER TABLE nome_da_tabela ALLOCATE EXTENT;