Pular para o conteúdo

Compreendendo os modos de exportação do Oracle Data Pump: um guia prático para gerenciamento eficiente de dados

DATA PUMP Modos de Exportação

Imagine o Oracle Data Pump como um centro logístico moderno, onde diferentes tipos de pacotes precisam ser enviados para diversos destinos. Cada modo de exportação representa uma estratégia eficiente para organizar e transferir seus dados. Neste artigo, vamos desvendar os modos de exportação disponíveis no Data Pump, explicando cada um de forma clara, com exemplos práticos e objetivos que você pode aplicar diretamente no seu ambiente Oracle.

O Oracle Data Pump utiliza uma sintaxe padronizada para facilitar a execução de exportações. Aqui estão 2 exemplos de estrutura básica:

Bash
EXPDP USUARIO/SENHA@SERVICE_NAME \
DIRECTORY=NOME_DIRECTORY \
DUMPFILE=DUMPFILE.DMP \
LOGFILE=LOGFILE.LOG \
MODO_DE_EXPORTACAO

usuario/senha@service_name: Informa o usuário e a senha para conexão ao banco, além do nome do serviço.

Exemplo: USR_FULANO/SENHA@ORCL.

DIRECTORY=nome_directory: Especifica o diretório previamente registrado no banco onde os arquivos serão armazenados.

Exemplo: DIRECTORY=DATA_PUMP_X.

DUMPFILE=dumpfile.dmp: Define o nome do arquivo dump que será gerado.

Exemplo: DUMPFILE=meu_dump.dmp.

LOGFILE=logfile.log: Define o nome do arquivo de log que armazenará informações do processo.

Exemplo: LOGFILE=meu_log.log.

modo_de_exportacao: Especifica o modo de exportação, como FULL=Y, SCHEMAS=USR_FULANO ou TABLES=EMPLOYEES.

Outra forma válida de especificar os arquivos é utilizando a notação de diretório dentro dos parâmetros DUMPFILE e LOGFILE:

Bash
EXPDP USUARIO/SENHA@SERVICE_NAME \
DUMPFILE=NOME_DIRECTORY:DUMPFILE.DMP \
LOGFILE=NOME_DIRECTORY:LOGFILE.LOG \
MODO_DE_EXPORTACAO

Estando em nível de sistema operacional, fora do banco. Vamos a prática:

Bash
EXPDP USR_FULANO/senha@ORCL DUMPFILE=DATA_PUMP_X:EXP_TESTE.DMP LOGFILE=DATA_PUMP_X:EXP_TESTE.LOG FULL=Y

DUMPFILE=DATA_PUMP_X:exp_teste.dmp: Salva o arquivo dump no diretório DATA_PUMP_X com o nome exp_teste.dmp.

LOGFILE=DATA_PUMP_X:exp_teste.log: Armazena o log no mesmo diretório com o nome exp_teste.log.

FULL=Y: Exporta todo o banco de dados. Essa flexibilidade permite gerenciar com precisão onde os arquivos são armazenados e como o processo é configurado.

Modos de Exportação do Oracle Data Pump

O Oracle Data Pump Export oferece cinco modos principais de exportação. Cada um é projetado para atender a necessidades específicas de administração de dados.

1/5 Full Mode

O banco inteiro é exportado. Para usá-lo é necessário que o usuário de exportação tenha garantida a role DATAPUMP_EXP_FULL_DATABASE;

Indicamos um full mode através do parâmetro FULL=Y:

Exporta o banco de dados inteiro. Imagine enviar todo o conteúdo de um armazém para um novo local.

Bash
expdp USR_FULANO/senha@PDB01 DIRECTORY=DATA_PUMP_X DUMPFILE=dump_Full_Mode.dmp LOGFILE=log_Full_Mode.log JOB_NAME=job_Full_Mode FULL=Y

image 217

FULL MODE

Foi preciso fazer uma edição na imagem por ser uma exportação FULL a lista é longa.

image 219

VÁRIOS USUÁRIOS OBJETOS

A imagem acima mostra de maneira didática que ao aplicar a cláusula “FULL=Y” são exportados todos os objetos, esquemas e tabelas de todos os usuários existentes do banco, tudo de tudo. E de forma natural este processo leva um tempo considerado.

