Fechou! estamos aqui para apreender um com outros. Apreendi muitas coisas aqui no Grupo. Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ O tic-tac do relógio me lembra de algo muito importante que esta acontecendo: estamos vivos. "Joana de Souza Schmitz Croxato"
________________________________ De: Fabio Prado <fbifa...@gmail.com> Para: oracle_br@yahoogrupos.com.br Enviadas: Terça-feira, 15 de Outubro de 2013 17:24 Assunto: Re: [oracle_br] Bkp de objetos no banco Pois é Alessandro, tratando-se de objetos como tabelas eu até sabia disso, mas na minha cabeça achava que seria diferente com objetos PL/SQL. Agora que descobri a verdade, faz todo sentido funcionar também com PL/SQL, pois qq objeto do BD é armazenado internamente em tabelas do DD. Valeu pela dica! []s Em 15 de outubro de 2013 18:13, Alessandro Lúcio Cordeiro da Silva <alecordeirosi...@yahoo.com.br> escreveu: > >Olá Fabio, > > >Só para te esclarecer, os comandos DDL são transacionais, eles simplesmente >tem uma instrução COMMIT no final, para proteger os dicionarios de dados, como >John Watson explica: > > >"The COMMIT and ROLLBACK statements apply only to DML. You cannot roll back a >DDL statement: once executed, it is immediately durable. If it were possible >to see the >source code for (for example) the CREATE TABLE command, it would be obvious >why. When you create a table, you are in fact doing a transaction against some >data dictionary >tables: at the very least, you are inserting a row into SYS.TAB$, a data >dictionary table with one row to define every table in the database, and one >or more rows into SYS.COL$, >a data dictionary table with one row for the definition of every column of >every table in the database. Then the command concludes with a COMMIT. This is >to protect the >data dictionary: if the COMMIT were not built into the CREATE TABLE command, >the possibility of an incomplete transaction would arise, and an incomplete >transaction >in the data dictionary could have appalling side effects." > >Alessandro Lúcio Cordeiro da Silva > Analista de Sistema >þ http://alecordeirosilva.blogspot.com/ >O tic-tac do relógio me lembra de algo muito importante que esta acontecendo: >estamos vivos. > "Joana de Souza Schmitz Croxato" > > > > >________________________________ > De: Fabio Prado <fbifa...@gmail.com> >Para: oracle_br@yahoogrupos.com.br >Enviadas: Terça-feira, 15 de Outubro de 2013 15:55 >Assunto: Re: [oracle_br] Bkp de objetos no banco > > > > >Vivendo e aprendendo! > > >O procedimento que o Alessandro Lúcio passou funciona sim. Acabei de testar. > > >Como a gravação de objetos PL/SQL não é transacional (eles ficam gravados >diretamente no DD), conceitualmente achei que eles não geravam UNDO e que não >dava para usar FLASHBACK query ou version, pois essas tecnologias utilizam-se >de dados de UNDO. > > >Agradeço por ter aprendido isso! > > >[]s > > > > > > > > > >Em 15 de outubro de 2013 15:57, Alessandro Lúcio Cordeiro da Silva ><alecordeirosi...@yahoo.com.br> escreveu: > > >> >>Vitor, >> >> >> Existe uma VIEW que contem o código SQL, é a DBA_SOURCE, eu tentei >>executar um flashback nesta view e pra mim deu privilegios insuficiente, não >>sei se é somente o DBA dar acesso a flashback nesta view ou a ORACLE fecha >>acesso nela. mas se você fizer o select sem o flashback esta view tem o >>codigos das procedures, function entre outros objetos. Tenta ver de com DBA >>se o ele consegue com a conta do SYS. >> >> >>select * >> from dba_source AS OF TIMESTAMP (SYSTIMESTAMP-INTERVAl '3' DAY) S >> where s.owner = 'SYS' >> and s.name = 'OWA_UTIL' >> and s.TYPE = 'PACKAGE BODY' >> order by line; >> >> >>OBS.: Agora não tenho nenhum banco de teste para verificar isso, somente os >>banco de producao que não tenho tantos privilegios. >> >>Alessandro Lúcio Cordeiro da Silva >> Analista de Sistema >>þ http://alecordeirosilva.blogspot.com/ >> >> >> >> >> >>________________________________ >> De: Fabio Prado <fbifa...@gmail.com> >>Para: oracle_br@yahoogrupos.com.br >>Enviadas: Terça-feira, 15 de Outubro de 2013 14:11 >>Assunto: Re: [oracle_br] Bkp de objetos no banco >> >> >> >> >>Infelizmente não! >> >> >> >>Em 15 de outubro de 2013 15:04, Victor Freidinger >><victor_freidin...@yahoo.com.br> escreveu: >> >> >>> >>>Olá Fábio, >>> >>>Obrigado pelo retorno. >>>Realmente, não há o que fazer? Não há uma tabela v$ que eu consiga consultar >>>os códigos utilizados nos objetos? >>>Tem a v$sql que eu consigo ver apenas selects, updates, etc., agora o código >>>dentro de um objeto eu não encontrei. >>> >>>Obrigado. >>> >>> >>> >>> >>> >>> >>>________________________________ >>> De: Fabio Prado <fbifa...@gmail.com> >>>Para: oracle_br@yahoogrupos.com.br >>>Enviadas: Terça-feira, 15 de Outubro de 2013 15:00 >>>Assunto: Re: [oracle_br] Bkp de objetos no banco >>> >>> >>> >>> >>> >>> >>>Victor, neste caso, só um backup do BD ou Flashback Database (se estiver >>>habilitado), poderá te ajudar. Vc vai ter que pedir ao DBA responsável pelo >>>BD, fazer a restauração para vc. >>> >>> >>>Uma forma de evitar este tipo de problema no futuro e possibilitar uma >>>recuperação bem rápida do objeto, através de simples instruções SQL, é criar >>>o repositório de metadados que eu apresento no artigo: >>>http://www.fabioprado.net/2012/06/repositorio-de-metadados-no-oracle.html >>> >>> >>>[]s >>> >>> >>>Fábio Prado >>> >>> >>> >>>Em 15 de outubro de 2013 14:48, Victor Freidinger >>><victor_freidin...@yahoo.com.br> escreveu: >>> >>> >>>> >>>>Olá pessoal, >>>> >>>> >>>>Estou com um problema desse nível: >>>> >>>> >>>>Criei recentemente uma procedure em um ambiente de desenvolvimento e >>>>solicitei ao usuário testar todo o processo. >>>>Depois de algum tempo, o usuário testou só que não me passou o retorno. >>>>Acabou que caindo no esquecimento e a procedure que estava no banco foi >>>>perdida pela atualização do sistemas e eu não tinha um bkp desse objeto. >>>>Na verdade já existia uma procedure com mesmo nome e eu apenas alterei >>>>algumas coisas para testar e, após os testes, iria pegar o objeto ou >>>>corrigir algum outro problema. >>>>Quando foi atualizado a nova versão do sistema, apagou tudo. >>>>Há como eu rever o objeto criado anteriormente? >>>>Ou alguma forma de eu ver o create procedure feito anteriormente(que ai eu >>>>conseguiria ver todo o conteúdo e restaurar)? >>>> >>>> >>>>Obrigado desde já. >>>> >>> >>> >>> >>>-- >>> >>>Fábio Prado >>>www.fabioprado.net >>>"Compartilhando conhecimentos e treinando profissionais em Bancos de Dados >>>Oracle" >>> >>> >>> >>> >>> >> >> >> >>-- >> >>Fábio Prado >>www.fabioprado.net >>"Compartilhando conhecimentos e treinando profissionais em Bancos de Dados >>Oracle" >> >> >> > > > >-- > >Fábio Prado >www.fabioprado.net >"Compartilhando conhecimentos e treinando profissionais em Bancos de Dados >Oracle" > > > -- Fábio Prado www.fabioprado.net "Compartilhando conhecimentos e treinando profissionais em Bancos de Dados Oracle"