Pular para o conteúdo

Oracle Data Pump: Alternativa mais rápida e flexível para exportação/importação de dados

Dois novos recursos do Oracle Data Pump

Oracle Data Pump é uma alternativa nas operações de exportação/importação dos dados, introduzido na versão 10G do banco de dados Oracle, mais rápida e flexível aos tradicionais EXP e IMP, que foram muito utilizados nas versões anteriores do Oracle Database.

Assim como o banco de dados evoluiu com a implementação de diversas melhorias, esta ferramenta também foi aperfeiçoada e segue abaixo a descrição de duas melhorias introduzidas na versão 12c:

Transport view as table

O Data Pump irá exportar uma tabela com os dados obtidos através da view.

Para usar este recurso, você deverá utilizar o parâmetro VIEWS_AS_TABLES.

View do esquema HR que será utilizada para os testes:

CREATE OR REPLACE FORCE VIEW HR.EMP_DETAILS_VIEW
AS
  SELECT e.employee_id,
         e.job_id,
         e.manager_id,
         e.department_id,
         d.location_id,
         l.country_id,
         e.first_name,
         e.last_name,
         e.salary,
         e.commission_pct,
         d.department_name,
         j.job_title,
         l.city,
         l.state_province,
         c.country_name,
         r.region_name
    FROM employees e,
         departments d,
         jobs j,
         locations l,
         countries c,
         regions r
   WHERE e.department_id = d.department_id
         AND d.location_id = l.location_id
         AND l.country_id = c.country_id
         AND c.region_id = r.region_id
         AND j.job_id = e.job_id

Criação do diretório que será utilizado para gerar o arquivo:

create directory dpdir as '/home/oracle/data_pump';

Export utilizando o parâmetro novo:

[oracle@oracle01 admin]$ expdp alex_zaballa@pdb1 views_as_tables=HR.EMP_DETAILS_VIEW directory=dpdir dumpfile=emp_view.dmp logfile=emp_view_export.log

Export: Release 12.1.0.1.0 - Production on Mon Oct 7 14:39:18 2013
Copyright (c) 1982, 2013, Oracle and/or its affiliates.  All rights reserved.
Password: 

Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics
and Real Application Testing options

Starting "ALEX_ZABALLA"."SYS_EXPORT_TABLE_01":  alex_zaballa/********@pdb1 views_as_tables=HR.EMP_DETAILS_VIEW directory=dpdir dumpfile=emp_view.dmp logfile=emp_view_export.log 

Estimate in progress using BLOCKS method...
Processing object type TABLE_EXPORT/VIEWS_AS_TABLES/TABLE_DATA
Total estimation using BLOCKS method: 16 KB

Processing object type TABLE_EXPORT/VIEWS_AS_TABLES/TABLE
. . exported "HR"."EMP_DETAILS_VIEW"                     24.56 KB     106 rows

Master table "ALEX_ZABALLA"."SYS_EXPORT_TABLE_01" successfully loaded/unloaded

******************************************************************************

Dump file set for ALEX_ZABALLA.SYS_EXPORT_TABLE_01 is:

 /home/oracle/data_pump/emp_view.dmp

Job "ALEX_ZABALLA"."SYS_EXPORT_TABLE_01" successfully completed at Mon Oct 7 14:40:02 2013 elapsed 0 00:00:33

Como é possível observar, foram exportadas 106 linhas.

Agora vamos importar a tabela gerada para outro owner:

[oracle@oracle01 admin]$ impdp alex_zaballa@pdb1 remap_schema=hr:alex_zaballa directory=dpdir dumpfile=emp_view.dmp logfile=emp_view_import.log

Import: Release 12.1.0.1.0 - Production on Mon Oct 7 14:46:44 2013
Copyright (c) 1982, 2013, Oracle and/or its affiliates.  All rights reserved.
Password: 

Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics
and Real Application Testing options

Master table "ALEX_ZABALLA"."SYS_IMPORT_FULL_01" successfully loaded/unloaded

Starting "ALEX_ZABALLA"."SYS_IMPORT_FULL_01":  alex_zaballa/********@pdb1 remap_schema=hr:alex_zaballa directory=dpdir dumpfile=emp_view.dmp logfile=emp_view_import.log 
Processing object type TABLE_EXPORT/VIEWS_AS_TABLES/TABLE
Processing object type TABLE_EXPORT/VIEWS_AS_TABLES/TABLE_DATA

. . imported "ALEX_ZABALLA"."EMP_DETAILS_VIEW"           24.56 KB     106 rows

Job "ALEX_ZABALLA"."SYS_IMPORT_FULL_01" successfully completed at Mon Oct 7 14:47:05 2013 elapsed 0 00:00:11

Verificando os dados:

SQL> show user

USER is "ALEX_ZABALLA"

SQL> select * from tab;

TNAME               TABTYPE   CLUSTERID
------------------------------ -------   ----------
EMP_DETAILS_VIEW                 TABLE

SQL> select count(*) from emp_details_view;

 COUNT(*)
----------
      106

Turn off redo log generation

No IMPDP, foi introduzida a opção de reduzir a geração de redo durante uma importação através da opção DISABLE_ARCHIVE_LOGGING da cláusula TRANSFORM.

Este parâmetro pode ser setado de forma global, para tabelas ou para índices:

transform=disable_archive_logging:Y

transform=disable_archive_logging:Y:table

transform=disable_archive_logging:Y:index

Obviamente que este parâmetro não surtirá efeito caso o banco esteja no modo FORCE LOGGING.

[oracle@oracle01 admin]$ impdp alex_zaballa@pdb1 remap_schema=hr:alex_zaballa directory=dpdir dumpfile=emp_view.dmp logfile=emp_view_import2.log TRANSFORM=DISABLE_ARCHIVE_LOGGING:Y

Import: Release 12.1.0.1.0 - Production on Mon Oct 7 15:16:46 2013
Copyright (c) 1982, 2013, Oracle and/or its affiliates.  All rights reserved.
Password: 

Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics
and Real Application Testing options

Master table "ALEX_ZABALLA"."SYS_IMPORT_FULL_01" successfully loaded/unloaded

Starting "ALEX_ZABALLA"."SYS_IMPORT_FULL_01":  alex_zaballa/********@pdb1 remap_schema=hr:alex_zaballa directory=dpdir dumpfile=emp_view.dmp logfile=emp_view_import2.log TRANSFORM=DISABLE_ARCHIVE_LOGGING:Y 

Processing object type TABLE_EXPORT/VIEWS_AS_TABLES/TABLE
Processing object type TABLE_EXPORT/VIEWS_AS_TABLES/TABLE_DATA

. . imported "ALEX_ZABALLA"."EMP_DETAILS_VIEW"           24.56 KB     106 rows

Job "ALEX_ZABALLA"."SYS_IMPORT_FULL_01" successfully completed at Mon Oct 7 15:17:05 2013 elapsed 0 00:00:12

Abraço

 

Alex Zaballa

Alex Zaballa

Alex Zaballa, formado em Análise de Sistemas, é especialista em Banco de Dados Oracle com sólidos conhecimentos em Servidores de Aplicação e Sistemas Operacionais; trabalha com Oracle há 15 anos, é ORACLE ACE Director, certificado OCM Database 11G / Cloud e conta com mais de 140 outras certificações em produtos da Oracle. Alex também é um dos fundadores do Grupo de Usuários Oracle de Angola (GUOA), participa do Grupo de Usuários de Tecnologia Oracle Brasil (GUOB) e é membro do time OraWorld.

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