- Este tópico contém 7 respostas, 5 vozes e foi atualizado pela última vez 13 anos, 4 meses atrás por felipeg.
-
AutorPosts
-
2 de setembro de 2011 às 10:13 pm #100645DanielsonParticipante
Tenho três arquivos que compoem um dmp com varios objetos. Pretendo gerar um segundo dmp de apenas duas dessas tabelas.
Seguem os parâmetros para o imp:
USERID = SYSTEM/SYSTEM@ORAMGTST
FILE = C:DMPBD1.DMP
FILE = C:DMPBD2.DMP
FILE = C:DMPBD3.DMP
LOG = C:DMPBD.LOG
TOUSER = MGGLO
FROMUSER = MGGLO
TABLES = GLO_MEGA2000LOG,GLO_MEGA2000LOG_SQL
GRANTS = YES
BUFFER = 65545
COMMIT = YES
São ao todo 30 mil linhas relacionadas em cada tabela. A primeira foi importada com êxito, porém o erro: “instrução sql excedeu o tamanho do buffer” ocorreu próximo a linha 26000 da segunda tabela.
Portanto pergunto:
-Creio que devo aumentar o buffer para que o erro não mais ocorra. Porém, como dimensiono o buffer suficiente nesse caso?
-Se ajustar o parametro do buffer e executar a importação novamente, as linhas restantes serão importadas corretamente ou devo truncar as tabelas antes de rodar o imp?Abs!
3 de setembro de 2011 às 3:56 am #100656IshiiParticipanteOlá,
Realmente é difícil mensurar o Buffer sem ter muitas informações do log do EXP. Para a sua questão 2, sugiro ver se as tabelas tem linhas, e se tiver, sim truncar pois o import não reinicia e sim inicia novamente do começo…
[]s Ishii
3 de setembro de 2011 às 10:32 pm #100662DanielsonParticipanteObrigado Ishii.
Tentei rodar o imp sem truncar as tabelas e realmente não funcionou.
Quanto ao buffer, o estranho é que usei o mesmo do export. De qualquer forma, coloquei uns dois zeros a mais no import e funcionou.Abs!
4 de setembro de 2011 às 6:31 am #100663IshiiParticipanteOlá,
Mas lembre-se que IMPORT tem os INSERTs que não ocorrem no EXPORT, e só isso já dá uma diferença…..
[]s Ishii
ps: antes a conta básica era se o export leva uns 10 minutos o import pode chegar a 8 vezes isso, dependendo da máquina…5 de setembro de 2011 às 9:40 pm #100672vieriParticipanteA única maneira de não ter que refazer uma importação quando recebe erro é a opção de resumable, mas ela nao funciona para todo tipo de erro.
RESUMABLE suspend when a space related error is encountered(N)
RESUMABLE_NAME text string used to identify resumable statement
RESUMABLE_TIMEOUT wait time for RESUMABLE9 de setembro de 2011 às 8:52 pm #100712DanielsonParticipanteObrigado a todos!
9 de setembro de 2011 às 9:24 pm #100713rmanParticipanteTambém me deparei com o mesmo problema.
Perguntas:
1- Qual o tamanho máximo do buffer?
2- Como calcular o tamanho ideal do buffer?
9 de setembro de 2011 às 9:52 pm #100716felipegParticipante[quote=”rman”:258clswe]Também me deparei com o mesmo problema.
Perguntas:
1- Qual o tamanho máximo do buffer?
2- Como calcular o tamanho ideal do buffer?[/quote]
O Tamanho máximo possível para o buffer vai depender da quantidade de memória disponível no servidor para a tarefa.
Sobre calcular segue informação do site da Oracle
BUFFER
Default: operating system-dependent. See your Oracle operating system-specific documentation to determine the default value for this parameter.Specifies the size, in bytes, of the buffer used to fetch rows. As a result, this parameter determines the maximum number of rows in an array fetched by Export. Use the following formula to calculate the buffer size:
buffer_size = rows_in_array * maximum_row_size
If you specify zero, the Export utility fetches only one row at a time.
Tables with columns of type LONG, LOB, BFILE, REF, ROWID, LOGICAL ROWID, or DATE are fetched one row at a time.
Atenciosamente,
Felipe. -
AutorPosts
- Você deve fazer login para responder a este tópico.