OK Chiappa. Bom complemento! []s
Em 15 de outubro de 2013 19:00, J. Laurindo Chiappa <jlchia...@yahoo.com.br>escreveu: > ** > > > Na verdade cabe um adendo : não é "qualquer objeto do BD" que fica > armazenado em tabelas (fisicas, reais) internas/do DD , mas sim os objetos > que PRECISAM PERDURAR após shutdown/reboot/fechamento da instãncia, como > por exemplo os objetos internos que guardam/registram estruturas do RDBMS > (ie, colunas de tabelas, código PL/SQL, etc, etc) : espertamente, objetos > internos do database que não precisam perdurar / sobreviver ao fechamento > da instância (como os que guardam infoirmações dos múltiplos caches do > RDBMS, por exemplo) a Oracle só armazena em tabelas internas de memória (as > X$) , que (essas sim) não são transacionais, não geram undo/redo, não são > multi-usuárias, não são acessadas via SQL.... > Aliás, esse é um ponto legal de saber : imho sabiamente, a Oracle *** > nunca *** caiu do canto da sereia de melhorar performance maceteando/não > garantindo propriedades de ACID nas suas tabelas internas físicas, e/ou as > acessar sem ser via SQL - desde Muitos Anos atrás, ela SEMPRE > transaciona/versiona as suas tabelas internas (gerando UNDO e REDO, que nem > nóis), as acessa via SQL, enfim, come o mesmo prato que nós quando > acessamos/usamos as nossas tabelas de dados... > > []s > > Chiappa > > --- Em oracle_br@yahoogrupos.com.br, Fabio Prado <fbifabio@...> escreveu > > > > 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 < > > alecordeirosilva@...> 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 <fbifabio@...> > > > *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 < > > > alecordeirosilva@...> escreveu: > > > > > > ** > > > > > > Vitor, > > > <http://br-mg5.mail.yahoo.com/neo/launch#> > > > 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 <fbifabio@...> > > > *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_freidinger@...> 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 <fbifabio@...> > > > *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_freidinger@...> 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" > > > > > -- Fábio Prado www.fabioprado.net "Compartilhando conhecimentos e treinando profissionais em Bancos de Dados Oracle"