Nota: Esse modo requer o privilégio DATAPUMP_EXP_FULL_DATABASE. Todos os objetos, esquemas e tabelas serão incluídos.

2/5 Schema Mode

Exporta objetos pertencentes a um ou mais esquemas. É como organizar pacotes de uma seção específica do armazém. Lembrando que o usuário que está executando este comando tem o privilégio de DATAPUMP_EXP_FULL_DATABASE só assim será possível exportar schemas fora o seu próprio schema, se não tiver este privilégio só será possível exportas seu próprio shema, sem o privilégio o comando não gerará um erro não mas irá exportar seu próprio schema.

Schema mode: especificamos um ou mais schemas a serem exportados. Caso nenhum modo de exportação seja especificado, o padrão é uma exportação schema mode do usuário de exportação;

Caso o usuário de exportação tenha a role DATAPUMP_EXP_FULL_DATABASE, podem ser especificados mais de um schema para exportação;

Indicamos um schema mode através do parâmetro SCHEMAS:

image 221

SCHEMA MODE

E aqui a imagem acima demonstra que foram somente exportados os objetos pertencentes ao usuário HR, diferente da exportação anterior.

Dica: Útil para mover objetos específicos entre ambientes.

3/5. Table Mode

Exporta tabelas específicas e seus objetos dependentes, como índices e constraints. Ideal para transferir dados selecionados. Table Mode especificamos uma ou mais tabelas a serem exportadas. Todas as partições e objetos dependentes também são exportados;

Qualquer objeto necessário para criação da tabela durante a importação precisa existir no banco destino, como schema e tablespaces;

Caso o usuário de exportação tenha a role DATAPUMP_EXP_FULL_DATABASE, podem ser especificados tabelas que não fazem parte do seu schema;

Indicamos um table mode através do parâmetro TABLES:

Bash
expdp USR_FULANO/senha@PDB01 TABLES=HR.EMPLOYEES,USR_FULANO.CORRIDA DIRECTORY=DATA_PUMP_X LOGFILE=LOG_TABLE_MOD.log DUMPFILE=DUMP_TABLE_MOD.dmp JOB_NAME=JOB_TABLE_MODE

image 223

TABLE MODE

Na imagem acima percebam que foram exportados 2 tabelas a tabela EMPLOYEES  e a tabela CORRIDA de usuários diferentes sendo  EMPLOYEES do usuário HR e a tabela  CORRIDA do usuário USR_FULANO.

Nota: Com o privilégio DATAPUMP_EXP_FULL_DATABASE, você pode exportar tabelas de outros esquemas.

4/5. Tablespace Mode

Exporta todas as tabelas e objetos dependentes em uma ou mais tablespaces. É como mover todos os pacotes armazenados em um contêiner específico.

Tablespace mode: especificamos uma ou mais tablespaces a serem exportadas. Todas as tabelas contidas no conjunto de tablespaces especificado são exportadas, juntamente com seus objetos dependentes.

Caso o usuário de exportação tenha a role DATAPUMP_EXP_FULL_DATABASE, todas as tabelas da tablespaces são exportadas. Caso contrário, apenas as tabelas do seu schema serão.

Indicamos um tablespace mode através do parâmetro TABLESPACES:

SQL
SELECT OWNER, TABLE_NAME FROM DBA_TABLES WHERE TABLESPACE_NAME='TBS_DATA';

image 225

TABLESPACE TBS_DATA USER A imagem acima demonstra que as tablespaces existem no banco, e seus respectivos proprietários, vamos exportá-las

Bash
expdp USR_FULANO/senha@PDB01 TABLESPACES=TBS_DATA DIRECTORY=DATA_PUMP_X LOGFILE=LOG_TABLESPACE_MOD.LOG DUMPFILE=DUMP_TABLESPACE_MOD.DMP JOB_NAME=JOB_TABLE_MODE

image 227

TABLESPACE MODE

O curioso neste tipo de exportação fica claro na imagem acima são salvos tudo que está vinculado a tablespace exportado, ou seja tudo que reside dentro da tablesapace.

