- Este tópico contém 12 respostas, 5 vozes e foi atualizado pela última vez 14 anos, 9 meses atrás por
felipeg.
-
AutorPosts
-
21 de maio de 2011 às 12:21 am #99296
rman
ParticipanteFazer EXP/IMP com o banco online é o procedimento correto ?
Tenho o seguinte cenario:
Uma base de produção e uma base de homologação em maquinas diferentes. De tempos em tempos temos que atualizar a base de homologação com os dados da base de produção.
Problema a base de homologação é importada inconsistente.
Temos uma tabela chamada GERADORSEQUENCIA, por algum motivo o projeto não utilizou as SEQUENCE do Oracle para geração das PK. Então temos na tabela, o nome da tabela e a sequencia atual. A inconsistência percebida é seguinte: tabela que iniciam com o nome depois de “G” da erro de PK ao tentar inserir um novo registro.
O EXP exporta as tabelas em ordem alfabetica. O EXP nesta base dura um tempo em horas. Como a base está on line e em produção, todas as tabelas estão sofrendo alterações (INSERT,UPDATE,DELETE).
Exemplo:
As 13:00 o exp passa pela tabela GERADORSEQUENCIA, e temos:
nome_tabela – sequencia
pedido – 50As 14:00 o exp passa pela tabela PEDIDO, e temos:
codigo – data
85 – 2011-05-20Após importar isso na base de homologação, ao tentar inserir o pedido 51 dará erro de PK, pois os pedidos já estão em 85.
Perguntando para o felipeg em outro tópico, ele me disse que em EXP/IMP não se aplica Archives…
21 de maio de 2011 às 12:29 am #99297felipeg
Participante[quote=”rman”:3azzy9q3]Fazer EXP/IMP com o banco online é o procedimento correto ?
Tenho o seguinte cenario:
Uma base de produção e uma base de homologação em maquinas diferentes. De tempos em tempos temos que atualizar a base de homologação com os dados da base de produção.
Problema a base de homologação é importada inconsistente.
Temos uma tabela chamada GERADORSEQUENCIA, por algum motivo o projeto não utilizou as SEQUENCE do Oracle para geração das PK. Então temos na tabela, o nome da tabela e a sequencia atual. A inconsistência percebida é seguinte: tabela que iniciam com o nome depois de “G” da erro de PK ao tentar inserir um novo registro.
O EXP exporta as tabelas em ordem alfabetica. O EXP nesta base dura um tempo em horas. Como a base está on line e em produção, todas as tabelas estão sofrendo alterações (INSERT,UPDATE,DELETE).
Exemplo:
As 13:00 o exp passa pela tabela GERADORSEQUENCIA, e temos:
nome_tabela – sequencia
pedido – 50As 14:00 o exp passa pela tabela PEDIDO, e temos:
codigo – data
85 – 2011-05-20Após importar isso na base de homologação, ao tentar inserir o pedido 51 dará erro de PK, pois os pedidos já estão em 85.
Perguntando para o felipeg em outro tópico, ele me disse que em EXP/IMP não se aplica Archives…[/quote]
Rman,
Eu sugiro usar o RMAN para realizar esta atividade.
http://download.oracle.com/docs/cd/B193 … m#BGBCEBJG
Atenciosamente,
Felipe.21 de maio de 2011 às 12:36 am #99298rman
ParticipanteFelipe,
Digamos que a gerencia não irá aceitar o uso do RMAN como solução, e temos que continuar a fazer por meio do EXP/IMP, tem solução ?
21 de maio de 2011 às 12:53 am #99299CleitonHanzen
ParticipantePq não fazer o export de forma consistente??? Quando gerado de forma consistente, todos os dados “apontarão” para a hora de ínicio do export e todas as alterações de dados posteriores ao ínicio serão “ignoradas” pelo export…
abs
21 de maio de 2011 às 12:57 am #99300rman
Participante[quote=”CleitonHanzen”:26kywdym]Pq não fazer o export de forma consistente??? Quando gerado de forma consistente, todos os dados “apontarão” para a hora de ínicio do export e todas as alterações de dados posteriores ao ínicio serão “ignoradas” pelo export…
abs[/quote]
Seria simplesmente passar no EXP o parametro CONSISTENT=Y, e o problema está resolvido ?
21 de maio de 2011 às 2:06 am #99301burga
Participante[quote=”rman”:3j9d66os][quote=”CleitonHanzen”:3j9d66os]Pq não fazer o export de forma consistente??? Quando gerado de forma consistente, todos os dados “apontarão” para a hora de ínicio do export e todas as alterações de dados posteriores ao ínicio serão “ignoradas” pelo export…
abs[/quote]
Seria simplesmente passar no EXP o parametro CONSISTENT=Y, e o problema está resolvido ?[/quote]
Exatamente isso que o CONSISTENT=Y faz… Só fique atento pra ver se o tempo de retenção dos dados é compatível com o tempo do seu export (já que ele dura horas) e se também tem espaço suficiente pra sua UNDO manter eles durante esse período…
21 de maio de 2011 às 4:52 am #99302CleitonHanzen
ParticipanteObrigado pelo complemento Burga…. 😉
21 de maio de 2011 às 7:50 am #99303rman
Participante[quote=”burga”:2o3jlo7m][quote=”rman”:2o3jlo7m][quote=”CleitonHanzen”:2o3jlo7m]Pq não fazer o export de forma consistente??? Quando gerado de forma consistente, todos os dados “apontarão” para a hora de ínicio do export e todas as alterações de dados posteriores ao ínicio serão “ignoradas” pelo export…
abs[/quote]
Seria simplesmente passar no EXP o parametro CONSISTENT=Y, e o problema está resolvido ?[/quote]
Exatamente isso que o CONSISTENT=Y faz… Só fique atento pra ver se o tempo de retenção dos dados é compatível com o tempo do seu export (já que ele dura horas) e se também tem espaço suficiente pra sua UNDO manter eles durante esse período…[/quote]
Ao utilizar o parametro CONSISTENT=Y posso correr o risco de dar lock nas tabelas e o sistema em produção parar ?
21 de maio de 2011 às 8:32 pm #99304CleitonHanzen
ParticipanteOpá
Não, isso não vai ocorrer. O sistema poderá ser utilizado normalmente enquanto o export estiver sendo executado.
23 de maio de 2011 às 10:01 pm #99312vieri
ParticipanteCONSISTENT=y
ele vai inciar a leitura das tabelas no mesmo horário…
com referência no mesmo horário.
o problema e que vc terá que ter uma estrutura de undo otimizada.OBJECT_CONSISTENT=y
irá colocar os objetos em read only, ai sim lhe trará problemas em produção…o help do export é ótimo… 😛
[oracle@admbi1 ~]$ exp help=y
Export: Release 10.2.0.3.0 – Production on Mon May 23 14:58:50 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
You can let Export prompt you for parameters by entering the EXP
command followed by your username/password:Example: EXP SCOTT/TIGEROr, you can control how Export runs by entering the EXP command followed
by various arguments. To specify parameters, you use keywords:Format: EXP KEYWORD=value or KEYWORD=(value1,value2,...,valueN) Example: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR) or TABLES=(T1:P1,T1:P2), if T1 is partitioned tableUSERID must be the first parameter on the command line.
Keyword Description (Default) Keyword Description (Default)
USERID username/password FULL export entire file (N)
BUFFER size of data buffer OWNER list of owner usernames
FILE output files (EXPDAT.DMP) TABLES list of table names
COMPRESS import into one extent (Y) RECORDLENGTH length of IO record
GRANTS export grants (Y) INCTYPE incremental export type
INDEXES export indexes (Y) RECORD track incr. export (Y)
DIRECT direct path (N) TRIGGERS export triggers (Y)
LOG log file of screen output STATISTICS analyze objects (ESTIMATE)
ROWS export data rows (Y) PARFILE parameter filename
CONSISTENT cross-table consistency(N) CONSTRAINTS export constraints (Y)OBJECT_CONSISTENT transaction set to read only during object export (N)
FEEDBACK display progress every x rows (0)
FILESIZE maximum size of each dump file
FLASHBACK_SCN SCN used to set session snapshot back to
FLASHBACK_TIME time used to get the SCN closest to the specified time
QUERY select clause used to export a subset of a table
RESUMABLE suspend when a space related error is encountered(N)
RESUMABLE_NAME text string used to identify resumable statement
RESUMABLE_TIMEOUT wait time for RESUMABLE
TTS_FULL_CHECK perform full or partial dependency check for TTS
VOLSIZE number of bytes to write to each tape volume
TABLESPACES list of tablespaces to export
TRANSPORT_TABLESPACE export transportable tablespace metadata (N)
TEMPLATE template name which invokes iAS mode exportExport terminated successfully without warnings.
24 de maio de 2011 às 10:02 pm #99319felipeg
Participante[quote=”vieri”:14tycxxo]CONSISTENT=y
ele vai inciar a leitura das tabelas no mesmo horário…
com referência no mesmo horário.
o problema e que vc terá que ter uma estrutura de undo otimizada.OBJECT_CONSISTENT=y
irá colocar os objetos em read only, ai sim lhe trará problemas em produção…o help do export é ótimo… 😛
[oracle@admbi1 ~]$ exp help=y
Export: Release 10.2.0.3.0 – Production on Mon May 23 14:58:50 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
You can let Export prompt you for parameters by entering the EXP
command followed by your username/password:Example: EXP SCOTT/TIGEROr, you can control how Export runs by entering the EXP command followed
by various arguments. To specify parameters, you use keywords:Format: EXP KEYWORD=value or KEYWORD=(value1,value2,...,valueN) Example: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR) or TABLES=(T1:P1,T1:P2), if T1 is partitioned tableUSERID must be the first parameter on the command line.
Keyword Description (Default) Keyword Description (Default)
USERID username/password FULL export entire file (N)
BUFFER size of data buffer OWNER list of owner usernames
FILE output files (EXPDAT.DMP) TABLES list of table names
COMPRESS import into one extent (Y) RECORDLENGTH length of IO record
GRANTS export grants (Y) INCTYPE incremental export type
INDEXES export indexes (Y) RECORD track incr. export (Y)
DIRECT direct path (N) TRIGGERS export triggers (Y)
LOG log file of screen output STATISTICS analyze objects (ESTIMATE)
ROWS export data rows (Y) PARFILE parameter filename
CONSISTENT cross-table consistency(N) CONSTRAINTS export constraints (Y)OBJECT_CONSISTENT transaction set to read only during object export (N)
FEEDBACK display progress every x rows (0)
FILESIZE maximum size of each dump file
FLASHBACK_SCN SCN used to set session snapshot back to
FLASHBACK_TIME time used to get the SCN closest to the specified time
QUERY select clause used to export a subset of a table
RESUMABLE suspend when a space related error is encountered(N)
RESUMABLE_NAME text string used to identify resumable statement
RESUMABLE_TIMEOUT wait time for RESUMABLE
TTS_FULL_CHECK perform full or partial dependency check for TTS
VOLSIZE number of bytes to write to each tape volume
TABLESPACES list of tablespaces to export
TRANSPORT_TABLESPACE export transportable tablespace metadata (N)
TEMPLATE template name which invokes iAS mode exportExport terminated successfully without warnings.[/quote]
Realmente o help quebra um galho!
E quando ainda rolam dúvidas a documentação oficial da Oracle é uma ótima fonte de referência,
http://download.oracle.com/docs/cd/B105 … 2/ch01.htm
Atenciosamente,
Felipe.15 de junho de 2011 às 1:43 am #99627rman
ParticipanteOuvi dizer que ao utilizar o parametro CONSISTENT=y o processo de exportação pode perder a consistencia, e simplesmente é abortado no meio do processo…
1 – O que pode causa a perda da consistencia ?
2 – Como evitar isso ?17 de junho de 2011 às 10:11 pm #99700felipeg
Participante[quote=”rman”:329yu9sp]Ouvi dizer que ao utilizar o parametro CONSISTENT=y o processo de exportação pode perder a consistencia, e simplesmente é abortado no meio do processo…
1 – O que pode causa a perda da consistencia ?
2 – Como evitar isso ?[/quote]1 – Qualquer fator que impacte no armazenamento da consistência, nesse caso a tablespace de UNDO.
Causas mais comuns
– Falta de espaço.
– Qualquer operação que altere a estrutura das tabelas, como drop/modify column, move table, drop partition, truncate table/partition2 – Acho que vendo as causas já se sabe o que fazer para evitar, por exemplo, monitorar se há alterações de estrutura, monitorar o espaço na tablespace, etc.
Atenciosamente,
Felipe. -
AutorPosts
- Você deve fazer login para responder a este tópico.