Por Alex Zaballa

O que é o 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

Alex Zaballa é DBA e trabalha com Oracle há 14 anos, especialista em Banco de Dados Oracle e formado em Análise de Sistemas. Com sólidos conhecimentos em Banco de Dados e Sistemas operacionais, é certificado OCM Database 11G, bem como outras 110 certificações em produtos da Oracle.
Trabalha desde 2007 para a Jupiter em Angola, alocado em um projeto no Ministério das Finanças.


Postagem feita por:


Nenhum Comentário

Envie um Comentário

Seu endereço de email não será publicado. Campos obrigatórios estão marcados com *

Soluções Inteligentes