jlchiappa bom dia...

Estou com um problema de limitação de tamanho em manipulação de campos clob.

Quando uso o dbms_lob.substr, a limitação dos 32767. Vc sabe me dizer como
posso romper isso?
O script funciona até os 32767, e depois para por estou de buffer.

Blob resolveria isso? e como manipulo fazendo contatenação e etc? é o mesmo
jeito?

Obrigado pela sua pasciência e presteza...

Rogério

Em 05/02/09, jlchiappa <jlchia...@yahoo.com.br> escreveu:
>
>   Relendo a resposta e pensando um pouco, acho que não ficou claro o que
> eu quis dizer com a volta coordenada de todo mundo no horário
> imediatamente anterior à operação NOLOG se houver operações LOGGING
> concorrentes, deixem-me detalhar um pouco - primeiro, o conceito de
> NOLOG é : uma operação que está INTRODUZINDO dados novos e é
> direcionada a usar blocos ACIMA dos últimos já usados, blocos 100%
> garantidamente virgens portanto. Já que é assim, se der um crash no
> banco nessa situação nós temos 100% de certeza de que ** NÃO **
> existem outras transações querendo mexer com outros registros nesses
> blocos, os blocos que estão sofrendo operação NOLOG estão
> garantidamente VAZIOS no momento (é por isso inclusive que é
> fisicamente IMPOSSÍVEL um UPDATE em modo NOLOG)..... Sendo assim, o
> que aconteceria se vc durante ou imediatamente após uma operação de
> NOLOG aconteceram e foram comitadas operações LOGGING normais e nesse
> cenário vc pedisse volta de backup dos datafiles e aplicasse os logs
> todos até o instante anterior à falha, vc recuperaria ** TOTALMENTE **
> as operações LOGGING (pois afinal de contas elas ocorreram em blocos
> que GERARM redo log normal!), só os blocos que sofreram a operação
> NOLOG é que não seriam recuperados... A questão é que muitas vezes há
> algum tipo de relacionamento lógico entre o segmento que sofreu NOLOG
> e o segmento LOGGING, e com o restore completo vc teria dados do
> segmento LOGGING sem o correspondente no segmento NOLOGGING,
> logicamente falando PODE SER que nesse cenário bastasse re-executar a
> operação NOLOGGING mas pode ser que não, isso depende da sua
> necessidade, é por isso que eu acenei com a possibilidade de restaurar
> só até o instante antes da operação NOLOG e re-executar tanto a
> operação NOLOG quanto a LOGGING....
>
> []s
>
> Chiappa
>
> --- Em oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br>,
> "jlchiappa" <jlchia...@...> escreveu
> >
> > Só complementando : como eu disse, normalmente operações NOLOG ocorrem
> > em período de carga, então via de regra não há outras transações
> > gravando/alterando na mesma tablespace, normalmente não há
> > considerações necessárias, MAS se houver em caso de crash vc voltará
> > um backup anterior dos datafiles dessa tablespace e irá aplicar os
> > logs até o momento imediatamente anterior ao início NOLOG, que é o que
> > vc tem - ou seja, na prática o banco VOLTA à situação que estava nessa
> > ocasião, as transações outras que estavam ocorrendo em paralelo à
> > operação NOLOG serão perdidas, também terão que ser
> > re-executadas...São coisas do tipo que vc TEM que estabelecer/combinar
> > muito muito direitinho com o DBA e com os OUTROS desenvolvedores , ok ?
> >
> > []s
> >
> > Chiappa
> > >
> > > Colegas, vamos botar uns detalhes aí nessa thread : Brum, primeiro de
> > > tudo se vc pedir um ALTER TABLESPACE nn NOLOGGING (ou a criar como
> > > NOLOGGING), o que vc conseguiu nesse momento com isso foi NADA, ZERO,
> > > NIENTE, ** COISA ALGUMA ** - somente quando vc ** CRIAR ** e/ou mover
> > > segmentos/tabelas pra dentro dessa tablespace sem especificar cláusula
> > > de log é que esse atributo da tablespace vai ser assumido pelo
> > > segmento/tabela, e isso é CRUCIAL, pois operações NOLOGGING são **
> > > sempre ** a nível de tabela/segmento, esse atributo NOLOG da
> > > tablespace serve apenas como default quando vc cria a
> > > tabela/segmento...O manual mesmo já nos diz :
> > >
> > > "When an existing tablespace logging attribute is changed by an ALTER
> > > TABLESPACE statement, all tables, indexes, and partitions created
> > > after the statement will have the new default logging attribute (which
> > > you can still subsequently override). The logging attribute of
> > > existing objects is not changed."
> > >
> > > Continuando, para que uma operação não gere log, *** absolutamente não
> > > basta *** que o atributo de NOLOG esteja ativo, há uma SEGUNDA
> > > exigência , é EXIGIDO que a operação esteja na lista de operações que
> > > são permitidas nesse modo : UPDATE por exemplo não é, e já cansei de
> > > ver "expertos" recomendarem ou debaterem contra a conveniência de
> > > UPDATE em tabelas nolog, o que não faz o MENOR SENTIDO... Ok ? Isto
> > > deve ficar escrupulosamente claro, o fato de vc ativar o atributo de
> > > NOLOG numa tabela por si *** NÂO QUER DIZER NADA **, não fará COISA
> > > ALGUMA se a operação não permite modo nolog, apenas umas poucas
> > > operações (como INSERT /*+ APPEND */ , CREATE TABLE, etc) permitem...
> > > Há uma TERCEIRA condição, que é a de que o modo NOLOG de operação
> > > SEJA permitido nesse banco, vc pode ativar o atributo FORCE LOGGING no
> > > seu banco, aí esse cara tem precedência sobre os anteriores, num banco
> > > com FORCELOGGING vc pode ativar o atributo num dado segmento e tentar
> > > uma operação que normalmente permite nolog que o log será SIM
> > > gerado...A Oracle criou isso para os casos em que há replicação
> > > lógica/standby, streams ou coisas do tipo, aonde o log é exigido
> > > sempre para que tais features funcionem a contento.
> > >
> > > Muito bem, agora sobre o backup : realmente, se vc tem um dado
> > > segmento com atributo NOLOG e o banco não está em FORCELOGGING, se vc
> > > iniciar uma operação que permita NOLOG às (digamos) 09:00h , não será
> > > gerado log desse ponto em diante para esse segmento, então a coisa é
> > > assim : necessariamente esse recurso é usado para cargas em ambiente
> > > DW, á noite, onde o segmento em questão ** NÃO ** está sendo usado por
> > > ninguém , NÂO HÁ absolutamente outras transações usando a tal
> > > tablespace ativamente (só consultas), então SE durante a operação, ou
> > > mesmo imediatamente após a operação vc tiver um crash, vc volta o
> > > backup anterior do(s) datafile(s) (que óbvio, está com SCN ** anterior
> > > ** à operação) e aplica os logs ** até ** às 09:00h, que vc tem,vc
> > > perde só a operação NOLOG, yes ??? Simples... O que vc faz também é ,
> > > imediatamente após a operação NOLOG, é fazer um novo backup ** DO(s)
> > > DATAFILE(S) que sofreram a operação, aí sim com esse backup se depois
> > > dele vc tiver um crash é ELE que vc vai recuperar, cfrme citado na
> > > thread não há log gerados na operação, então NUNCA vc conseguirá fazer
> > > um recover com os logs apenas E o datafile do backup anterior está
> > > antigo, vc TEM que ter backup dos datafiles APÓS A OPERAÇÃO, mesmo...
> > > O manual de Backup nos diz textualmente isso :
> > >
> > > "The presence of NOLOGGING operations must be taken into account when
> > > devising the backup and recovery strategy. When a database relies on
> > > NOLOGGING operations, the conventional recovery strategy (of
> > > recovering from the latest tape backup and applying the archived
> > > logfiles) is no longer applicable because the log files cannot recover
> > > the NOLOGGING operation."
> > >
> > > É claro, isso ainda tem que ser joeirado com a sua estratégia de uso
> > > : por exemplo, num cliente anterior (DW) o particionamento era por dia
> > > do mês, e cada partição ficava numa tablespace diferente, assim era
> > > feita a carga NOLOG na partição do dia de hoje, que era uma tablespace
> > > só pra ela, SE eu tivesse problema eu simplesmente ** dropava ** a
> > > tablespace, recriava VAZIA e re-executava o procedimento de carga do
> > > dia...
> > >
> > > []s
> > >
> > > Chiappa
> > >
> > > --- Em oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br>,
> Alexandre Brum
> > > <alexandre_brum@> escreveu
> > > >
> > > > Obrigado Carlos
> > > >
> > > > Com relação aos dados não haverá problema, pois tenho como reiniciar
> > > a carga dos dados. O meu receio maior é quanto a recuperar o datafile
> > > dessa tablespace em no logging. Se o BD por exemplo, iria reconhecer
> > > um datafile de um cold backup anterior, mesmo com os datafiles das
> > > outras tablespaces, controlfile estarem numa nova versão.
> > > >
> > > >
> > > > Fique com Deus.
> > > > Um grande abraço.
> > > >
> > > > Att.
> > > > Alexandre Brum
> > > >
> > > >
> > > >
> > > >
> > > > ________________________________
> > > > De: Carlos E. Gorges <carlos.gorges@>
> > > > Para: oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br>
> > > > Enviadas: Terça-feira, 3 de Fevereiro de 2009 16:59:07
> > > > Assunto: Re: [oracle_br] Re: Recuperação de Tablespace em no logging
> > > >
> > > >
> > > > Boa tarde,
> > > >
> > > > Depende do tipo de backup que você faz.
> > > >
> > > > Em um cold backup, termine o banco com immediate, não com abort
> (ou ao
> > > > menos force um checkpoint e espere ele terminar)... o abort faz com
> > > > que o banco execute o restore no startup e com nologging não há
> dados
> > > > no redo para o restore.
> > > > Em um hot backup (expdb/export, etc) não há problema, pois os blocos
> > > > são lidos logicamente (datafiles, undo e buffer cache) e não
> > > > fisicamente do disco, pegando as informações corretas via leitura
> > > > consistente.
> > > > Em um backup baseado em archive, você NÃO terá as informações dessas
> > > > alterações, já que o archive é na verdade o redolog que encheu e com
> > > > nologging as informações dos blocos de dados alterados não vão
> para o
> > > > redolog... você conseguirá fazer o recover: os datafiles ficarão
> > > > legiveis pelo oracle mas em nível de dados eles provavelmente
> ficarão
> > > > inconsistentes, além da estrutura dos metadados e índices que
> ficarão
> > > > incorretas de acordo com os dados da tabela.
> > > >
> > > > cya[];
> > > > Carlos E. Gorges <carlos.gorges@ gmail.com>
> > > >
> > > > 2009/2/3 alexandre_brum <alexandre_brum@ yahoo.com. br>:
> > > > > Carlos
> > > > >
> > > > > Sim. Sei que irei perder esses dados. Mas no caso do datafile
> dessa
> > > > > tablespace se corromper, como seria o processo de restore do
> > backup a
> > > > > fim de que eu possa novamente ter essa tablespace disponível?
> > > > >
> > > > > Obrigado.
> > > > >
> > > > > Att.
> > > > > Alexandre Brum
> > > > >
> > > > > --- Em oracle...@yahoogrup os.com.br, "Carlos E. Gorges"
> > > > > <carlos.gorges@ ...> escreveu
> > > > >
> > > > >>
> > > > >> Boa tarde,
> > > > >>
> > > > >> O nologging irá desligar parte da geração do redolog,
> incluindo os
> > > > >> blocos de dados alterados no DML. Como esses dados ficarão em
> > memória
> > > > >> até ser descarregados para os datafiles em um checkpoint e não
> > estão
> > > > >> em redo (disco), em caso de crash na máquina/banco os dados em
> > > memória
> > > > >> (SGA->Buffer cache) serão perdidos e consequentemente esses
> blocos
> > > > >> alterados também serão perdidos. O resultado será um segmento
> > em uma
> > > > >> versão (SCN) anterior ou parcial... Note que se algum
> datafile seja
> > > > >> corrompido, por bug ou problema no subsistema de I/O por
> exemplo, o
> > > > >> log não vai adiantar nada de qualquer modo...
> > > > >>
> > > > >> Em resumo: não há recuperação :-)
> > > > >>
> > > > >> cya[];
> > > > >> Carlos E. Gorges <carlos.gorges@ ...>
> > > > >>
> > > > >> 2009/2/3 Alexandre Brum <alexandre_brum@ ...>:
> > > > >> > Prezados
> > > > >> >
> > > > >> > Durante um processo de carga pretendo colocar a tablespace
> desse
> > > > > usuário da
> > > > >> > carga em no logging para agilizar a carga. Entretanto, tenho
> > > > > dúvidas de como
> > > > >> > seria a recuperação dessa tablespace, se por algum motivo,
> > durante
> > > > > a carga,
> > > > >> > os datafiles dessa tablespace se corrompam. Como seria a
> > > > > recuperação dessa
> > > > >> > tablespace?
> > > > >> >
> > > > >> > Muito obrigado.
> > > > >> > Fique com Deus.
> > > > >> > Um grande abraço.
> > > > >> >
> > > > >> > Att.
> > > > >> > Alexandre Brum
> > > >
> > > >
> > > >
> > > > Veja quais são os assuntos do momento no Yahoo! +Buscados
> > > > http://br.maisbuscados.yahoo.com
> > > >
> > > > [As partes desta mensagem que não continham texto foram removidas]
> > > >
> > >
> >
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]

Responder a