OK, algumas informações a mais que podem te ajudar :

1) se essa carga hoje é feita via PL/SQL, que lê uma linha, insere uma
linha, lê uma linha, insere, aí pense  ** CARINHOSAMENTE ** na
hipótese de ter um único comando SQL INSERT /*+ APPEND */ , o NOLOG só
funciona efetivamente com SQL no formato INSERT /*+APPEND */ into
tabela (select) , um insert linha-alinha não vai se beneficiar

2) para tabela que tenha índices é FORTEMENTE recomendado vc
desabilitar os índices durante o processo de carga para máximo
benefício, pois índices ativos SEMPRE geram LOG e não é pouco, é muito

e como eu disse nas msgs, não deixe de analisar direitinho o modo de
operação no banco, se há concorrências durante a carga, quais rotinas
usam/alteram esses dados carregados e de que modo, deixe o DBA e os
outros desenvolvedores ABSOLUTAMENTE cientes do que vc quer fazer...
Pincipalmente o DBA, ele (por exemplo) pode agendar um backup online
só dos arquivos da tablespace que contém o segmento NOLOG
imediatamente após a operação NOLOG, planejamento do tipo é CRÍTICO

[]s

  Chiappa
--- Em oracle_br@yahoogrupos.com.br, Alexandre Brum
<alexandre_b...@...> escreveu
>
> Grande Chiappa
> 
> Muito obrigado pelos esclarecimentos. Tenho um processo de carga que
está demorando um tempo considerável. E refleti na hipótese de não
gerar logs dessa carga, a fim de agilizar. Mas havia ficado com muito
receio, para a situação de crash nesses datafiles e haver muita demora
para disponibilizar novamente o BD para uso. A explanação foi muito
importante, pois até então, pensava que colocando a tablespace como no
logging fosse suficiente. E tudo isso servirá de insumo para eu
abordar com o cliente e demais interessados.
> 
>  
> Obrigado.
> 
> Fique com Deus.
> Um grande abraço.
> 
> Att.
> Alexandre Brum
> 
> 
> 
> 
> ________________________________
> De: jlchiappa <jlchia...@...>
> Para: oracle_br@yahoogrupos.com.br
> Enviadas: Quinta-feira, 5 de Fevereiro de 2009 11:58:15
> Assunto: Res: Res: [oracle_br] Re: Recuperação de Tablespace em no
logging
> 
> 
> Aqui tem um conceito  importantérrimo que eu passei no e-mail original
> e vc não captou pelo jeito, vou o repetir : o atributo de NOLOG de uma
> tablespace **** NÂO SERVE PARA NADA **** além de servir como default
> se vc não especificar nada na hora de vc criar a tabela dentro da
> tablespace, o que vale para uma operação é o atributo de log/nolog DA
> TABELA, rigorosamente ****** NÂO EXISTE ****** o conceito de
> tablespace em modo nologging, é A TABELA que vai estar ou não com
> atributo nolog, tá bem ?? Esse atributo pode ter sido herdado na
> tablespace na hora do CREATE TABLE, mas em si o atributo da tablespace
> NÂO SERVE PRA NADA MAIS, Captado ? Então a sua frase "Pois tanto os
> segmentos
> quanto a tablespace estarão em nologging" não faz sentido algum , ok ?
> O que vai acontecer portanto é que apenas os blocos desses
> segmentos/tabelas que estão marcados como NOLOG ativo  (OU porque vc
> assim especificou num CREATE ou ALTER TABLE, OU porque a tablespace
> assim estava definida e na hora de criar a tabela dentro da tablespace
> vc não disse nada, ele assumiu/herdou o atributo da tablespace). ...
> ESQUEÇA a idéia de "tablespace em modo nolog" isso NÂO EXISTE, é
> segmento a segmento que vc indica para estar em nolog, ok ?
> 
> Quanto ao backup : veja, SE vc estiver em modo noarchive nesse banco,
> evidentemente não tem conversa, é o último backup cold COMPLETO que vc
> tem que voltar, não existe a figura do archived log nesse cenário, vc
> NÂO CONSEGUE recuperar uma tablespace só nem um datafile só, o banco
> inteiro será recuperado, volta à posição do backup, VAI PERDER todas
> as transações feitas após esse backup, sejam em modo log, seja em
> nolog, não importa.  Já se o banco está em archived log mode e vc teve
> um crash com perda de um datafile qquer, vc PODE optar voltar o último
> backup DESSE DATAFILE (certamente num banco em archive mode isso deve
> ser um backup hot), mas aí o banco vai (corretamente) perceber que
> esse arquivo está defasado no tempo em relação aos demais, ele vai
> portanto pedir a aplicação dos archived logs, que serão aplicados na
> ordem nesse datafile deixando-o sincronizado - ocorre que como eu
> disse em msg anterior as operações NOLOG foram feitas em blocos
> virgens, com certeza ZERADOS/vazios nesse arquivo que vc voltou, e não
> foi gerado log, então essa operação NOLOG vc ** perdeu **, sem
> possibilidade de recuperação.  O que fazer nesse caso ? Aí é o que eu
> falei, o normal é que não haja nenhum tipo de dependência lógica entre
> os dados entrados via NOLOG e os dados processados após, aí é muito
> simples, após recuperado o datafile (pois vc *** VAI TER SIM *** os
> logs gerados pelas operações log), vc simplesmente re-executa a carga
> e boa, tá tudo bem. INCLUSIVE, há diversos autores que defendem que
> nesse cenário de archived mode IMEDIATEMENTE após a operação nolog vc
> faça um backup, se for o caso apenas dos datafiles que contém o
> segmento que operou em NOLOG, nesse caso em caso de crash vc voltaria
> esses datafiles, voltaria o(s) datafile(s) que crasharam e recuperaria
> via aplicação do log normalmente. ... Esse é o caso NORMAL, COMUM e
> ROTINEIRO, ok ?
> A sugestão de voltar o banco inteiro pra posição imediatamente
> anterior à operação de nolog só seria necessária em exceções, quando
> há alguma dependência lógica contra o objeto nolog por parte dos
> objetos log que o simples reprocesso da carga não cobre, é algo
> excepcional. ..
> 
> []s
> 
> Chiappa
> 
> --- Em oracle...@yahoogrup os.com.br, Alexandre Brum
> <alexandre_brum@ ...> escreveu
> >
> > Chiappa
> > 
> > Estou pretendendo deixar a tablespace da carga sempre em nologging.
> Sendo assim, não irá gerar log, pois conforme teu e-mail anterior,
> irei criar os segmentos também como nologging. Não entedi direito com
> a mensagem que você disse: "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." Eu não terei esses logs. Pois tanto os segmentos quanto a
> tablespace estarão em nologging.
> > 
> > 
> > Fique com Deus.
> > Um grande abraço.
> > 
> > Att.
> > Alexandre Brum
> > 
> > 
> > 
> > 
> > ____________ _________ _________ __
> > De: jlchiappa <jlchiappa@ ..>
> > Para: oracle...@yahoogrup os.com.br
> > Enviadas: Quarta-feira, 4 de Fevereiro de 2009 22:32:21
> > Assunto: Res: [oracle_br] Re: Recuperação de Tablespace em no logging
> > 
> > 
> > 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...@yahoogrup os.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...@yahoogrup os.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.maisbusca dos.yahoo. com
> > > > 
> > > > [As partes desta mensagem que não continham texto foram removidas]
> > > >
> > >
> > 
> > 
> > 
> > 
> > 
> >       Veja quais são os assuntos do momento no Yahoo! +Buscados
> > http://br.maisbusca dos.yahoo. com
> > 
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> 
> 
>    
> 
> 
>       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]
>


Responder a