Home - www.devmedia.com.br


Preservando estatísticas ao transportar Tablespaces no Oracle

Este é um roteiro para transportar um tablespace sem ter que analisar novamente tabelas e índices. Isto naturalmente supõe que as estatísticas otimizadoras já tenham sido coletadas. O exemplo usa um schema chamado DEMO e um tablespace chamado TRANSTS.

1. Preserve as estatísticas:

exec DBMS_STATS.CREATE_STAT_TABLE ('DEMO','DEMOSTATS');
exec DBMS_STATS.EXPORT_SCHEMA_STATS ('DEMO','DEMOSTATS');


2. Transforme o tablespace em READ ONLY, como preparação para o transporte:

ALTER TABLESPACE transts READ ONLY;

3. Verifique se não há nenhuma dependência que venha a violar as restrições de transporte:

exec dbms_tts.transport_set_check('TRANSTS', TRUE);
SELECT * FROM transport_set_violations;


4. Exporte as definições de dicionário do tablespace:

exp TRANSPORT_TABLESPACE=y TABLESPACES=transts \ TRIGGERS=y
      CONSTRAINTS=y GRANTS=y FILE=tts.dmp LOG=exptts.log


5. Faça um upload para um FTP ou copie os arquivos de dados e exporte o arquivo da origem para o destino;

6. Crie usuários no banco de dados alvo, caso eles ainda não tenham sido criados;

7. Ligue os tablespaces ao banco de dados alvo:

imp TRANSPORT_TABLESPACE=y \
      DATAFILES=('/opt/oracle/data/TRANSTS_1.dbf') \
      TABLESPACES=(transts) \
      FILE=tts.dmp LOG=imptts.log


8. Marque o tablespace como READ WRITE. Dessa forma, RMAN reconhecerá sua existência. Caso seja necessário, é possível reverter o ajuste do tablespace para READ ONLY:

ALTER TABLESPACE transts READ WRITE;

9. Importe as estatísticas preservadas:

exec DBMS_STATS.IMPORT_SCHEMA_STATS ('DEMO','DEMOSTATS');

Por Edison Costa
edison@sqlmagazine.com.br

  O Otimizador do Oracle para desenvolvedores III    
  O Otimizador do Oracle para desenvolvedores II    
  O Otimizador do Oracle para desenvolvedores I – Introdução    
  Envio de E-mails contendo anexos utilizando PL/SQL e JSP (Java Stored Procedure)    
  Preservando Estatísticas no Oracle    
  Introdução ao PLSQL    
  Condicional em um SELECT    
  Enviando e-mail com Oracle    
  Introdução ao Oracle    
     

 

Todos os direitos reservados: DevMedia Group
SQL Magazine - 2004