E aqui vale a mesma regra de que o usuário que irá realizar esta exportação deve ter o privilégio de  DATAPUMP_EXP_FULL_DATABASE caso não tenha este privilégio não será gerado um erro porem o usuário somente conseguirá exportar seu próprios objetos, no caso especificado ele tem os privilégios necessários para exportar schemas de outros usuários, como demonstrado acima ele tem sucesso ao exportar objetos vinculados ao usuário HR

Importante: Certifique-se de que os objetos dependentes estejam completamente contidos nas tablespaces especificadas.

5/5. Transportable Tablespace Mode

Exporta apenas os metadados das tabelas nas tablespaces especificadas. Imagine transportar um contêiner inteiro, enquanto a carga (arquivos de dados) é movida separadamente.

Transportable Tablespace mode apenas os metadados das tabelas contidas no conjunto de tablespaces especificado é exportado. Os data files da tablespace são copiados em uma outra operação, e sua localização deve ser especificada durante a importação. Nesse modo é preciso que a tablespace esteja em modo READ ONLY.

Nesse modo, todos os segmentos da tabela e seus índices precisam estar contidos no conjunto de tablespaces especificado.

Durante o processo de importação deve ser especificado o local dos data files;

Indicamos um transportable tablespace mode através do parâmetro TRANSPORT_TABLESPACES:

O primeiro passo para este tipo de exportação é deixar a tablespace em modo READ ONLY, estando conectado como usuário SYS executamos o seguinte comando:

Bash
ALTER TABLESPACE USERS READ ONLY;

image 228

TABLESPACE USERS READ ONLY

Deixando assim a tablespace USER no modo READ ONLY vamos transportar a tablespace, com o seguinte comando.

Bash
expdp USR_FULANO/senha@PDB01 TRANSPORT_TABLESPACES=USERS DUMPFILE=DATA_PUMP_X:TRANSPORTABLE_TABLESPACE_MODE.DMP LOGFILE=DATA_PUMP_X:TRANSPORTABLE_TABLESPACE_MODE.LOG JOB_NAME=JOB_TRANSPORTABLE_TABLESPACE_MODE

image 231

TRANSPORTABLE TABLESPACE MODE

Aqui ele não está exportando os dados mas sim os metadados.

Dica: Durante a importação, especifique o caminho dos arquivos de dados copiados.

Conclusão

Tomei alguns cuidados para que fique o mais didático possível e um destes cuidados foi aplicar a senha do usuário junto no comando não é o mais recomendado em um ambiente produtivo.

O Oracle Data Pump oferece uma maneira flexível e eficiente de gerenciar exportações de dados. Neste artigo, exploramos:

  • Configurações iniciais para preparar o ambiente.
  • Os cinco modos de exportação e suas aplicações práticas.
  • Exemplos detalhados para ajudá-lo a implementar essas estratégias no seu ambiente Oracle.

Com esses conceitos, você pode otimizar suas operações de administração de dados, fazendo a coisa certa do jeito certo do modo certo garantindo maior controle e eficiência.

Nos próximos artigos, vamos nos aprofundar nos diferentes tipos de exportação, transformando o Data Pump em uma ferramenta indispensável para o seu ambiente Oracle!

Tercio Haring

Tercio Haring

Tércio Haring é pai do Max e um entusiasta incansável de TI. Sua paixão pelo próximo o levou a ser socorrista, sempre pronto para ajudar. No universo da tecnologia, seu objetivo vai além de simplesmente compartilhar conhecimento; ele busca manter sua mente conectada ao futuro e abraçar os desafios como oportunidades disfarçadas. Escreve com o objetivo de tornar o complexo mundo dos bancos de dados mais acessível e compreensível, sempre com um toque de humor para tornar a jornada mais leve e divertida. Se você procura insights valiosos, explicações claras e, claro, algumas boas risadas, Tércio é a pessoa certa para te guiar. Junte-se a ele para explorar, aprender e crescer nesse vasto e fascinante universo Oracle!

Prestigie o autor e deixe o seu comentário:

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Marcações:
plugins premium WordPress