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"

Responder a