[oracle_br] Segurança na Camada TNS do Oraqcle
Olá senhores, tem uma situação em que temos as senhas dos usuários armazenadas em uma tabela com hash md5. Para validar basta executar um como o abaixo: select md5('minhasenha') from dual; MD5('MINHASENHA') 7C67E713A4B4139702DE1A4FAC672344 Minha duvida consiste no seguinte: Aqui mesmo no grupo já vi exemplo de conseguir ler as instruções SQLs que estão nos pacotes de rede, e como o sql contem a senha verdadeira do usuario, gostaria de saber como protejo as "conversas" entre a aplicação e o Banco de dados. Obrigado. Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3)
Re: [oracle_br] Res: CONTAINS não Retorna Dados
Obrigado Jorge Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em quarta-feira, 11 de março de 2020 14:46:10 AMT, Jorge luiz jota_l...@yahoo.com.br [oracle_br] escreveu: Bug 12618046 Certain Oracle Text functionality based on third-party technologies, including AUTO_LEXER and CTX_ENTITY, have been disabled in release 11.2.0.4 (reference Bug 12618046). For BASIC_LEXER, the usage of the INDEX_STEMS attribute values that depend on third-party technologies, is also affected. If this impacts an existing application, contact Oracle Support Services for guidance. JLVAZ Em quarta-feira, 11 de março de 2020 15:40:02 BRT, Alessandro Lúcio Cordeiro da Silva alecordeirosi...@yahoo.com.br [oracle_br] escreveu: Pessoal, O esquema que tem a tabela livro é o ERPEDU_PRODUCAO, na verdade é o schema que tem todas as tabelas do sistema, o esquema DBAEFIKASE é o esquema que uso para administrar o banco, e ele não tem nenhuma tabela de negocio, somente umas que criou para monitorar/controlar alguma tarefas administrativa do banco. A versão do Banco é Oracle 11.2.0.4 rodando em um Oracle Linux 6.5. E, possivelmente é um BUG mesmo, pois importei a tabela para o Oracle 18C e a tabela funcionou normalmente. Vejam.; sqlplus ERPEDU_PRODUCAO/disco@orpdbt05 SQL*Plus: Release 18.0.0.0.0 Production on Wed Mar 11 14:33:28 2020Version 18.1.0.0.0 Copyright (c) 1982, 2017, Oracle. All rights reserved. Last Successful login time: Wed Mar 11 2020 14:32:04 -04:00 Connected to:Oracle Database 18c EE Extreme Perf Release 18.0..0.0.0 - ProductionVersion 18.1.0.0.0 SQL> select liv_titulo from LIVRO where CONTAINS(LIV_TITULO,'direito',1) > 0 and rownum <=5; LIV_TITULO10 de dezembro de 1948: a declaracao universal do direito humanos1000 perguntas de direito civilA Republica Federativa do Brasil e o seus fundamentos na formac?o do estado democratico de direito A Republica Federativa do Brasil e o seus fundamentos na formac?o do estado democratico de direito A anencefalia e o direito a antecipac?o do parto SQL> Obrigado! Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em quarta-feira, 11 de março de 2020 12:32:28 AMT, Jose Laurindo Chiappa jlchia...@yahoo.com.br [oracle_br] escreveu: E um detalhe ** crítico ** notar que quando VOCÊ criou o índice, vc indicou um LEXER DBAEFIKASE.MIXED_CASE_LEXER_PREF : CREATE INDEX IDX_SEARCH_LIV_TITULO ON "LIVRO" ("LIV_TITULO") INDEXTYPE IS "CTXSYS"."CONTEXT" PARAMETERS ('LEXER DBAEFIKASE.MIXED_CASE_LEXER_PREF') ==> veja no MEU exemplo que eu criei o LEXER no *** MESMO schema onde estão a tabela e o índice : SCOTT@xepdb1::CONTAINER=XEPDB1> l 1 BEGIN 2 CTX_DDL.CREATE_PREFERENCE ('MIXED_CASE_LEXER_PREF','BASIC_LEXER'); 3 CTX_DDL.SET_ATTRIBUTE ('MIXED_CASE_LEXER_PREF', 'mixed_case', 'FALSE'); 4 CTX_DDL.SET_ATTRIBUTE ('MIXED_CASE_LEXER_PREF', 'base_letter', 'TRUE'); 5* END; SCOTT@xepdb1::CONTAINER=XEPDB1> / Procedimento PL/SQL concludo com sucesso. SCOTT@xepdb1::CONTAINER=XEPDB1> CREATE INDEX IDX_SEARCH_LIV_TITULO ON LIVRO (LIV_TITULO) INDEXTYPE IS 2* "CTXSYS"."CONTEXT" PARAMETERS ('LEXER MIXED_CASE_LEXER_PREF'); SCOTT@xepdb1::CONTAINER=XEPDB1> / Índice criado. ==>> EU NÃO USEI esse tal schema DBAEFIKASE NOVAMENTE, DEPOIS de confirmado que tudo está criado ok, primeiro REFAÇA o meu exemplo de tudo estar no mesmo schema , para só DEPOIS testar objetos em schemas diferentes. []s Chiappa Em quarta-feira, 11 de março de 2020 13:24:55 BRT, Jose Laurindo Chiappa jlchia...@yahoo.com.br [oracle_br] escreveu: Então, pra mim a questão é SIMPLES : como eu disse, se depois de uma verificação COMPLETA vc confirmar que além do OWNER os SCHEMAS aonde foram criados o LEXER e o índice , a Tabela onde foi criado o índice, etc, etc, estiver tudo 100% correto, só RESTA a chance de BUG na sua versão (que pra variar vc não diz qual é) OU de erro no seu procedimento (digamos, índice não atualizado, talvez) Abraços, Chiappa - Alessandro Lúcio Cordeiro da Silva alecordeirosi...@yahoo.com.br [oracle_br] Para:oracle...@yahoogrupos.com.brqua., 11 de mar. às 12:30 O OWNER é o mesmo nos dois sql's, so deixei o owner em um e no o
Re: [oracle_br] Res: CONTAINS não Retorna Dados
Pessoal, O esquema que tem a tabela livro é o ERPEDU_PRODUCAO, na verdade é o schema que tem todas as tabelas do sistema, o esquema DBAEFIKASE é o esquema que uso para administrar o banco, e ele não tem nenhuma tabela de negocio, somente umas que criou para monitorar/controlar alguma tarefas administrativa do banco. A versão do Banco é Oracle 11.2.0.4 rodando em um Oracle Linux 6.5. E, possivelmente é um BUG mesmo, pois importei a tabela para o Oracle 18C e a tabela funcionou normalmente. Vejam.; sqlplus ERPEDU_PRODUCAO/disco@orpdbt05 SQL*Plus: Release 18.0.0.0.0 Production on Wed Mar 11 14:33:28 2020Version 18.1.0.0.0 Copyright (c) 1982, 2017, Oracle. All rights reserved. Last Successful login time: Wed Mar 11 2020 14:32:04 -04:00 Connected to:Oracle Database 18c EE Extreme Perf Release 18.0.0.0.0 - ProductionVersion 18.1.0.0.0 SQL> select liv_titulo from LIVRO where CONTAINS(LIV_TITULO,'direito',1) > 0 and rownum <=5; LIV_TITULO10 de dezembro de 1948: a declaracao universal do direito humanos1000 perguntas de direito civilA Republica Federativa do Brasil e o seus fundamentos na formac?o do estado democratico de direito A Republica Federativa do Brasil e o seus fundamentos na formac?o do estado democratico de direito A anencefalia e o direito a antecipac?o do parto SQL> Obrigado! Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em quarta-feira, 11 de março de 2020 12:32:28 AMT, Jose Laurindo Chiappa jlchia...@yahoo.com.br [oracle_br] escreveu: E um detalhe ** crítico ** notar que quando VOCÊ criou o índice, vc indicou um LEXER DBAEFIKASE.MIXED_CASE_LEXER_PREF : CREATE INDEX IDX_SEARCH_LIV_TITULO ON "LIVRO" ("LIV_TITULO") INDEXTYPE IS "CTXSYS"."CONTEXT" PARAMETERS ('LEXER DBAEFIKASE.MIXED_CASE_LEXER_PREF') ==> veja no MEU exemplo que eu criei o LEXER no *** MESMO schema onde estão a tabela e o índice : SCOTT@xepdb1::CONTAINER=XEPDB1> l 1 BEGIN 2 CTX_DDL.CREATE_PREFERENCE ('MIXED_CASE_LEXER_PREF','BASIC_LEXER'); 3 CTX_DDL.SET_ATTRIBUTE ('MIXED_CASE_LEXER_PREF', 'mixed_case', 'FALSE'); 4 CTX_DDL.SET_ATTRIBUTE ('MIXED_CASE_LEXER_PREF', 'base_letter', 'TRUE'); 5* END; SCOTT@xepdb1::CONTAINER=XEPDB1> / Procedimento PL/SQL concludo com sucesso. SCOTT@xepdb1::CONTAINER=XEPDB1> CREATE INDEX IDX_SEARCH_LIV_TITULO ON LIVRO (LIV_TITULO) INDEXTYPE IS 2* "CTXSYS"."CONTEXT" PARAMETERS ('LEXER MIXED_CASE_LEXER_PREF'); SCOTT@xepdb1::CONTAINER=XEPDB1> / Índice criado. ==>> EU NÃO USEI esse tal schema DBAEFIKASE NOVAMENTE, DEPOIS de confirmado que tudo está criado ok, primeiro REFAÇA o meu exemplo de tudo estar no mesmo schema , para só DEPOIS testar objetos em schemas diferentes. []s Chiappa Em quarta-feira, 11 de março de 2020 13:24:55 BRT, Jose Laurindo Chiappa jlchia...@yahoo.com.br [oracle_br] escreveu: Então, pra mim a questão é SIMPLES : como eu disse, se depois de uma verificação COMPLETA vc confirmar que além do OWNER os SCHEMAS aonde foram criados o LEXER e o índice , a Tabela onde foi criado o índice, etc, etc, estiver tudo 100% correto, só RESTA a chance de BUG na sua versão (que pra variar vc não diz qual é) OU de erro no seu procedimento (digamos, índice não atualizado, talvez) Abraços, Chiappa - Alessandro Lúcio Cordeiro da Silva alecordeirosi...@yahoo.com.br [oracle_br] Para:oracle...@yahoogrupos.com.brqua., 11 de mar. às 12:30 O OWNER é o mesmo nos dois sql's, so deixei o owner em um e no outro coloquei.. Mas o mais intrigante é que quando pesquiso somente a palavra mediciona, o sql retorna dados.. Alessandro Lúcio Cordeiro da Silva Analista de Sistema #yiv6847206197 #yiv6847206197 -- #yiv6847206197ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv6847206197 #yiv6847206197ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv6847206197 #yiv6847206197ygrp-mkp #yiv6847206197hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv6847206197 #yiv6847206197ygrp-mkp #yiv6847206197ads {margin-bottom:10px;}#yiv6847206197 #yiv6847206197ygrp-mkp .yiv6847206197ad {padding:0 0;}#yiv6847206197 #yiv6847206197ygrp-mkp .yiv6847206197ad p {margin:0;}#yiv6847206197 #yiv6847206197ygrp-mkp .yiv6847206197ad a {color:#ff;text-decoration:none;}#yiv6847206197 #yiv6847206197ygrp-sponsor #yiv6847206197ygrp-lc {font-family:Arial;}#yiv6847206197 #yiv6
Re: [oracle_br] Res: CONTAINS não Retorna Dados
O OWNER é o mesmo nos dois sql's, so deixei o owner em um e no outro coloquei. Mas o mais intrigante é que quando pesquiso somente a palavra mediciona, o sql retorna dados. Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em quarta-feira, 11 de março de 2020 11:23:15 AMT, Jorge luiz jota_l...@yahoo.com.br [oracle_br] escreveu: Os selects são diferentes : SQL> select liv_titulo from LIVRO where CONTAINS(LIV_TITULO,'direito',1) > 0; nÒo hß linhas selecionadas SQL> select liv_titulo from ERPEDU_PRODUCAO.LIVRO where CONTAINS(LIV_TITULO,'direito and nasce',1) > 0; Não sei de onde ele está buscando o primeiro select, mas foi onde vc criou os índices. Verifique o OWNER. É complicado responder só observando, mas parece que tem algo de estranho nessa segunda execução. Abçs #yiv4032025139 #yiv4032025139 -- #yiv4032025139ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv4032025139 #yiv4032025139ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv4032025139 #yiv4032025139ygrp-mkp #yiv4032025139hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv4032025139 #yiv4032025139ygrp-mkp #yiv4032025139ads {margin-bottom:10px;}#yiv4032025139 #yiv4032025139ygrp-mkp .yiv4032025139ad {padding:0 0;}#yiv4032025139 #yiv4032025139ygrp-mkp ..yiv4032025139ad p {margin:0;}#yiv4032025139 #yiv4032025139ygrp-mkp .yiv4032025139ad a {color:#ff;text-decoration:none;}#yiv4032025139 #yiv4032025139ygrp-sponsor #yiv4032025139ygrp-lc {font-family:Arial;}#yiv4032025139 #yiv4032025139ygrp-sponsor #yiv4032025139ygrp-lc #yiv4032025139hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv4032025139 #yiv4032025139ygrp-sponsor #yiv4032025139ygrp-lc .yiv4032025139ad {margin-bottom:10px;padding:0 0;}#yiv4032025139 #yiv4032025139actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv4032025139 #yiv4032025139activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv4032025139 #yiv4032025139activity span {font-weight:700;}#yiv4032025139 #yiv4032025139activity span:first-child {text-transform:uppercase;}#yiv4032025139 #yiv4032025139activity span a {color:#5085b6;text-decoration:none;}#yiv4032025139 #yiv4032025139activity span span {color:#ff7900;}#yiv4032025139 #yiv4032025139activity span .yiv4032025139underline {text-decoration:underline;}#yiv4032025139 .yiv4032025139attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv4032025139 .yiv4032025139attach div a {text-decoration:none;}#yiv4032025139 .yiv4032025139attach img {border:none;padding-right:5px;}#yiv4032025139 .yiv4032025139attach label {display:block;margin-bottom:5px;}#yiv4032025139 .yiv4032025139attach label a {text-decoration:none;}#yiv4032025139 blockquote {margin:0 0 0 4px;}#yiv4032025139 .yiv4032025139bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv4032025139 .yiv4032025139bold a {text-decoration:none;}#yiv4032025139 dd.yiv4032025139last p a {font-family:Verdana;font-weight:700;}#yiv4032025139 dd.yiv4032025139last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv4032025139 dd.yiv4032025139last p span.yiv4032025139yshortcuts {margin-right:0;}#yiv4032025139 div.yiv4032025139attach-table div div a {text-decoration:none;}#yiv4032025139 div.yiv4032025139attach-table {width:400px;}#yiv4032025139 div.yiv4032025139file-title a, #yiv4032025139 div.yiv4032025139file-title a:active, #yiv4032025139 div.yiv4032025139file-title a:hover, #yiv4032025139 div.yiv4032025139file-title a:visited {text-decoration:none;}#yiv4032025139 div.yiv4032025139photo-title a, #yiv4032025139 div.yiv4032025139photo-title a:active, #yiv4032025139 div.yiv4032025139photo-title a:hover, #yiv4032025139 div.yiv4032025139photo-title a:visited {text-decoration:none;}#yiv4032025139 div#yiv4032025139ygrp-mlmsg #yiv4032025139ygrp-msg p a span.yiv4032025139yshortcuts {font-family:Verdana;font-size:10px;font-weight:normal;}#yiv4032025139 .yiv4032025139green {color:#628c2a;}#yiv4032025139 .yiv4032025139MsoNormal {margin:0 0 0 0;}#yiv4032025139 o {font-size:0;}#yiv4032025139 #yiv4032025139photos div {float:left;width:72px;}#yiv4032025139 #yiv4032025139photos div div {border:1px solid #66;min-height:62px;overflow:hidden;width:62px;}#yiv4032025139 #yiv4032025139photos div label {color:#66;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}#yiv4032025139 #yiv4032025139reco-category {font-size:77%;}#yiv4032025139 #yiv4032025139reco-desc {font-size:77%;}#yiv4032025139 .yiv4032025139replbq {margin:4px;}#yiv4032025139 #yiv4032025139ygrp-actbar div a:first-child {margin-right:2px;padding-right:5px;}#yiv40320
[oracle_br] CONTAINS não Retorna Dados
Olá Senhores, Estou com uma situação que realmente não consigo entender. Existe muitos livros com a palavra direito e quando uso o CONTAINS o Oracle não me retorna nenhuma linha. Veja como fiz * Criei uma preferencia para se case-insentive e ignorar acentos. BEGIN CTX_DDL.CREATE_PREFERENCE ('MIXED_CASE_LEXER_PREF','BASIC_LEXER'); CTX_DDL.SET_ATTRIBUTE('MIXED_CASE_LEXER_PREF', 'mixed_case', 'FALSE'); CTX_DDL.SET_ATTRIBUTE ('MIXED_CASE_LEXER_PREF', 'base_letter', 'TRUE'); END; / * Depois criei o index sobre a coluna LIV_TITULO. CREATE INDEX IDX_SEARCH_LIV_TITULO ON "LIVRO" ("LIV_TITULO") INDEXTYPE IS "CTXSYS"."CONTEXT" PARAMETERS ('LEXER DBAEFIKASE.MIXED_CASE_LEXER_PREF') Quando Executo o SQL veja o que ocorre; SQL> select liv_titulo from LIVRO where CONTAINS(LIV_TITULO,'direito',1) > 0; nÒo hß linhas selecionadas SQL> select liv_titulo from ERPEDU_PRODUCAO.LIVRO where CONTAINS(LIV_TITULO,'direito and nasce',1) > 0; LIV_TITULOComo nasce o direito Como nasce o direitoComo nasce o direito Observem que a primeira consulta e é abrangente não traz linhas, mas quando pesquiso por "direito" AND "nasce" o Oracle encontra as linhas. Alguém consegue entender este comportamento? Obrigado.
Re: [oracle_br] Re: Erro ora-19599 ao Fazer o Restore
Bom dia , Cesar, então fazer a copia a nível de S.O (scp cp ,rsync) OU via banco com "Backup Backupset" do Banco de Produção para o Banco de teste funciona normal, o problema esta se antes de ir para o servidor de teste o backup "passar" pelo servidor de Backup, não importa como, se é via S.O ou banco. Chiappa, o mapeamento é via NFS adicionando o compartilhamento em /etc/exports e depois fazendo mount no client. E como disse transferir do servidor de PRODUCAO para o de TESTE o restore funciona normalmente, o problema somente ocorre se o backup for transferido para o Servidor CentOs 7 (concentrador de Backup). Porque originalmente o backup é feito local e depois copiado para o de Backup ENTÃO só depois o servidor de TESTE usaria o backup do CentOs, mas ai dá o pau. Todavia vou fazer um teste, vou mudar o S.O de CentOs 7 para Oracle Linux 6 e vê o que ocorre. Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em quarta-feira, 17 de abril de 2019 20:09:53 BRT, jlchia...@yahoo.com.br [oracle_br] escreveu: Não sabemos se esse tal "mapeamento de rede" que vc diz que tá usando junto co o backup backupset tá corrompendo o backup, tá causando algum problema, sabemos lá ... Eu recomendaria que vc fizesse o seguinte teste : pega os arquivos de backup que foram gerados diretamente no servidor Oracle de produção, TRANSFERE eles (com ftp em modo binário, ou scp, digamos) para o servidor Oracle de testes onde vc já tem o software Oracle instalado certinho, faça um CHECKSUM dos arquivos desse backup na origem E no destino, pra confirmar que transferiu eles ok... Aí então RECUPERE o backup do controlfile e do spfile, suba uma instância em mount com esse controlfile, DELETE os metadados de backup que porventura hajam nesse controlfile, cataloga neles esses arquivos de backup que vc transferiu diretamente de Prod, e aí sim faça o procediemnto normal de RESTORE e RECOVER do banco []s Chiappa #yiv8100161120 #yiv8100161120 -- #yiv8100161120ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv8100161120 #yiv8100161120ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv8100161120 #yiv8100161120ygrp-mkp #yiv8100161120hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv8100161120 #yiv8100161120ygrp-mkp #yiv8100161120ads {margin-bottom:10px;}#yiv8100161120 #yiv8100161120ygrp-mkp .yiv8100161120ad {padding:0 0;}#yiv8100161120 #yiv8100161120ygrp-mkp .yiv8100161120ad p {margin:0;}#yiv8100161120 #yiv8100161120ygrp-mkp .yiv8100161120ad a {color:#ff;text-decoration:none;}#yiv8100161120 #yiv8100161120ygrp-sponsor #yiv8100161120ygrp-lc {font-family:Arial;}#yiv8100161120 #yiv8100161120ygrp-sponsor #yiv8100161120ygrp-lc #yiv8100161120hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv8100161120 #yiv8100161120ygrp-sponsor #yiv8100161120ygrp-lc .yiv8100161120ad {margin-bottom:10px;padding:0 0;}#yiv8100161120 #yiv8100161120actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv8100161120 #yiv8100161120activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv8100161120 #yiv8100161120activity span {font-weight:700;}#yiv8100161120 #yiv8100161120activity span:first-child {text-transform:uppercase;}#yiv8100161120 #yiv8100161120activity span a {color:#5085b6;text-decoration:none;}#yiv8100161120 #yiv8100161120activity span span {color:#ff7900;}#yiv8100161120 #yiv8100161120activity span .yiv8100161120underline {text-decoration:underline;}#yiv8100161120 .yiv8100161120attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv8100161120 .yiv8100161120attach div a {text-decoration:none;}#yiv8100161120 .yiv8100161120attach img {border:none;padding-right:5px;}#yiv8100161120 .yiv8100161120attach label {display:block;margin-bottom:5px;}#yiv8100161120 .yiv8100161120attach label a {text-decoration:none;}#yiv8100161120 blockquote {margin:0 0 0 4px;}#yiv8100161120 .yiv8100161120bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv8100161120 .yiv8100161120bold a {text-decoration:none;}#yiv8100161120 dd.yiv8100161120last p a {font-family:Verdana;font-weight:700;}#yiv8100161120 dd.yiv8100161120last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv8100161120 dd.yiv8100161120last p span.yiv8100161120yshortcuts {margin-right:0;}#yiv8100161120 div.yiv8100161120attach-table div div a {text-decoration:none;}#yiv8100161120 div.yiv8100161120attach-table {width:400px;}#yiv8100161120 div.yiv8100161120file-title a, #yiv8100161120 div.yiv8100161120file-title a:active, #yiv8100161120 div.yiv8100161120file-title a:hover, #yiv8100161120 div.yiv8100161120file-title a
[oracle_br] Erro ora-19599 ao Fazer o Restore
Olá Senhores, Meu cenário é o seguinte, temos três servidores, o primeiro é produção com Oracle 11.2.0.4 em S.O Oracle Linux 6, o segundo é um banco de teste usando Oracle 11.2.0.4 em Oracle Linux 6, e o terceiro que é um servidor para Backup usando CentOs 7. Ocorre que os backups são feito primeiramente no Servidor de Produção e depois uma cópia deste backup usando "backup backupset" para o Servidor 3 (CentOs 7), tento um disco mapeado no servidor de Produção. Ao fazer a restauração no Banco de teste (servidor 2) usando os backups que encontra-se no servidor de backup (servidor 3), a operação falha com o erro ora-19599, mesmo se a operação for lendo os backups diretamente do servidor de backup , (pois o servidor 2 também mapeia o servidor de backup), como se enviar o backup do Servidor de Backup para o Servidor de Teste. Se o "backup backupset" for feito diretamente para o servidor de teste OU o servidor de teste ler os backups que se encontram no servidor de produção, funciona normalmente. Entretanto se o backup "passar" pelo servidor de backup, tanto usando "backup backupset", como copiar o backup via S.O (Scp ou CP) o backup fica em crash. ( e o pior que o log de todas estas operações retorna com sucesso!) Eu pensei que o problema seria de disco, mas foi trocado por um HD novo, mas o problema persiste. E o que me chama mais atenção e que tenho este mesmo cenário em outros cliente e não dão problema. E também exclui o problema com "filesystemio_options=SETALL" , pois este parametro esta o padrão. Outra observação é que o disco do Servidor de Backup como de Teste usa formatação Ext4 , mudei o servidor de backup para Ext3, mas o erro persiste. Obrigado! Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3)
[oracle_br] Validar o backupset
Bom dia pessoal, Na minha estrategia de backup, eu faço primeiramente um backup Rman no disco local, e depois eu faço um backup do backup usando o "backup backupset" em um disco em outra maquina mapeada no servido. Então eu executo o VALIDATE para saber se os meus backups estão íntegros , passando o KEY do conjunto de backup. exemplo RMAN> VALIDATE BACKUPSET 22; Ocorre que o Backup como o "Backup do backup" temo o mesmo KEY, e quando executo o comando acima, o RMAN somente chega o backup do HD local, eu preciso que ele valide a cópia que esta no HD do outro servidor mapeado no servidor de Banco de dados. Alguma sugestão? Obrigado! Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3)
Assunto: [oracle_br] Lentidão no Update
Olá Marcos, tive este problema devido à coluna add ter referência a uma tabela com milhares de linha. A solução foi criar um índice sobre a nova coluna. Enviado do Yahoo Mail no Android Em Qui, 9 9e ago 9e 2018 às 17:36, Marcos Soares marcos@gmail.com [oracle_br] escreveu: Pessoal, Blz? Alguém de vocês já teve problemas de performance com updates após a adicionar uma nova coluna em uma tabela? Estamos com este problema aqui no nosso ambiente. Já analisamos e não há migração de linhas. Fizemos redefinition da tabela e não surtiu efeito. O mais estranho é que no ambiente de desenv não houve queda de performance.Obs.: ambiente de prod utiliza o Dataguard da Oracle. Oracle 11g 11.2.0.4.0 64bit Obrigado. Marcos #yiv1609448090 #yiv1609448090 -- #yiv1609448090ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv1609448090 #yiv1609448090ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv1609448090 #yiv1609448090ygrp-mkp #yiv1609448090hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv1609448090 #yiv1609448090ygrp-mkp #yiv1609448090ads {margin-bottom:10px;}#yiv1609448090 #yiv1609448090ygrp-mkp .yiv1609448090ad {padding:0 0;}#yiv1609448090 #yiv1609448090ygrp-mkp .yiv1609448090ad p {margin:0;}#yiv1609448090 #yiv1609448090ygrp-mkp .yiv1609448090ad a {color:#ff;text-decoration:none;}#yiv1609448090 #yiv1609448090ygrp-sponsor #yiv1609448090ygrp-lc {font-family:Arial;}#yiv1609448090 #yiv1609448090ygrp-sponsor #yiv1609448090ygrp-lc #yiv1609448090hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv1609448090 #yiv1609448090ygrp-sponsor #yiv1609448090ygrp-lc .yiv1609448090ad {margin-bottom:10px;padding:0 0;}#yiv1609448090 #yiv1609448090actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv1609448090 #yiv1609448090activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv1609448090 #yiv1609448090activity span {font-weight:700;}#yiv1609448090 #yiv1609448090activity span:first-child {text-transform:uppercase;}#yiv1609448090 #yiv1609448090activity span a {color:#5085b6;text-decoration:none;}#yiv1609448090 #yiv1609448090activity span span {color:#ff7900;}#yiv1609448090 #yiv1609448090activity span .yiv1609448090underline {text-decoration:underline;}#yiv1609448090 .yiv1609448090attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv1609448090 ..yiv1609448090attach div a {text-decoration:none;}#yiv1609448090 .yiv1609448090attach img {border:none;padding-right:5px;}#yiv1609448090 .yiv1609448090attach label {display:block;margin-bottom:5px;}#yiv1609448090 .yiv1609448090attach label a {text-decoration:none;}#yiv1609448090 blockquote {margin:0 0 0 4px;}#yiv1609448090 .yiv1609448090bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv1609448090 .yiv1609448090bold a {text-decoration:none;}#yiv1609448090 dd.yiv1609448090last p a {font-family:Verdana;font-weight:700;}#yiv1609448090 dd.yiv1609448090last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv1609448090 dd.yiv1609448090last p span.yiv1609448090yshortcuts {margin-right:0;}#yiv1609448090 div.yiv1609448090attach-table div div a {text-decoration:none;}#yiv1609448090 div.yiv1609448090attach-table {width:400px;}#yiv1609448090 div.yiv1609448090file-title a, #yiv1609448090 div.yiv1609448090file-title a:active, #yiv1609448090 div.yiv1609448090file-title a:hover, #yiv1609448090 div.yiv1609448090file-title a:visited {text-decoration:none;}#yiv1609448090 div.yiv1609448090photo-title a, #yiv1609448090 div.yiv1609448090photo-title a:active, #yiv1609448090 div.yiv1609448090photo-title a:hover, #yiv1609448090 div.yiv1609448090photo-title a:visited {text-decoration:none;}#yiv1609448090 div#yiv1609448090ygrp-mlmsg #yiv1609448090ygrp-msg p a span.yiv1609448090yshortcuts {font-family:Verdana;font-size:10px;font-weight:normal;}#yiv1609448090 .yiv1609448090green {color:#628c2a;}#yiv1609448090 .yiv1609448090MsoNormal {margin:0 0 0 0;}#yiv1609448090 o {font-size:0;}#yiv1609448090 #yiv1609448090photos div {float:left;width:72px;}#yiv1609448090 #yiv1609448090photos div div {border:1px solid #66;min-height:62px;overflow:hidden;width:62px;}#yiv1609448090 #yiv1609448090photos div label {color:#66;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}#yiv1609448090 #yiv1609448090reco-category {font-size:77%;}#yiv1609448090 #yiv1609448090reco-desc {font-size:77%;}#yiv1609448090 .yiv1609448090replbq {margin:4px;}#yiv1609448090 #yiv1609448090ygrp-actbar div a:first-child {margin-right:2px;padding-right:5px;}#yiv1609448090 #yiv1609448090ygrp-mlmsg {font-size:13px;font-family:Arial, helvetica, clean, sans-serif;}#yiv1609448090 #yiv1609448090ygrp-mlmsg table {font-size:inherit;font:100%;}#yiv1609448090 #yiv1609448090ygrp-mlmsg select, #yiv1609448090 input, #yiv1609448090 textarea {font:99% Arial, He
[oracle_br] Limitar o uso da CPU
Bom dia Senhores, Esta semana uma aplicação de um banco de dados Oracle 11.2.04 em linux que administro começou a consumir 100% do uso da CPU, (detectamos que era um erro de logica que fez o uso excessivo) ocorre que devido a isso as demais sessões ficaram prejudicadas. Então pensei em limitar o uso de CPU à 70%, usei o pacote DBMS_RESOURCE_MANAGER para criar um grupo de trabalha e coloquei o usuário da aplicação neste grupo com o plano. Executando uma Query problematica, apidamente percebi que a maquina começou a bater 100% do uso da CPU. Revendo o uso do resource manager, vi que se ninguém estiver usando ele não limitará, este limite seria se existisse sessões concorrentes. Entretanto fiquei com uma duvida de como configurar isso no meu ambiente. 1) O Sistema é WEB, então temos um único usuário a nível de Banco. Como especificar (ou criar mais grupo) o balanço 70% 30%? O que preciso e que a sessão problemática (se vier ter novas) não consuma todo o cpu. Obrigado! Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3)
Re: [oracle_br] [ORACLE_XE] Problema ao tentar abrir o BD
Samuel, tenta informar o caminho completo do logfile ao usar o comando recover , ao inves de digitar auto. Faça isso para todos os logfile do banco. Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em quinta-feira, 19 de abril de 2018 14:59:11 AMT, Alessandro Lúcio Cordeiro da Silva escreveu: Olá Samuel, Ao executador "SQL> recover database until cancel;" , digite ao inves de AUTO o caminho completo , com o arquivo, o logfile. Exemplo:SQL> recover database until cancel; /u01/app/oracle/log/log1.log; Você deve tentar com um LOG, tentar abrir, se não der ser vai tentando com os demais. Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Quinta-feira, 19 de Abril de 2018 9:58, "Samuel Santos samuel.gsan...@gmail.com [oracle_br]" escreveu: PessoAll; Estou com problema para colocar o BD Oracle XE (sistema operacional: Suse Linux), após uma queda de energia, o banco ao tentar 'subir' automaticamente, ele apenas foca mp status MOUNT, e não abre o banco de dados. Passos seguidos para tentar colocar o ambiente no 'AR', mas o que parece o datafile da tablespace SYSTEM está corrompida. Esta máquina NÃO possui backup. SQL> SQL> select status from v$instance; STATUS MOUNTED SQL> recover database until cancel; ORA-00279: change 13061423182 generated at needed for thread 1 Specify log: {=suggested | filename | AUTO | CANCEL} AUTO ORA-00266: name of archived log file needed ORA-10879: error signaled in parallel recovery slave ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below ORA-01194: file 1 needs more recovery to be consistent ORA-01110: data file 1: '/u01/app/oracle/oradata/XE/system.dbf' SQL> alter database open resetlogs; alter database open resetlogs * ERROR at line 1: ORA-01194: file 1 needs more recovery to be consistent ORA-01110: data file 1: '/u01/app/oracle/oradata/XE/system.dbf' Caso não haja como recuperar, seria possível efetuar o EXPORT (expdp/exp) de todos os schemas com a base de dados no status MOUNT Desde já agradeço a todos pela atenção. #yiv2618967838 -- #yiv2618967838ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv2618967838 #yiv2618967838ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv2618967838 #yiv2618967838ygrp-mkp #yiv2618967838hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv2618967838 #yiv2618967838ygrp-mkp #yiv2618967838ads {margin-bottom:10px;}#yiv2618967838 #yiv2618967838ygrp-mkp .yiv2618967838ad {padding:0 0;}#yiv2618967838 #yiv2618967838ygrp-mkp .yiv2618967838ad p {margin:0;}#yiv2618967838 #yiv2618967838ygrp-mkp .yiv2618967838ad a {color:#ff;text-decoration:none;}#yiv2618967838 #yiv2618967838ygrp-sponsor #yiv2618967838ygrp-lc {font-family:Arial;}#yiv2618967838 #yiv2618967838ygrp-sponsor #yiv2618967838ygrp-lc #yiv2618967838hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv2618967838 #yiv2618967838ygrp-sponsor #yiv2618967838ygrp-lc .yiv2618967838ad {margin-bottom:10px;padding:0 0;}#yiv2618967838 #yiv2618967838actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv2618967838 #yiv2618967838activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv2618967838 #yiv2618967838activity span {font-weight:700;}#yiv2618967838 #yiv2618967838activity span:first-child {text-transform:uppercase;}#yiv2618967838 #yiv2618967838activity span a {color:#5085b6;text-decoration:none;}#yiv2618967838 #yiv2618967838activity span span {color:#ff7900;}#yiv2618967838 #yiv2618967838activity span .yiv2618967838underline {text-decoration:underline;}#yiv2618967838 .yiv2618967838attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv2618967838 .yiv2618967838attach div a {text-decoration:none;}#yiv2618967838 .yiv2618967838attach img {border:none;padding-right:5px;}#yiv2618967838 .yiv2618967838attach label {display:block;margin-bottom:5px;}#yiv2618967838 .yiv2618967838attach label a {text-decoration:none;}#yiv2618967838 blockquote {margin:0 0 0 4px;}#yiv2618967838 .yiv2618967838bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv2618967838 .yiv2618967838bold a {text-decoration:none;}#yiv2618967838 dd..yiv2618967838last p a {font-family:Verdana;font-weight:700;}#yiv2618967838 dd.yiv2618967838last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv2618967838 dd.yiv2618967838last p span.yiv2618967838yshortcuts {margin-right:0;}#yiv2618967838
[oracle_br] Tamanho do Archives Log
Bom dia a todos, Eu tomo conta de um banco de dados Oracle 12.2.0.1 em Oracle Linux 6.5, neste banco é para aplicação Protheus. Nestes últimos meses ocorreram duas migrações, uma do Banco que era Windows e foi para Linux e outra da aplicação Protheus que foi da versão 11 para 12. O Banco tem cerca de 500 gigas, porem por estes dias o banco gera mais de 400 gigas de archives por dia, o que deu um salto muito alto, antes gerava cerca de 4 a 5 gigas. Alguem tem alguma ideia do porque disso? A solução (gerar menos archives) é somente a nivel de aplicação ou tem algo a nivel de banco a ser feito? Obrigado!
Re: [oracle_br] Erro ao Restaurar os Archivelogs
Chiappa, No caso da pergunta "Xo entender, a tua PRODUÇÃO está em Windows " Não. Até porque o linux foi instalado na mesma maquina que anteriormente era Windows. Então depois deste dois dias mencionado, produção estava rodando em linux. E teste de backup era de LINUX para LINUX. Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Quarta-feira, 18 de Outubro de 2017 17:29, "jlchia...@yahoo.com.br [oracle_br]" escreveu: Pois é, Alessandro, temos duas coisas aí : primeiro, o procedimento de restaurar um backup feito no Windows em uma máquina Linux , nesse cenário tá Absolutamente Claro que vc Não Precisa (nem deve, nem tem como Exceto gambiarrando/imitando standby físico) nem restaurar os backups de archives E muito menos os aplicar, pois Necessariamente o backup WIndows foi feito FULL e Consistente, Não demandando NADA MAIS pra poder fazer o OPEN RESETLOGS depois do simples RESTORE DATABASE, sem ** nenhum tipo de RECOVER **... Isso tá claro, né ?? E é isso o que vc disse que fez originalmente, certinho A minha dúvida é no segundo paràgrafo, quando vc disse : "Depois de uns 2 dias que o banco já estava em linux, criamos uma outra maquina linux e tentando restaurar o banco de produção nesta nova maquina (para testes/homologação de backup). Neste cenário, como o banco de produção esta fazendo backup a quente, com banco no modo open, ai precisaria dos archives. " Xo entender, a tua PRODUÇÃO está em Windows Se sim, as notas e refs todas que indicamos COMPROVAM que é absolutamente Não Suportado e/ou Documentado vc restaurar no Linux um backup a quente/inconsistente feito no Windows (que por ser à quente/não full/inconsistente PRECISA dos archives gerados lá no Windows para fazer o RECOVER DATABASE no Linux) : se foi isso que vc fez, vc deu uma sorte Imensa, vc fez um procedimento não-suportado / não garantido e que funcionou É isso que o Luis questionou anteriormente... []s Chiappa #yiv5942045981 #yiv5942045981 -- #yiv5942045981ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv5942045981 #yiv5942045981ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv5942045981 #yiv5942045981ygrp-mkp #yiv5942045981hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv5942045981 #yiv5942045981ygrp-mkp #yiv5942045981ads {margin-bottom:10px;}#yiv5942045981 #yiv5942045981ygrp-mkp .yiv5942045981ad {padding:0 0;}#yiv5942045981 #yiv5942045981ygrp-mkp .yiv5942045981ad p {margin:0;}#yiv5942045981 #yiv5942045981ygrp-mkp .yiv5942045981ad a {color:#ff;text-decoration:none;}#yiv5942045981 #yiv5942045981ygrp-sponsor #yiv5942045981ygrp-lc {font-family:Arial;}#yiv5942045981 #yiv5942045981ygrp-sponsor #yiv5942045981ygrp-lc #yiv5942045981hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv5942045981 #yiv5942045981ygrp-sponsor #yiv5942045981ygrp-lc .yiv5942045981ad {margin-bottom:10px;padding:0 0;}#yiv5942045981 #yiv5942045981actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv5942045981 #yiv5942045981activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv5942045981 #yiv5942045981activity span {font-weight:700;}#yiv5942045981 #yiv5942045981activity span:first-child {text-transform:uppercase;}#yiv5942045981 #yiv5942045981activity span a {color:#5085b6;text-decoration:none;}#yiv5942045981 #yiv5942045981activity span span {color:#ff7900;}#yiv5942045981 #yiv5942045981activity span .yiv5942045981underline {text-decoration:underline;}#yiv5942045981 .yiv5942045981attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv5942045981 .yiv5942045981attach div a {text-decoration:none;}#yiv5942045981 .yiv5942045981attach img {border:none;padding-right:5px;}#yiv5942045981 .yiv5942045981attach label {display:block;margin-bottom:5px;}#yiv5942045981 .yiv5942045981attach label a {text-decoration:none;}#yiv5942045981 blockquote {margin:0 0 0 4px;}#yiv5942045981 .yiv5942045981bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv5942045981 .yiv5942045981bold a {text-decoration:none;}#yiv5942045981 dd.yiv5942045981last p a {font-family:Verdana;font-weight:700;}#yiv5942045981 dd.yiv5942045981last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv5942045981 dd.yiv5942045981last p span.yiv5942045981yshortcuts {margin-right:0;}#yiv5942045981 div.yiv5942045981attach-table div div a {text-decoration:none;}#yiv5942045981 div.yiv5942045981attach-table {width:400px;}#yiv5942045981 div.yiv5942045981file-title a, #yiv5942045981 div.yiv5942045981file-title a:active, #yiv5942045981 div.yiv5942045981file-title a:hover, #yiv5942045981 div.yiv5942045981file-title a
Re: [oracle_br] Erro ao Restaurar os Archivelogs
Chiappa, No caso, eu não precisei aplicar archives para migrar de Linux para Windows. Foi mesmo só o Restore database e open resetlogs. Depois de uns 2 dias que o banco já estava em linux, criamos uma outra maquina linux e tentando restaurar o banco de produção nesta nova maquina (para testes/homologação de backup). Neste cenário, como o banco de produção esta fazendo backup a quente, com banco no modo open, ai precisaria dos archives. Foi neste ultimo cenário que detectamos que não conseguíamos restaurar os backup's do archives gerado pelo servidor de produção linux no linux de teste. Indo mais a fundo na nossa pesquisa, descobrimos que em produção não conseguíamos executar nenhum comando referente aos Archives (tais como crosscheck, delete obsolete archiveg all, entre outros), mas o backup archivelog sim. Para resolver este problema temos duas saídas, recriar o controlfile a partir do trace (solução adotada para o ambiente de homologação de backup) ou aguardar uns 7 a 10 dias até todos os archives de registro do Windows do ControlFile entre como obsolete e então seja excluído devido ao parâmetro control_file_record_keep_time. Em produção resolvemos aguardar este dias para a "auto-cura" do Oracle. Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Quarta-feira, 18 de Outubro de 2017 13:00, "Luis Freitas lfreita...@yahoo.com [oracle_br]" escreveu: Chiappa, No procedimento que o Alexandre mandou, ele fez o backup original com o banco em "mount", e não rodou o "recover database" antes de fazer o "open". Então não teve mesmo aplicação de archive. Talvez eu tenha entendido errado, mas lendo as notas me parece que é possível fazer backups "hot", e apenas um ultimo backup incremental precisaria ser "cold". Tem alguma mágica que acontece no dataguard que permite fazer dataguard físico entre plataformas (Item 7 da lista). Nesse caso tem aplicação de archives, mas é pelo dataguard. Atc,Luis Freitas On Wednesday, October 18, 2017 12:33 PM, "jlchia...@yahoo.com.br [oracle_br]" wrote: Imagino que sim, e deve ser alguma coisa ainda não totalmente Suportada/Documentada, pois tanto a nota "Clone Database from Windows To Linux (Lower patchset to Higher) using RMAN" (Doc ID 2143991.1) quanto a "How to Restore Crossplatform Database from OMF to OMF Format Using Rman SET NEWNAME Command" (Doc ID 1940303.1) e (principalmente) a "RMAN DUPLICATE/RESTORE/RECOVER Mixed Platform Support" (Doc ID 1079563.1) dizem que se vc optar por restaurar o Backup feito no Windows no Linux ele ** TEM *** que ser cold/consistent, pois Não é Suportada a aplicação de redo gerado no Windows no Linux, cfrme a nota "Restore From Windows To Linux using RMAN Fails" (Note 2003327.1) Acho que restaurar e aplicar os archives backupeados no Windows no banco restaurado no Linux deve Mesmo ser alguma nova feature 12cR2, OU talvez recém-incluida no último patchset/cpu/psu de versão abaixo, sim... []s Chiappa #yiv1306886399 #yiv1306886399 -- #yiv1306886399ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv1306886399 #yiv1306886399ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv1306886399 #yiv1306886399ygrp-mkp #yiv1306886399hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv1306886399 #yiv1306886399ygrp-mkp #yiv1306886399ads {margin-bottom:10px;}#yiv1306886399 #yiv1306886399ygrp-mkp .yiv1306886399ad {padding:0 0;}#yiv1306886399 #yiv1306886399ygrp-mkp .yiv1306886399ad p {margin:0;}#yiv1306886399 #yiv1306886399ygrp-mkp .yiv1306886399ad a {color:#ff;text-decoration:none;}#yiv1306886399 #yiv1306886399ygrp-sponsor #yiv1306886399ygrp-lc {font-family:Arial;}#yiv1306886399 #yiv1306886399ygrp-sponsor #yiv1306886399ygrp-lc #yiv1306886399hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv1306886399 #yiv1306886399ygrp-sponsor #yiv1306886399ygrp-lc .yiv1306886399ad {margin-bottom:10px;padding:0 0;}#yiv1306886399 #yiv1306886399actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv1306886399 #yiv1306886399activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv1306886399 #yiv1306886399activity span {font-weight:700;}#yiv1306886399 #yiv1306886399activity span:first-child {text-transform:uppercase;}#yiv1306886399 #yiv1306886399activity span a {color:#5085b6;text-decoration:none;}#yiv1306886399 #yiv1306886399activity span span {color:#ff7900;}#yiv1306886399 #yiv1306886399activity span .yiv1306886399underline {text-decoration:underline;}#yiv1306886399 .yiv1306886399attach {clear:both;display:table;font-family:Arial
Re: [oracle_br] Erro ao Restaurar os Archivelogs
No caso eu fiz um backup nivel 0 com o banco no estado mount no Windows, e autobackup do controlfile. Depois instalei o Linux neste servidor e o Oracle. Feito isso fiz o restaure do banco, com algo mais ou menos assim... run { set dbid=x; set controlfile autobackup format for device type disk to ''; catalog start with 'diretorio onde salvei o backup nivel 0 do Windows no linux'; restore controlfile from autobackup; alter database mount; sql 'alter system set db_create_file_dest="/u01/app/oracle/oradata"'; set newname for database to new; restore database; switch datafile all; alter database open resetlogs; } depois disso consegui excluir do catalogo do controlfile os backup do Windows, mas os archives dara os erros... Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Terça-feira, 17 de Outubro de 2017 14:54, "Luis Freitas lfreita...@yahoo.com [oracle_br]" escreveu: Alessandro, É um cenário bem diferente. Talvez não seja preciso recriar o controlfile depois que os archives sairem do controlfile, se no restore eles assumirem nomes compatíveis com linux. Mas um restore de um backup antigo feito no Windows em um servidor Linux, seria preciso fazer a conversão novamente no meio do restore? Atc,Luis Freitas On Tuesday, October 17, 2017 3:47 PM, "Alessandro Lúcio Cordeiro da Silva alecordeirosi...@yahoo.com.br [oracle_br]" wrote: Olá Luis, Eu descobrir o problema. Ocorre que a poucos dias este banco foi migrado do Windows Server 2012 para Oracle Linux 6.5, e por isso tinha no catalogo do controlfile alguns archives que tinha a estrutura do Windows. Por isso qualquer operação sobre os archives (crosscheck; delete archivelog all; delete obsolete...) apresentava erro. Para conseguir restaura-lo o backup do archive eu tive que recriar o controfile a partir do trace. Ocorre que PRODUCAO ainda esta com este problema, mas conforme pesquisei depois de algum tempo esta informação "lixo" do windows irá sumir por causa do parametro control_file_record_keep_time, que padrão é 07 dias. No momento vou aguardar Produção se "auto-curar" e se por uma eventualidade precisar restaurar o banco de produção, sei que preciso recriar o controlfile. Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Terça-feira, 17 de Outubro de 2017 12:43, "Luis Freitas lfreita...@yahoo.com [oracle_br]" escreveu: Alessandro, Tem algum datafile com $ no meio do nome? Atc,Luis Freitas On Monday, October 16, 2017 7:37 PM, "jlchia...@yahoo.com.br [oracle_br]" wrote: Nem precisava ter recriado : ao que parece era mesmo backup pieces não catalogados corretamente, para limpar/remover as entradas já existentes nesse controlfile vc poderia ter simplesmente conectado o RMAN nesse controlfile já existente (via RMAN TARGET=usuario/senha NOCATALOG) e daí dentro do RMAN vc fazia um DELETE de todos os backups catalogados e depois um CATALOG START WITH Mas ok, reconstruir o controlfile Também funciona no sentido de remover todos os backups nele catalogados... []s Chiappa #yiv9400259881 #yiv9400259881 -- #yiv9400259881ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv9400259881 #yiv9400259881ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv9400259881 #yiv9400259881ygrp-mkp #yiv9400259881hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv9400259881 #yiv9400259881ygrp-mkp #yiv9400259881ads {margin-bottom:10px;}#yiv9400259881 #yiv9400259881ygrp-mkp .yiv9400259881ad {padding:0 0;}#yiv9400259881 #yiv9400259881ygrp-mkp .yiv9400259881ad p {margin:0;}#yiv9400259881 #yiv9400259881ygrp-mkp .yiv9400259881ad a {color:#ff;text-decoration:none;}#yiv9400259881 #yiv9400259881ygrp-sponsor #yiv9400259881ygrp-lc {font-family:Arial;}#yiv9400259881 #yiv9400259881ygrp-sponsor #yiv9400259881ygrp-lc #yiv9400259881hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv9400259881 #yiv9400259881ygrp-sponsor #yiv9400259881ygrp-lc .yiv9400259881ad {margin-bottom:10px;padding:0 0;}#yiv9400259881 #yiv9400259881actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv9400259881 #yiv9400259881activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv9400259881 #yiv9400259881activity span {font-weight:700;}#yiv9400259881 #yiv9400259881activity span:first
Re: [oracle_br] Erro ao Restaurar os Archivelogs
Olá Luis, Eu descobrir o problema. Ocorre que a poucos dias este banco foi migrado do Windows Server 2012 para Oracle Linux 6.5, e por isso tinha no catalogo do controlfile alguns archives que tinha a estrutura do Windows. Por isso qualquer operação sobre os archives (crosscheck; delete archivelog all; delete obsolete...) apresentava erro. Para conseguir restaura-lo o backup do archive eu tive que recriar o controfile a partir do trace. Ocorre que PRODUCAO ainda esta com este problema, mas conforme pesquisei depois de algum tempo esta informação "lixo" do windows irá sumir por causa do parametro control_file_record_keep_time, que padrão é 07 dias. No momento vou aguardar Produção se "auto-curar" e se por uma eventualidade precisar restaurar o banco de produção, sei que preciso recriar o controlfile. Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Terça-feira, 17 de Outubro de 2017 12:43, "Luis Freitas lfreita...@yahoo.com [oracle_br]" escreveu: Alessandro, Tem algum datafile com $ no meio do nome? Atc,Luis Freitas On Monday, October 16, 2017 7:37 PM, "jlchia...@yahoo.com.br [oracle_br]" wrote: Nem precisava ter recriado : ao que parece era mesmo backup pieces não catalogados corretamente, para limpar/remover as entradas já existentes nesse controlfile vc poderia ter simplesmente conectado o RMAN nesse controlfile já existente (via RMAN TARGET=usuario/senha NOCATALOG) e daí dentro do RMAN vc fazia um DELETE de todos os backups catalogados e depois um CATALOG START WITH Mas ok, reconstruir o controlfile Também funciona no sentido de remover todos os backups nele catalogados... []s Chiappa #yiv5445632774 #yiv5445632774 -- #yiv5445632774ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv5445632774 #yiv5445632774ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv5445632774 #yiv5445632774ygrp-mkp #yiv5445632774hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv5445632774 #yiv5445632774ygrp-mkp #yiv5445632774ads {margin-bottom:10px;}#yiv5445632774 #yiv5445632774ygrp-mkp .yiv5445632774ad {padding:0 0;}#yiv5445632774 #yiv5445632774ygrp-mkp .yiv5445632774ad p {margin:0;}#yiv5445632774 #yiv5445632774ygrp-mkp .yiv5445632774ad a {color:#ff;text-decoration:none;}#yiv5445632774 #yiv5445632774ygrp-sponsor #yiv5445632774ygrp-lc {font-family:Arial;}#yiv5445632774 #yiv5445632774ygrp-sponsor #yiv5445632774ygrp-lc #yiv5445632774hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv5445632774 #yiv5445632774ygrp-sponsor #yiv5445632774ygrp-lc .yiv5445632774ad {margin-bottom:10px;padding:0 0;}#yiv5445632774 #yiv5445632774actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv5445632774 #yiv5445632774activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv5445632774 #yiv5445632774activity span {font-weight:700;}#yiv5445632774 #yiv5445632774activity span:first-child {text-transform:uppercase;}#yiv5445632774 #yiv5445632774activity span a {color:#5085b6;text-decoration:none;}#yiv5445632774 #yiv5445632774activity span span {color:#ff7900;}#yiv5445632774 #yiv5445632774activity span .yiv5445632774underline {text-decoration:underline;}#yiv5445632774 .yiv5445632774attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv5445632774 .yiv5445632774attach div a {text-decoration:none;}#yiv5445632774 .yiv5445632774attach img {border:none;padding-right:5px;}#yiv5445632774 .yiv5445632774attach label {display:block;margin-bottom:5px;}#yiv5445632774 .yiv5445632774attach label a {text-decoration:none;}#yiv5445632774 blockquote {margin:0 0 0 4px;}#yiv5445632774 .yiv5445632774bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv5445632774 .yiv5445632774bold a {text-decoration:none;}#yiv5445632774 dd.yiv5445632774last p a {font-family:Verdana;font-weight:700;}#yiv5445632774 dd.yiv5445632774last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv5445632774 dd.yiv5445632774last p span.yiv5445632774yshortcuts {margin-right:0;}#yiv5445632774 div.yiv5445632774attach-table div div a {text-decoration:none;}#yiv5445632774 div.yiv5445632774attach-table {width:400px;}#yiv5445632774 div.yiv5445632774file-title a, #yiv5445632774 div.yiv5445632774file-title a:active, #yiv5445632774 div.yiv5445632774file-title a:hover, #yiv5445632774 div.yiv5445632774file-title a:visited {text-decoration:none;}#yiv5445632774 div.yiv5445632774photo-title a, #yiv5445632774 div.yiv5445632774photo-title a:active, #yiv5445632774 div.yiv5445632774photo-title a:hover, #yiv5445632774 div.yiv5445632774photo-title a:visited {text-decoration:none;}#yi
Re: [oracle_br] Erro ao Restaurar os Archivelogs
Apenas informando : Sim esta maquina esta acessando o servidor remoto, pois o restore dos datafiles foram feitos acessando os backup's do servidor remoto. O restore eu queria fazer na maquina local a partir do backup dos archivelos que estão na rede. Para contornar isso eu mandei recriei o controlfile via Trace e cataloguei os backups que existiam e agora funcionou normalmente. Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Segunda-feira, 16 de Outubro de 2017 15:35, "jlchia...@yahoo.com.br [oracle_br]" escreveu: Hmmm Se o backup foi feito (e no momento está) num disco REMOTO, ie, um disco que não é Local da máquina aonde vc quer fazer o RESTORE, vc TEM CERTEZA que a nova máquina está acessando corretamente esse disco remoto ??? Com todas as Permissões adequadas ??? O teste de RESTORE sem banco de catálogo (apagando os backups já registrados nesse controlfile E recatalogando com CATALOG START WITH) anteriormente sugerido Também serve para comprovar que a nova máquina tá conseguindo ler o conteúdo desse disco remoto de boa... []s Chiappa #yiv3361245598 -- #yiv3361245598ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv3361245598 #yiv3361245598ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv3361245598 #yiv3361245598ygrp-mkp #yiv3361245598hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv3361245598 #yiv3361245598ygrp-mkp #yiv3361245598ads {margin-bottom:10px;}#yiv3361245598 #yiv3361245598ygrp-mkp .yiv3361245598ad {padding:0 0;}#yiv3361245598 #yiv3361245598ygrp-mkp .yiv3361245598ad p {margin:0;}#yiv3361245598 #yiv3361245598ygrp-mkp .yiv3361245598ad a {color:#ff;text-decoration:none;}#yiv3361245598 #yiv3361245598ygrp-sponsor #yiv3361245598ygrp-lc {font-family:Arial;}#yiv3361245598 #yiv3361245598ygrp-sponsor #yiv3361245598ygrp-lc #yiv3361245598hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv3361245598 #yiv3361245598ygrp-sponsor #yiv3361245598ygrp-lc .yiv3361245598ad {margin-bottom:10px;padding:0 0;}#yiv3361245598 #yiv3361245598actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv3361245598 #yiv3361245598activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv3361245598 #yiv3361245598activity span {font-weight:700;}#yiv3361245598 #yiv3361245598activity span:first-child {text-transform:uppercase;}#yiv3361245598 #yiv3361245598activity span a {color:#5085b6;text-decoration:none;}#yiv3361245598 #yiv3361245598activity span span {color:#ff7900;}#yiv3361245598 #yiv3361245598activity span .yiv3361245598underline {text-decoration:underline;}#yiv3361245598 .yiv3361245598attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv3361245598 .yiv3361245598attach div a {text-decoration:none;}#yiv3361245598 .yiv3361245598attach img {border:none;padding-right:5px;}#yiv3361245598 .yiv3361245598attach label {display:block;margin-bottom:5px;}#yiv3361245598 .yiv3361245598attach label a {text-decoration:none;}#yiv3361245598 blockquote {margin:0 0 0 4px;}#yiv3361245598 .yiv3361245598bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv3361245598 .yiv3361245598bold a {text-decoration:none;}#yiv3361245598 dd.yiv3361245598last p a {font-family:Verdana;font-weight:700;}#yiv3361245598 dd.yiv3361245598last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv3361245598 dd.yiv3361245598last p span.yiv3361245598yshortcuts {margin-right:0;}#yiv3361245598 div.yiv3361245598attach-table div div a {text-decoration:none;}#yiv3361245598 div.yiv3361245598attach-table {width:400px;}#yiv3361245598 div.yiv3361245598file-title a, #yiv3361245598 div.yiv3361245598file-title a:active, #yiv3361245598 div.yiv3361245598file-title a:hover, #yiv3361245598 div.yiv3361245598file-title a:visited {text-decoration:none;}#yiv3361245598 div.yiv3361245598photo-title a, #yiv3361245598 div.yiv3361245598photo-title a:active, #yiv3361245598 div.yiv3361245598photo-title a:hover, #yiv3361245598 div.yiv3361245598photo-title a:visited {text-decoration:none;}#yiv3361245598 div#yiv3361245598ygrp-mlmsg #yiv3361245598ygrp-msg p a span.yiv3361245598yshortcuts {font-family:Verdana;font-size:10px;font-weight:normal;}#yiv3361245598 .yiv3361245598green {color:#628c2a;}#yiv3361245598 .yiv3361245598MsoNormal {margin:0 0 0 0;}#yiv3361245598 o {font-size:0;}#yiv3361245598 #yiv3361245598photos div {float:left;width:72px;}#yiv3361245598 #yiv3361245598photos div div {border:1px solid #66;min-height:62px;overflow:hidden;width:62px;}#yiv3361245598 #yiv3361245598photos div label {color:#66;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}#yiv3361245598 #yi
Re: [oracle_br] Erro ao Restaurar os Archivelogs
Exatamente é um teste de Restore. O init/spfile são o que foram criados no momento que criava o Oracle em outra maquina. Antes de apresentar problema só tinha mesmo as variaveis de ambiente do ORACLE_BASE, ORACLE_HOME e ORACLE_SID, que são exatamente iguais (diretorios tb) de produção. Depois de apresentar o problema setei a "NLS_DATE_FORMAT='DD-MON-YY HH24:MI:SS' para teste, mas o mesmo erro. Posso fazer normalmente shutdown e startup mount. No momento só apareceu o erro quando tento restaurar o archivelog. Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Segunda-feira, 16 de Outubro de 2017 15:03, "Alessandro Lúcio Cordeiro da Silva alecordeirosi...@yahoo.com.br [oracle_br]" escreveu: Não. O backup esta sendo feito em um disco compartilhado do Windows. Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Segunda-feira, 16 de Outubro de 2017 14:53, "jlchia...@yahoo.com.br [oracle_br]" escreveu: Vc tem 100% de certeza disso ? Pois tipicamente erros do tipo tem a ver com argumentos inadequados para o ENV num channel, e isso tem muito mais a ver com media managers (e portanto fitas) do que discos RECHEQUE isso e nos mostre os scripts exatos que foram usados tanto para o backup quanto para a tentativa de restore dos archives, bem como um SHOW ALL no RMAN e uma lista dos parâmetros de init de banco não-default, para vermos se tem algum setting flagrantemente errado... Isso feito, veja se os backups estão MESMO corretamente catalogados no banco de catalog (se vc o usa) ou os recatalogue no controlfile se for o caso... []s Chiappa #yiv0333102594 #yiv0333102594 -- #yiv0333102594ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv0333102594 #yiv0333102594ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv0333102594 #yiv0333102594ygrp-mkp #yiv0333102594hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv0333102594 #yiv0333102594ygrp-mkp #yiv0333102594ads {margin-bottom:10px;}#yiv0333102594 #yiv0333102594ygrp-mkp .yiv0333102594ad {padding:0 0;}#yiv0333102594 #yiv0333102594ygrp-mkp .yiv0333102594ad p {margin:0;}#yiv0333102594 #yiv0333102594ygrp-mkp .yiv0333102594ad a {color:#ff;text-decoration:none;}#yiv0333102594 #yiv0333102594ygrp-sponsor #yiv0333102594ygrp-lc {font-family:Arial;}#yiv0333102594 #yiv0333102594ygrp-sponsor #yiv0333102594ygrp-lc #yiv0333102594hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv0333102594 #yiv0333102594ygrp-sponsor #yiv0333102594ygrp-lc .yiv0333102594ad {margin-bottom:10px;padding:0 0;}#yiv0333102594 #yiv0333102594actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv0333102594 #yiv0333102594activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv0333102594 #yiv0333102594activity span {font-weight:700;}#yiv0333102594 #yiv0333102594activity span:first-child {text-transform:uppercase;}#yiv0333102594 #yiv0333102594activity span a {color:#5085b6;text-decoration:none;}#yiv0333102594 #yiv0333102594activity span span {color:#ff7900;}#yiv0333102594 #yiv0333102594activity span .yiv0333102594underline {text-decoration:underline;}#yiv0333102594 .yiv0333102594attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv0333102594 .yiv0333102594attach div a {text-decoration:none;}#yiv0333102594 .yiv0333102594attach img {border:none;padding-right:5px;}#yiv0333102594 .yiv0333102594attach label {display:block;margin-bottom:5px;}#yiv0333102594 .yiv0333102594attach label a {text-decoration:none;}#yiv0333102594 blockquote {margin:0 0 0 4px;}#yiv0333102594 .yiv0333102594bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv0333102594 .yiv0333102594bold a {text-decoration:none;}#yiv0333102594 dd.yiv0333102594last p a {font-family:Verdana;font-weight:700;}#yiv0333102594 dd.yiv0333102594last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv0333102594 dd.yiv0333102594last p span.yiv0333102594yshortcuts {margin-right:0;}#yiv0333102594 div.yiv0333102594attach-table div div a {text-decoration:none;}#yiv0333102594 div.yiv0333102594attach-table {width:400px;}#yiv0333102594 div.yiv0333102594file-title a, #yiv0333102594 div.yiv0333102594file-title a:active, #yiv0333102594 div.yiv0333102594file-title a:hover, #yiv0333102594 div.yiv0333102594file-title a:visited {text-decoration:none;}#yiv0333102594 div.yiv0333102594photo-title a, #yiv0333102594 div.yiv0333102594photo-title a:active, #yiv0333102594 div.yiv0333102594
Re: [oracle_br] Erro ao Restaurar os Archivelogs
Não. O backup esta sendo feito em um disco compartilhado do Windows. Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Segunda-feira, 16 de Outubro de 2017 14:53, "jlchia...@yahoo.com.br [oracle_br]" escreveu: Vc tem 100% de certeza disso ? Pois tipicamente erros do tipo tem a ver com argumentos inadequados para o ENV num channel, e isso tem muito mais a ver com media managers (e portanto fitas) do que discos RECHEQUE isso e nos mostre os scripts exatos que foram usados tanto para o backup quanto para a tentativa de restore dos archives, bem como um SHOW ALL no RMAN e uma lista dos parâmetros de init de banco não-default, para vermos se tem algum setting flagrantemente errado... Isso feito, veja se os backups estão MESMO corretamente catalogados no banco de catalog (se vc o usa) ou os recatalogue no controlfile se for o caso... []s Chiappa #yiv8323076161 #yiv8323076161 -- #yiv8323076161ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv8323076161 #yiv8323076161ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv8323076161 #yiv8323076161ygrp-mkp #yiv8323076161hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv8323076161 #yiv8323076161ygrp-mkp #yiv8323076161ads {margin-bottom:10px;}#yiv8323076161 #yiv8323076161ygrp-mkp .yiv8323076161ad {padding:0 0;}#yiv8323076161 #yiv8323076161ygrp-mkp .yiv8323076161ad p {margin:0;}#yiv8323076161 #yiv8323076161ygrp-mkp .yiv8323076161ad a {color:#ff;text-decoration:none;}#yiv8323076161 #yiv8323076161ygrp-sponsor #yiv8323076161ygrp-lc {font-family:Arial;}#yiv8323076161 #yiv8323076161ygrp-sponsor #yiv8323076161ygrp-lc #yiv8323076161hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv8323076161 #yiv8323076161ygrp-sponsor #yiv8323076161ygrp-lc .yiv8323076161ad {margin-bottom:10px;padding:0 0;}#yiv8323076161 #yiv8323076161actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv8323076161 #yiv8323076161activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv8323076161 #yiv8323076161activity span {font-weight:700;}#yiv8323076161 #yiv8323076161activity span:first-child {text-transform:uppercase;}#yiv8323076161 #yiv8323076161activity span a {color:#5085b6;text-decoration:none;}#yiv8323076161 #yiv8323076161activity span span {color:#ff7900;}#yiv8323076161 #yiv8323076161activity span .yiv8323076161underline {text-decoration:underline;}#yiv8323076161 .yiv8323076161attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv8323076161 .yiv8323076161attach div a {text-decoration:none;}#yiv8323076161 .yiv8323076161attach img {border:none;padding-right:5px;}#yiv8323076161 .yiv8323076161attach label {display:block;margin-bottom:5px;}#yiv8323076161 .yiv8323076161attach label a {text-decoration:none;}#yiv8323076161 blockquote {margin:0 0 0 4px;}#yiv8323076161 .yiv8323076161bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv8323076161 .yiv8323076161bold a {text-decoration:none;}#yiv8323076161 dd.yiv8323076161last p a {font-family:Verdana;font-weight:700;}#yiv8323076161 dd.yiv8323076161last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv8323076161 dd.yiv8323076161last p span.yiv8323076161yshortcuts {margin-right:0;}#yiv8323076161 div.yiv8323076161attach-table div div a {text-decoration:none;}#yiv8323076161 div.yiv8323076161attach-table {width:400px;}#yiv8323076161 div.yiv8323076161file-title a, #yiv8323076161 div.yiv8323076161file-title a:active, #yiv8323076161 div.yiv8323076161file-title a:hover, #yiv8323076161 div.yiv8323076161file-title a:visited {text-decoration:none;}#yiv8323076161 div.yiv8323076161photo-title a, #yiv8323076161 div.yiv8323076161photo-title a:active, #yiv8323076161 div.yiv8323076161photo-title a:hover, #yiv8323076161 div.yiv8323076161photo-title a:visited {text-decoration:none;}#yiv8323076161 div#yiv8323076161ygrp-mlmsg #yiv8323076161ygrp-msg p a span.yiv8323076161yshortcuts {font-family:Verdana;font-size:10px;font-weight:normal;}#yiv8323076161 .yiv8323076161green {color:#628c2a;}#yiv8323076161 .yiv8323076161MsoNormal {margin:0 0 0 0;}#yiv8323076161 o {font-size:0;}#yiv8323076161 #yiv8323076161photos div {float:left;width:72px;}#yiv8323076161 #yiv8323076161photos div div {border:1px solid #66;min-height:62px;overflow:hidden;width:62px;}#yiv8323076161 #yiv8323076161photos div label {color:#66;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}#yiv8323076161 #yiv8323076161reco-category {font-size:77%;}#yiv8323076161 #yiv8323076161reco-desc {font-size:77%;}#yiv8323076161 .yiv8323076161replbq {margin:4px;}#yiv8323076161 #yiv8323076161ygrp-actbar div a:first-chil
Re: [oracle_br] Erro ao Restaurar os Archivelogs
Eu tentei das duas maneiras. Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Segunda-feira, 16 de Outubro de 2017 14:53, "jlchia...@yahoo.com.br [oracle_br]" escreveu: Vc tem 100% de certeza disso ? Pois tipicamente erros do tipo tem a ver com argumentos inadequados para o ENV num channel, e isso tem muito mais a ver com media managers (e portanto fitas) do que discos RECHEQUE isso e nos mostre os scripts exatos que foram usados tanto para o backup quanto para a tentativa de restore dos archives, bem como um SHOW ALL no RMAN e uma lista dos parâmetros de init de banco não-default, para vermos se tem algum setting flagrantemente errado... Isso feito, veja se os backups estão MESMO corretamente catalogados no banco de catalog (se vc o usa) ou os recatalogue no controlfile se for o caso... []s Chiappa #yiv8323076161 #yiv8323076161 -- #yiv8323076161ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv8323076161 #yiv8323076161ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv8323076161 #yiv8323076161ygrp-mkp #yiv8323076161hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv8323076161 #yiv8323076161ygrp-mkp #yiv8323076161ads {margin-bottom:10px;}#yiv8323076161 #yiv8323076161ygrp-mkp .yiv8323076161ad {padding:0 0;}#yiv8323076161 #yiv8323076161ygrp-mkp .yiv8323076161ad p {margin:0;}#yiv8323076161 #yiv8323076161ygrp-mkp .yiv8323076161ad a {color:#ff;text-decoration:none;}#yiv8323076161 #yiv8323076161ygrp-sponsor #yiv8323076161ygrp-lc {font-family:Arial;}#yiv8323076161 #yiv8323076161ygrp-sponsor #yiv8323076161ygrp-lc #yiv8323076161hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv8323076161 #yiv8323076161ygrp-sponsor #yiv8323076161ygrp-lc .yiv8323076161ad {margin-bottom:10px;padding:0 0;}#yiv8323076161 #yiv8323076161actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv8323076161 #yiv8323076161activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv8323076161 #yiv8323076161activity span {font-weight:700;}#yiv8323076161 #yiv8323076161activity span:first-child {text-transform:uppercase;}#yiv8323076161 #yiv8323076161activity span a {color:#5085b6;text-decoration:none;}#yiv8323076161 #yiv8323076161activity span span {color:#ff7900;}#yiv8323076161 #yiv8323076161activity span .yiv8323076161underline {text-decoration:underline;}#yiv8323076161 .yiv8323076161attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv8323076161 .yiv8323076161attach div a {text-decoration:none;}#yiv8323076161 .yiv8323076161attach img {border:none;padding-right:5px;}#yiv8323076161 .yiv8323076161attach label {display:block;margin-bottom:5px;}#yiv8323076161 .yiv8323076161attach label a {text-decoration:none;}#yiv8323076161 blockquote {margin:0 0 0 4px;}#yiv8323076161 .yiv8323076161bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv8323076161 .yiv8323076161bold a {text-decoration:none;}#yiv8323076161 dd.yiv8323076161last p a {font-family:Verdana;font-weight:700;}#yiv8323076161 dd.yiv8323076161last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv8323076161 dd.yiv8323076161last p span.yiv8323076161yshortcuts {margin-right:0;}#yiv8323076161 div.yiv8323076161attach-table div div a {text-decoration:none;}#yiv8323076161 div.yiv8323076161attach-table {width:400px;}#yiv8323076161 div.yiv8323076161file-title a, #yiv8323076161 div.yiv8323076161file-title a:active, #yiv8323076161 div.yiv8323076161file-title a:hover, #yiv8323076161 div.yiv8323076161file-title a:visited {text-decoration:none;}#yiv8323076161 div.yiv8323076161photo-title a, #yiv8323076161 div.yiv8323076161photo-title a:active, #yiv8323076161 div.yiv8323076161photo-title a:hover, #yiv8323076161 div.yiv8323076161photo-title a:visited {text-decoration:none;}#yiv8323076161 div#yiv8323076161ygrp-mlmsg #yiv8323076161ygrp-msg p a span.yiv8323076161yshortcuts {font-family:Verdana;font-size:10px;font-weight:normal;}#yiv8323076161 .yiv8323076161green {color:#628c2a;}#yiv8323076161 .yiv8323076161MsoNormal {margin:0 0 0 0;}#yiv8323076161 o {font-size:0;}#yiv8323076161 #yiv8323076161photos div {float:left;width:72px;}#yiv8323076161 #yiv8323076161photos div div {border:1px solid #66;min-height:62px;overflow:hidden;width:62px;}#yiv8323076161 #yiv8323076161photos div label {color:#66;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}#yiv8323076161 #yiv8323076161reco-category {font-size:77%;}#yiv8323076161 #yiv8323076161reco-desc {font-size:77%;}#yiv8323076161 .yiv8323076161replbq {margin:4px;}#yiv8323076161 #yiv8323076161ygrp-actbar div a:first-child {margin-right:2px;padding
Re: [oracle_br] Erro ao Restaurar os Archivelogs
Não. O backup do archivelog foi feita em disco e o restore deste tb. Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Segunda-feira, 16 de Outubro de 2017 13:57, "Vitor Junior vitorj...@gmail.com [oracle_br]" escreveu: É fita? Att,/Regards, Vitor Jr.LinkedIn Profile Em 16 de outubro de 2017 14:48, Alessandro Lúcio Cordeiro da Silva alecordeirosi...@yahoo.com.br [oracle_br] escreveu: Bom tarde pessoal, Eu estou tentado restaurar o banco de dados Oracle 11.2.0.4 em um outro servidor Oracle Linux 6.5. Primeiramente fiz a instalação do Oracle e depois fiz o Restore do Banco. Após isso precisaria aplicar os Archives Logs para poder abrir o banco com ResetLogs, mas ao tentar restaurar os archives com o backup de archives apresenta o erro abaixo: ora-07217: sltln: environment cannot be evaluated. O comando que uso é este abaixo: rman> run { SET ARCHIVELOG DESTINATION TO '/u01/backup/archives'; restore archivelog all; } Não sei o que é, pelo que pesquise é problema com variavel de ambiente, mas as variaveis ORACLE_HOME, ORACLE_BASE e ORACLE_SID estão certas, ja passou por algo deste tipo? Alessandro Lúcio Cordeiro da Silva #yiv6752110588 #yiv6752110588 -- #yiv6752110588ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv6752110588 #yiv6752110588ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv6752110588 #yiv6752110588ygrp-mkp #yiv6752110588hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv6752110588 #yiv6752110588ygrp-mkp #yiv6752110588ads {margin-bottom:10px;}#yiv6752110588 #yiv6752110588ygrp-mkp .yiv6752110588ad {padding:0 0;}#yiv6752110588 #yiv6752110588ygrp-mkp .yiv6752110588ad p {margin:0;}#yiv6752110588 #yiv6752110588ygrp-mkp .yiv6752110588ad a {color:#ff;text-decoration:none;}#yiv6752110588 #yiv6752110588ygrp-sponsor #yiv6752110588ygrp-lc {font-family:Arial;}#yiv6752110588 #yiv6752110588ygrp-sponsor #yiv6752110588ygrp-lc #yiv6752110588hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv6752110588 #yiv6752110588ygrp-sponsor #yiv6752110588ygrp-lc .yiv6752110588ad {margin-bottom:10px;padding:0 0;}#yiv6752110588 #yiv6752110588actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv6752110588 #yiv6752110588activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv6752110588 #yiv6752110588activity span {font-weight:700;}#yiv6752110588 #yiv6752110588activity span:first-child {text-transform:uppercase;}#yiv6752110588 #yiv6752110588activity span a {color:#5085b6;text-decoration:none;}#yiv6752110588 #yiv6752110588activity span span {color:#ff7900;}#yiv6752110588 #yiv6752110588activity span .yiv6752110588underline {text-decoration:underline;}#yiv6752110588 .yiv6752110588attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv6752110588 .yiv6752110588attach div a {text-decoration:none;}#yiv6752110588 .yiv6752110588attach img {border:none;padding-right:5px;}#yiv6752110588 .yiv6752110588attach label {display:block;margin-bottom:5px;}#yiv6752110588 .yiv6752110588attach label a {text-decoration:none;}#yiv6752110588 blockquote {margin:0 0 0 4px;}#yiv6752110588 .yiv6752110588bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv6752110588 .yiv6752110588bold a {text-decoration:none;}#yiv6752110588 dd.yiv6752110588last p a {font-family:Verdana;font-weight:700;}#yiv6752110588 dd.yiv6752110588last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv6752110588 dd.yiv6752110588last p span.yiv6752110588yshortcuts {margin-right:0;}#yiv6752110588 div.yiv6752110588attach-table div div a {text-decoration:none;}#yiv6752110588 div.yiv6752110588attach-table {width:400px;}#yiv6752110588 div.yiv6752110588file-title a, #yiv6752110588 div.yiv6752110588file-title a:active, #yiv6752110588 div.yiv6752110588file-title a:hover, #yiv6752110588 div.yiv6752110588file-title a:visited {text-decoration:none;}#yiv6752110588 div.yiv6752110588photo-title a, #yiv6752110588 div.yiv6752110588photo-title a:active, #yiv6752110588 div.yiv6752110588photo-title a:hover, #yiv6752110588 div.yiv6752110588photo-title a:visited {text-decoration:none;}#yiv6752110588 div#yiv6752110588ygrp-mlmsg #yiv6752110588ygrp-msg p a span.yiv6752110588yshortcuts {font-family:Verdana;font-size:10px;font-weight:normal;}#yiv6752110588 .yiv6752110588green {color:#628c2a;}#yiv6752110588 .yiv6752110588MsoNormal {margin:0 0 0 0;}#yiv6752110588 o {font-size:0;}#yiv6752110588 #yiv6752110588photos div {float:left;width:72px;}#yiv6752110588 #yiv6752110588photos div div {border:1px solid #66;min-height:62px;overflow:hidden;width:62px;}#yiv6752110588 #yiv6752110588photos di
[oracle_br] Erro ao Restaurar os Archivelogs
Bom tarde pessoal, Eu estou tentado restaurar o banco de dados Oracle 11.2.0.4 em um outro servidor Oracle Linux 6.5. Primeiramente fiz a instalação do Oracle e depois fiz o Restore do Banco. Após isso precisaria aplicar os Archives Logs para poder abrir o banco com ResetLogs, mas ao tentar restaurar os archives com o backup de archives apresenta o erro abaixo: ora-07217: sltln: environment cannot be evaluated. O comando que uso é este abaixo: rman> run { SET ARCHIVELOG DESTINATION TO '/u01/backup/archives'; restore archivelog all; } Não sei o que é, pelo que pesquise é problema com variavel de ambiente, mas as variaveis ORACLE_HOME, ORACLE_BASE e ORACLE_SID estão certas, ja passou por algo deste tipo? Alessandro Lúcio Cordeiro da Silva
Re: [oracle_br] "
Ao que parece existe alguma trigger que dispara no comando alter user que esta com erro de conversão de valores. Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Quinta-feira, 19 de Maio de 2016 11:25, "Rafael Mendonca raffaell.t...@yahoo.com [oracle_br]" escreveu: ** Oracle 11.2.0.4 EE SQL> conn xuxa/xuxa@INSTANCIA ERROR: ORA-28001: the password has expired Changing password for xuxa New password: Retype new password: ERROR: ORA-00604: error occurred at recursive SQL level 1 ORA-06502: PL/SQL: numeric or value error ORA-06512: at line 26 Password unchanged Senhores, esse problema vem ocorrendo há 2 semanas, o usuário "xuxa" possui privilégio de "ALTER USER". O profile do usuário é o DEFAULT onde todas opções estão UNLIMITED, com exceção do PASSWORD_LOCK_TIME=1; PASSWORD_GRACE_TIME=7; FAILED_LOGIN_ATTEMPTS=1; PASSWORD_VERIFY_FUNCTION=NULL Alguém pode ajudar? #yiv1434132132 #yiv1434132132 -- #yiv1434132132ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv1434132132 #yiv1434132132ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv1434132132 #yiv1434132132ygrp-mkp #yiv1434132132hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv1434132132 #yiv1434132132ygrp-mkp #yiv1434132132ads {margin-bottom:10px;}#yiv1434132132 #yiv1434132132ygrp-mkp .yiv1434132132ad {padding:0 0;}#yiv1434132132 #yiv1434132132ygrp-mkp .yiv1434132132ad p {margin:0;}#yiv1434132132 #yiv1434132132ygrp-mkp .yiv1434132132ad a {color:#ff;text-decoration:none;}#yiv1434132132 #yiv1434132132ygrp-sponsor #yiv1434132132ygrp-lc {font-family:Arial;}#yiv1434132132 #yiv1434132132ygrp-sponsor #yiv1434132132ygrp-lc #yiv1434132132hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv1434132132 #yiv1434132132ygrp-sponsor #yiv1434132132ygrp-lc .yiv1434132132ad {margin-bottom:10px;padding:0 0;}#yiv1434132132 #yiv1434132132actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv1434132132 #yiv1434132132activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv1434132132 #yiv1434132132activity span {font-weight:700;}#yiv1434132132 #yiv1434132132activity span:first-child {text-transform:uppercase;}#yiv1434132132 #yiv1434132132activity span a {color:#5085b6;text-decoration:none;}#yiv1434132132 #yiv1434132132activity span span {color:#ff7900;}#yiv1434132132 #yiv1434132132activity span .yiv1434132132underline {text-decoration:underline;}#yiv1434132132 .yiv1434132132attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv1434132132 .yiv1434132132attach div a {text-decoration:none;}#yiv1434132132 .yiv1434132132attach img {border:none;padding-right:5px;}#yiv1434132132 .yiv1434132132attach label {display:block;margin-bottom:5px;}#yiv1434132132 .yiv1434132132attach label a {text-decoration:none;}#yiv1434132132 blockquote {margin:0 0 0 4px;}#yiv1434132132 .yiv1434132132bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv1434132132 .yiv1434132132bold a {text-decoration:none;}#yiv1434132132 dd.yiv1434132132last p a {font-family:Verdana;font-weight:700;}#yiv1434132132 dd.yiv1434132132last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv1434132132 dd.yiv1434132132last p span.yiv1434132132yshortcuts {margin-right:0;}#yiv1434132132 div.yiv1434132132attach-table div div a {text-decoration:none;}#yiv1434132132 div.yiv1434132132attach-table {width:400px;}#yiv1434132132 div.yiv1434132132file-title a, #yiv1434132132 div.yiv1434132132file-title a:active, #yiv1434132132 div.yiv1434132132file-title a:hover, #yiv1434132132 div.yiv1434132132file-title a:visited {text-decoration:none;}#yiv1434132132 div.yiv1434132132photo-title a, #yiv1434132132 div.yiv1434132132photo-title a:active, #yiv1434132132 div.yiv1434132132photo-title a:hover, #yiv1434132132 div.yiv1434132132photo-title a:visited {text-decoration:none;}#yiv1434132132 div#yiv1434132132ygrp-mlmsg #yiv1434132132ygrp-msg p a span.yiv1434132132yshortcuts {font-family:Verdana;font-size:10px;font-weight:normal;}#yiv1434132132 .yiv1434132132green {color:#628c2a;}#yiv1434132132 .yiv1434132132MsoNormal {margin:0 0 0 0;}#yiv1434132132 o {font-size:0;}#yiv1434132132 #yiv1434132132photos div {float:left;width:72px;}#yiv1434132132 #yiv1434132132photos div div {border:1px solid #66;height:62px;overflow:hidden;width:62px;}#yiv1434132132 #yiv1434132132photos div label {color:#66;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}#yiv1434132132 #yiv1434132132reco-category {font-size:77%;}#yiv1434132132 #yiv1434132132reco-desc {font-size:77%;}#yiv1434132132 .yiv1434132132replbq {margin:4px;}#yiv1434132132 #yiv
Re: [oracle_br] enq: TX - row lock contention
E / 100) >= 5) ) ); v_rowid_wait varchar2(30); v_sysdate date := sysdate; v_qtde integer; begin for c in c_espera_por_lock loop if c.OBJECT_TYPE_locado in ('TABLE', 'MVIEW', 'VIEW') then begin v_rowid_wait := dbms_rowid.rowid_create ( 1, c.row_wait_obj#, c.row_wait_file#, c.row_wait_block#, c.row_wait_row# ); exception when others then v_rowid_wait := null; end; end if; /*if c.seconds_in_wait >= 300 then -- Se for mais de 5 minutos de espera, mata a sessão que esta bloqueando o registro... execute immediate c.KILL_EM_BLOCK; continue; end if;*/ insert into monitora.rowlock (RLODATE, SID_BLOCK, SERIAL_BLOCK, USER_BLOCK, MODULE_BLOCK, PROGRAM_BLOCK, TERMINAL_BLOCK, SID_WAIT, SERIAL_WAIT, USER_WAIT, MODULE_WAIT, PROGRAM_WAIT, TERMINAL_WAIT, SECONDS_IN_WAIT, EVENT_WAIT, OBJ_LOCADO, ROWID_WAIT, OBJETO_PLSQL, OBJETO_TYPE, TEXTO_SQL) values (v_sysdate, c.sid_block, c.seria_block, c.user_block, c.module_block, c.program_block, c.terminal_block, c.sid_wait, c.seria_wait, c.user_wait, c.module_wait, c.program_wait, c.terminal_wait, c.seconds_wait, c.event_wait, c.obj_locado, v_rowid_wait, c.objeto_plsql, c.objeto_plsql_type, (select s.SQL_FULLTEXT from v$sql s where sql_id = c.sql_id and rownum =1)); commit; end loop; end registra_espera_por_lock; Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Quarta-feira, 13 de Abril de 2016 9:37, "Rafael Mendonca raffaell.t...@yahoo.com [oracle_br]" escreveu: Senhores, bom dia. Cenário: Oracle Enterprise Edition 11.2.0.4 - ASM Single Instance - RH 6.0 Problema: Um determinado sistema que atende diversos estados do Brasil (cada um com seu database individual com as mesmas características citadas acima) está tendo um grande problema de LOCK de transação há uns 4 meses. Em conversa com a equipe de desenvolvimento nada mudou. No banco de dados também nada foi alterado. O engraçado é que esse mesmo sistema em outros estados não está ocorrendo esse problema de Lock TX, somente em um estado o problema de LOCK está muito agravante. Monitoramento: O que fiz foi monitorar vários aspectos do database. Primeiramente a V$SESSION_WAIT, depois a V$SESSION_EVENT e a V$SYSTEM_EVENT. Realmente a campeã dos eventos em espera é a enq: TX - row lock contention. Após a primeira análise, verifiquei as sessões ativas dos usuários que estavam sendo locados. Detectei que é sempre um UPDATE em DIVERSAS tabelas do sistema. Não é em um uma tabela ou específica ou duas, são em várias. Passei as informações para a equipe de desenvolvimento verificar a possibilidade de colocar o COMMIT; logo após algumas instruções (no caso os UPDATES detectados), mesmo assim não adiantou. Expliquei para o cliente que o grande problema de lock de transação é justamente o DESIGN da aplicação. Que isso é um comportamento normal do RDBMS Oracle, entre outros RDBMS. Mas o que o cliente questiona, é que antes não existia esse problema de lock, e que o mesmo sistema atende outros estados e o problema não se replica nesses estados. Portanto, peço ajuda aos senhores para que possam me ajudar com suas expertises. Não sei mais o que fazer em relação a esse problema. #yiv6107778046 #yiv6107778046 -- #yiv6107778046ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv6107778046 #yiv6107778046ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv6107778046 #yiv6107778046ygrp-mkp #yiv6107778046hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv6107778046 #yiv6107778046ygrp-mkp #yiv6107778046ads {margin-bottom:10px;}#yiv6107778046 #yiv6107778046ygrp-mkp .yiv6107778046ad {pa
Re: [oracle_br] Repetir linha na consulta
Eu acho que é um caso muito especifico. Por isso acredito que o Melhor é você criar uma função pipelined, que permite retornar um resultSet. Dê uma procurada no Google que você encontra vários exemplos Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Quarta-feira, 13 de Abril de 2016 9:07, "Eduardo Dornelles eod.edua...@gmail.com [oracle_br]" escreveu: Bom dia. Preciso de uma solução para mostrar um registro mais de uma vez no retorno de um relatório, em uma situação específica. Na seguinte situação: Um produto quando solicitado em volume maior que 500ml, deve retornar uma linha para cada 500ml, exemplo: Produto 1 500ml descriçãoProduto 2 1L descriçãoProduto 3 2L descrição Deve retornar o seguinte: produto 1 500ml descriçãoproduto 2 500ml descriçãoproduto 2 500ml descrição produto 3 500ml descrição produto 3 500ml descrição produto 3 500ml descrição produto 3 500ml descrição Ou seja, preciso conseguir repetir uma linha uma ou mais vezes, em uma determinada condição. Alguém tem alguma ideia pra resolver isso?Muito obrigado. At.te,Eduardo Dornelles #yiv8716162210 #yiv8716162210 -- #yiv8716162210ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv8716162210 #yiv8716162210ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv8716162210 #yiv8716162210ygrp-mkp #yiv8716162210hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv8716162210 #yiv8716162210ygrp-mkp #yiv8716162210ads {margin-bottom:10px;}#yiv8716162210 #yiv8716162210ygrp-mkp .yiv8716162210ad {padding:0 0;}#yiv8716162210 #yiv8716162210ygrp-mkp .yiv8716162210ad p {margin:0;}#yiv8716162210 #yiv8716162210ygrp-mkp .yiv8716162210ad a {color:#ff;text-decoration:none;}#yiv8716162210 #yiv8716162210ygrp-sponsor #yiv8716162210ygrp-lc {font-family:Arial;}#yiv8716162210 #yiv8716162210ygrp-sponsor #yiv8716162210ygrp-lc #yiv8716162210hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv8716162210 #yiv8716162210ygrp-sponsor #yiv8716162210ygrp-lc .yiv8716162210ad {margin-bottom:10px;padding:0 0;}#yiv8716162210 #yiv8716162210actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv8716162210 #yiv8716162210activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv8716162210 #yiv8716162210activity span {font-weight:700;}#yiv8716162210 #yiv8716162210activity span:first-child {text-transform:uppercase;}#yiv8716162210 #yiv8716162210activity span a {color:#5085b6;text-decoration:none;}#yiv8716162210 #yiv8716162210activity span span {color:#ff7900;}#yiv8716162210 #yiv8716162210activity span .yiv8716162210underline {text-decoration:underline;}#yiv8716162210 .yiv8716162210attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv8716162210 .yiv8716162210attach div a {text-decoration:none;}#yiv8716162210 .yiv8716162210attach img {border:none;padding-right:5px;}#yiv8716162210 .yiv8716162210attach label {display:block;margin-bottom:5px;}#yiv8716162210 .yiv8716162210attach label a {text-decoration:none;}#yiv8716162210 blockquote {margin:0 0 0 4px;}#yiv8716162210 .yiv8716162210bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv8716162210 .yiv8716162210bold a {text-decoration:none;}#yiv8716162210 dd.yiv8716162210last p a {font-family:Verdana;font-weight:700;}#yiv8716162210 dd.yiv8716162210last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv8716162210 dd.yiv8716162210last p span.yiv8716162210yshortcuts {margin-right:0;}#yiv8716162210 div.yiv8716162210attach-table div div a {text-decoration:none;}#yiv8716162210 div.yiv8716162210attach-table {width:400px;}#yiv8716162210 div.yiv8716162210file-title a, #yiv8716162210 div.yiv8716162210file-title a:active, #yiv8716162210 div.yiv8716162210file-title a:hover, #yiv8716162210 div.yiv8716162210file-title a:visited {text-decoration:none;}#yiv8716162210 div.yiv8716162210photo-title a, #yiv8716162210 div.yiv8716162210photo-title a:active, #yiv8716162210 div.yiv8716162210photo-title a:hover, #yiv8716162210 div.yiv8716162210photo-title a:visited {text-decoration:none;}#yiv8716162210 div#yiv8716162210ygrp-mlmsg #yiv8716162210ygrp-msg p a span.yiv8716162210yshortcuts {font-family:Verdana;font-size:10px;font-weight:normal;}#yiv8716162210 .yiv8716162210green {color:#628c2a;}#yiv8716162210 .yiv8716162210MsoNormal {margin:0 0 0 0;}#yiv8716162210 o {font-size:0;}#yiv8716162210 #yiv8716162210photos div {float:left;width:72px;}#yiv8716162210 #yiv8716162210photos div div {border:1px soli
Re: [oracle_br] Oracle em Cloud
Olá Alexssandro, Eu uso o serviço RDSda amazon para as minhas aplicações, todavia já vou logo avisando que não creioser uma boa utilização para empresas de grande porte, isto porque existe váriaslimitações para customização do banco, Exemplos: · Não é possívelter tablespace com blocagem diferente. · Não podeconfigurar um Wallet, se desejar enviar e-mail. · Não podecriar diretório. · Nenhumainteração com S.O Como você mesmo disse,não é possível realizar comandos como ALTER DATABASE ou ALTER SYSTEM, o queexiste é um usuário com alguns Packages que permite fazer alguns comandos comoMatar Sessão, mas nada muito complexo. Você pela interfaceWeb deles somente pode criar/destruir um database configurar para Multi-Zone eativar o backup, que eles geram SnapShot do Banco (acredito que via Storage) eos archives. Para importar e/ouexportar um DUMP você precisa ter um outro banco e criar um database link entreeles e então fazer o Upload ou Download do DUMP do diretório padrão da amazon(só existe este e como disse não é possível criar mais diretórios). Também não é possível gravararquivos (TXT por exemplo) a partir de uma query e nem mesmo criar uma tabelaexterna, pois estes recurso necessariamente precisa ter interação com S.O. Enfim, não acreditoser uma boa opção para empresas grandes, aconselho para empresas pequenas(principalmente aquelas que não consegue arcar com o custo de um bom DBA) e atéempresas médias que seus sistemas não precisam de nenhum destes recursos deBanco e claro que acreditam que não vão precisar. Agora ficamos com a opção EC2que é a maquina virtual da Amazon, esta é a melhor opção para uma empresagrande que tem o seu próprio DBA, você tem muito mais controle sobre o Banco dedados, além de poder criar layoutde organização dos seus arquivos de dados. Sobre empresas degrande porte que usam a Amazon, temos Magazine Luiza, NetFlix, Sega, enfimnomes de peso é o que não falta. Falando sobre migração, eu seriaum pouco prudente, acredito que primeiramente migraria os backup’s para nuvemno S3 da amazon, isso porque até a propria Oracle acredita nisso, tanto que noLivro da Oracle Press "Oracle Rman 11g Backup and Recover" nocapitulo 6 "Backing Up to Amazon Web ServicesUsing the Oracle Secure Backup Cloud Module" trata comorealizar Backup Rman diretamente nos Storages da Amazon. Feito isso aisim migraria depois o próprio Banco de dados.Todavia a minha opinião seria quegrandes empresas em geral migrem os Backup’s (ou adiciona uma segurança a mais)com chave de acesso, para cloud,mas ter o Banco principal de produção naT.I própria. Parafinalizar, você podem pensar em usar outro servidor na nuvem, não existesomente a Amazon,um que esta sendo elogiado é a DigitalOcean. É uma empresaamericana e tem os custos bem mais baixos além de ter uma ótima estabilidade,só não tem tantas variedades de serviços que o AWS tem. Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Quinta-feira, 17 de Março de 2016 9:46, "alexssandro0...@yahoo.com.br [oracle_br]" escreveu: Bom dia! Pessoal, aqui na empresa se abriu uma discussão sobre a ida ou não da infra para a nuvem, provavelmente para a Amazon, desta forma gostaria de ouvir a opinião de vocês sobre tal. Então, gostaria de saber se alguém está trabalhando com algum ambiente Oracle em nuvem, se ele está no EC2 ou em RDS. Uma outra questão é referente ao RDS, no qual a Amazon vende por gerenciável por eles, sem a necessidade de uma pessoa para fazer isso(DBA). Isso é valido para qualquer tipo de ambiente, ou é voltado a ambiente considerado pequeno, sem um grau de criticidade. Alguém sabe até que nível eles gerenciam??EX: Em um determinado ponto se faz necessário fazer tuning de instancia, eles fazem isso?? Pois o usuário por eles disponível não tem acesso de alter database,alter system etc. Ou eles mantem um padrão de configuração de instancia sem possibilidade de alteração?? Um outro ponto seria se alguém conhece alguma empresa com um ambiente expressivo(criticidade etc) no ambiente cloud, seja ele no EC2 ou RDS. Então, se possível o pessoal compartilhar um pouco da experiencia em se trabalhar com o ambiente de banco de dados em nuvem, prós/contras etc. #yiv0575807198 #yiv0575807198 -- #yiv0575807198ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv0575807198 #yiv0575807198ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv0575807198 #yiv0575807198ygrp-mkp #yiv0575807198hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv0575807198 #yiv0575807198ygrp-mkp #yiv0575807198ads {margin-bottom:10px;}#yiv0575807198 #yiv0575807198ygrp-mkp .yiv0575807198ad
[oracle_br] Arquivos de Imagens e Videos.
Bom dia Senhores, Gostaria da opinião de vocês sobre onde gravar os arquivos de Imagens e de Videos de uma aplicação. Seria melhor guardar no banco em um campo blob, ou externamente em algum diretório do S.O/Storage? Estou fazendo alguns testes usando o SecureFiles, bem como também a aplicação fazer insert em uma View que está descarrega a Imagem/Vídeo para o diretório. Desde já agradeço opinião de todos. Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3)
Re: [oracle_br] Lentidão após nova instalação - Oracle 10g
Problema de lentidão pode ter vários fatores, é sempre bom começar a pesquisa pelo Eventos de Espera do Oracle para detectar o problema. Isso, me ajudou a encontrar o problema que já tive como, por exemplo: 1-> O Drive que controla os discos RAID da DELL estava com problema e com isso estava usando o drive genérico do Windows. 2-> A recomendação é a usar 40% da memoria do servidor para o Banco e você esta usando cerca de 60% (usando cerca de 20 Giga dos 32 do Hardware)Neste cenário, ( usando mais de 40% de memoria e servidor Oracle dedicado ) eu aconselho a desligar o cache do Windows, pois o Oracle já tem o seu próprio cache e realização de Swap. Veja por exemplo o este trecho tirado da documentação da Oracle. Tuning Windows to Optimize Oracle Database | | | | | | | | | Tuning Windows to Optimize Oracle Database7 Tuning Windows to Optimize Oracle Database This chapter describes how to tune the Windows Server operating system to ensure that Oracle Database is running in the best possible environment. | | | | Visualizar em docs.oracle.com | Visualizado por Yahoo | | | | | “Windows Server memory manager tries to balance each application's usage of memory by dynamically paging memory between physical RAM and a virtual memory paging file. If an application is particularly memory-intensive (like Oracle Database) or if a large number of applications run concurrently, then combined memory requirements of the applications may exceed physical memory capacity. The large proportion of memory reserved for file caching (41%) can be quite beneficial to file and print servers. But it may not be advantageous to application servers that often run memory-intensive network applications. A Windows Server file cache is particularly unnecessary for Oracle Database, which performs its own caching through System Global Area" Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Quinta-feira, 29 de Outubro de 2015 8:14, "martinez.si...@gmail.com [oracle_br]" escreveu: Prezados, Possuo um cliente com três instalações Oracle em servidoresdiferentes (Produção, Desenv e Homologação)Meu cliente adquiriu um novo servidor, com o objetivo desubstituir o servidor de Produção. Nesse novo servidor, foi realizada a MESMA instalação deSistema Operacional, Oracle e criação da base de dados existente nos outrosservidores:- Windows Server2008 R2 Standard SP1 - 64 bits- Oracle Standard 10.2.0.4 - 64 bits- Modo de servidor Dedicado- Objetivo: Base OLTP usada em um ERP O Hardware do novo servidor é superior ao dos já existentes(os outros possuem apenas 8Gb de memória RAM e processadores inferiores), porémapós instalação do Banco e tentativa de Import (IMPDP), o processo ficou muuuitomais lento do que a mesma instrução IMPDP realizada nos outros servidores.Hoje, essa rotina de IMPORT demora 40 minutos nos bancos de DESENV eHOMOLOGACAO. Nesse novo servidor, demorou aproximadamente 5 horas. Onde épossível perceber que a criação dos dados nas tabelas e dos índices demora muitotempo. Outra coisa que percebi, é que após os dados importados, umaconsulta simples executada pela primeira vez "Select count(*) frommaior_tabela_do_sistema", demora quase 10x mais do que nas outras bases dedados. Segue abaixo algumas informações desse novo servidor DELL edados da SGA criada:- Processador: Intel(R) Xeon(R) CPU E5-2609 0 @ 2.40GHz- Memória RAM: 32 GB- Dois Discos em RAID 1: DELL PERC S110 SCSI *V$SGAInfo*Name: Size in MB:BufferCache Size 10528Fixed SGASize 2Free SGAMemory Available 4096GranuleSize 16Java PoolSize 16Large PoolSize 16Maximum SGASize 16384RedoBuffers 14Shared PoolSize 1680Startupoverhead in Shared Pool 144StreamsPool Size 32 De todas as instalações, essa é a única em discos SCSI. Pelaforma como ficou lento o processo de import, desconfio em algo relacionado aoacesso à disco, porém não tenho ideia de como identificar. Gostaria de algumadica ou sugestão dos amigos do fórum. Agradeço a ajuda. #yiv1554287910 #yiv1554287910 -- #yiv1554287910ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv1554287910 #yiv1554287910ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv1554287910 #yiv1554287910ygrp-mkp #yiv1554287910hd {color:#628c2a;font-size:85%;font-weight:700;line-height
Re: [oracle_br] Restore database
Bom, fica claro que você tem os Backup feito a quente, pensei que era um abckup frio. Vale lembrar que os Backup's incrementais (Level 1 ou superior) diferencia ou não, não é usando no restore, mas no recover, se você tem estes backup's, basta cataloga-los e restaurar o banco com estes backup's setando a data/hora com until time que seu LEVEL 1 tiver. A grosso modo os Backup's incremental é um "archivezão". Agora, caso não tenha isso, pode tentar (sem garantia nenhuma) usar o parametro "_allow_resetlogs_corruption=TRUE" no seu pfile e tentar abrir o banco mesmo inconsistente. Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Quarta-feira, 30 de Setembro de 2015 10:55, "Rafael Mendonca raffaell.t...@yahoo.com [oracle_br]" escreveu: Alessandro, obrigado pelo retorno, mas consegui realizar o restore do controlfile e dos datafiles alocando o canal para fita e setando pelo nome do controlfile restore controlfile from 'nome_controlfile'; A questão do restore foi ok tb. Agora no recover esta faltando archive para recuperar, estou vendo alguma alternativa de abrir o database sem precisar do recover, pois somente o restore dos datafiles pra mim já é suficiente. no log do rman me mostra: unable to find archived log archived log thread=1 sequence=644 Só possuo apenas 1 archive do dia 28 de dezembro de 2014 que foi gerado após o backup, o restante não existe mais. Em Quarta-feira, 30 de Setembro de 2015 11:33, "Alessandro Lúcio Cordeiro da Silva alecordeirosi...@yahoo.com.br [oracle_br]" escreveu: Bom dia Rafael, Não sei se você consegui restaurar, mas vamos lá: O comando "Restore Controlfile from autobackup" irar procurar o backup do controlfile no diretorio padrão (que não lembro agora de cabeça), mas vamos supor que o seu backup do controlfile não esteja neste diretorio padrão, então o processo de restauração seria assim: SQLPLUS> startup nomount; Rman> run { set dbid=; set controlfile autobackup format for device type disk to '\'; restore controlfile from autobackup; alter database mount; } Logue o no banco de Produção consulte o DBID e coloque no script no lugar de . Troque o a parte pelo path onde esta os backup's do controlfile.Logue via rman do seu banco de Produção e consulte a configuração do seu controlFile com Show all; Pode ser que esteja assim: CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default Se este for o caso troque por %F; Ficando por exemplo assim: run { set dbid=3924117592; set controlfile autobackup format for device type disk to '/u02/XUXA/AUTOBACKUP/%F'; restore controlfile from autobackup; alter database mount;} Depois de restaurado o seu controlfile ai é so catalogar os seus backup, restaurar o seu banco. Espero que ajude Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Segunda-feira, 28 de Setembro de 2015 12:27, "Rafael Mendonca raffaell.t...@yahoo.com [oracle_br]" escreveu: Senhores, estou tentando restaurar um backup de 1 ano atrás em um novo host. OE 11gR2 - Depois de realizar as configurações padrões de diretório, entre outras coisas, configurei o CATALOGO e a minha dúvida é na realização do restore do controlfile, database e do recover. RMAN> list backup of controlfile; BS Key Type LV Size Device Type Elapsed Time Completion Time --- -- -- --- --- 1423631 Full 85.50M SBT_TAPE 00:00:07 28-DEC-14 BP Key: 1423633 Status: AVAILABLE Compressed: NO Tag: BACKUP_HOT_ANUAL Handle: full_XUXA_anual_20587_867457903_3bpr8mrf_1 Media: 54152 Keep: BACKUP_LOGS Until: 17-DEC-16 Control File Included: Ckp SCN: 754085311743 Ckp time: 28-DEC-14 BS Key Type LV Size Device Type Elapsed Time Completion Time --- -- -- --- --- 1423651 Full 85.50M SBT_TAPE 00:00:09 28-DEC-14 BP Key: 1423653 Status: AVAILABLE Compressed: NO Tag: BACKUP_ANUAL_XUXA_CF Handle: XUXA_867457928_20588_1 Media: 54153 Keep: NOLOGS Until: 17-DEC-16 Control File Included: Ckp SCN: 754085311825 Ckp time: 28-DEC-14 RMAN> backup of database; BS Key Type LV Size Device Type Elapsed Time Completion Time --- -- -- --- -
Re: [oracle_br] Restore database
Bom dia Rafael, Não sei se você consegui restaurar, mas vamos lá: O comando "Restore Controlfile from autobackup" irar procurar o backup do controlfile no diretorio padrão (que não lembro agora de cabeça), mas vamos supor que o seu backup do controlfile não esteja neste diretorio padrão, então o processo de restauração seria assim: SQLPLUS> startup nomount; Rman> run { set dbid=; set controlfile autobackup format for device type disk to '\'; restore controlfile from autobackup; alter database mount; } Logue o no banco de Produção consulte o DBID e coloque no script no lugar de . Troque o a parte pelo path onde esta os backup's do controlfile.Logue via rman do seu banco de Produção e consulte a configuração do seu controlFile com Show all; Pode ser que esteja assim: CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default Se este for o caso troque por %F; Ficando por exemplo assim: run { set dbid=3924117592; set controlfile autobackup format for device type disk to '/u02/XUXA/AUTOBACKUP/%F'; restore controlfile from autobackup; alter database mount;} Depois de restaurado o seu controlfile ai é so catalogar os seus backup, restaurar o seu banco. Espero que ajude Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Segunda-feira, 28 de Setembro de 2015 12:27, "Rafael Mendonca raffaell.t...@yahoo.com [oracle_br]" escreveu: Senhores, estou tentando restaurar um backup de 1 ano atrás em um novo host. OE 11gR2 - Depois de realizar as configurações padrões de diretório, entre outras coisas, configurei o CATALOGO e a minha dúvida é na realização do restore do controlfile, database e do recover. RMAN> list backup of controlfile; BS Key Type LV Size Device Type Elapsed Time Completion Time --- -- -- --- --- 1423631 Full 85.50M SBT_TAPE 00:00:07 28-DEC-14 BP Key: 1423633 Status: AVAILABLE Compressed: NO Tag: BACKUP_HOT_ANUAL Handle: full_XUXA_anual_20587_867457903_3bpr8mrf_1 Media: 54152 Keep: BACKUP_LOGS Until: 17-DEC-16 Control File Included: Ckp SCN: 754085311743 Ckp time: 28-DEC-14 BS Key Type LV Size Device Type Elapsed Time Completion Time --- -- -- --- --- 1423651 Full 85.50M SBT_TAPE 00:00:09 28-DEC-14 BP Key: 1423653 Status: AVAILABLE Compressed: NO Tag: BACKUP_ANUAL_XUXA_CF Handle: XUXA_867457928_20588_1 Media: 54153 Keep: NOLOGS Until: 17-DEC-16 Control File Included: Ckp SCN: 754085311825 Ckp time: 28-DEC-14 RMAN> backup of database; BS Key Type LV Size Device Type Elapsed Time Completion Time --- -- -- --- --- 1423563 Full 9.16G SBT_TAPE 00:12:01 28-DEC-14 BP Key: 1423567 Status: AVAILABLE Compressed: NO Tag: BACKUP_HOT_ANUAL Handle: full_XUXA_anual_20583_867456663_37pr8lkn_1 Media: 54158 Keep: BACKUP_LOGS Until: 17-DEC-16 List of Datafiles in backup set 1423563 File LV Type Ckp SCN Ckp Time Name -- -- - 4 Full 754085258214 28-DEC-14 /u02/XUXA/datafile/.dbf 5 Full 754085258214 28-DEC-14 /u02/XUXA/datafile/.dbf . BS Key Type LV Size Device Type Elapsed Time Completion Time --- -- -- --- --- 1423564 Full 19.60G SBT_TAPE 00:20:18 28-DEC-14 BP Key: 1423568 Status: AVAILABLE Compressed: NO Tag: BACKUP_HOT_ANUAL Handle: full_XUXA_anual_20584_867456663_38pr8lkn_1 Media: 54159 Keep: BACKUP_LOGS Until: 17-DEC-16 List of Datafiles in backup set 1423564 File LV Type Ckp SCN Ckp Time Name -- -- - 1 Full 754085258215 28-DEC-14 /u02/XUXA/datafile/.dbf 2 Full 754085258215 28-DEC-14 /u02/XUXA/datafile/.dbf 3 Full 754085258215 28-DEC-14 /u02/XUXA/datafile/.dbf.. Tentei realizar o seguinte comando para restaurar o controlfile: RMAN> run { ALLOCATE CHANNEL C1 TYPE 'SBT_TAPE' PARMS 'ENV=(TDPO_OPTFILE=xxx.opt)'; set until time to_date('dd/mm/', '28/12/2014');restore controlfile from autobackup; } O RMAN sai procurando, mas não acha.channel C1: looking for AUTOBACKUP on day: 20141214 channel C1: looking for AUTOBACKUP on day: 20141213 channel C1: looking for AUTOBACKUP on day: 20141212 channel C1: looking for AUTOBACKUP on day: 20141211 channel C1: looking for AUTOBACKUP
Re: [oracle_br] ORA-01578: ORACLE data block corrupted
Olá Ednilson, Como o Oracle usa a Undo para realizar a recuperação de instância, é normal o Oracle não abrir. Você deve realizar recuperação de bloco da tablespace undo. Todavia se você não conseguir via backup Rman, ainda há esperança: 1) Coloque a Tablespace Undo como MANUAL;2) Coloque o Datafile da Tablespace como OFF;3) Drop a Tablepace de undo.4) Criar outra Tablespace de undo 5) Coloque esta tablespace como automatico e abrar o banco Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Quinta-feira, 19 de Março de 2015 5:02, "'Ednilson Silva' ednilson.si...@jbs.com.br [oracle_br]" escreveu: Bom Dia,Essa madrugada ocorreram alguns problemas com o Storage e após resolverem fui tentar montar o banco e o datafile de UNDO ficou corrupted. SQL> startup mountORACLE instance started. Total System Global Area 536870912 bytesFixed Size 1268460 bytesVariable Size 171967764 bytesDatabase Buffers 352321536 bytesRedo Buffers 11313152 bytesDatabase mounted. SQL> ALTER DATABASE OPEN;ALTER DATABASE OPEN*ERROR at line 1:ORA-01092: ORACLE instance terminated. Disconnection forced ALERT_LOGThu Mar 19 05:30:58 2015Errors in file /d01/app/oracle/product/10gR2/rdbms/log/csfvgfp_ora_21974.trc:ORA-01578: ORACLE data block corrupted (file # 2, block # 89)ORA-01110: data file 2: '/d001/oradata/csfvgfp/rbs_undo01.dbf' Não consigo abrir o banco para tentar recriar a UNDO. Existe alguma forma de resolver isso? Enquanto isso estou tentando recuperar o datafile via RMAN. Grato,Ednilson Silva #yiv9336467708 -- #yiv9336467708ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv9336467708 #yiv9336467708ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv9336467708 #yiv9336467708ygrp-mkp #yiv9336467708hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv9336467708 #yiv9336467708ygrp-mkp #yiv9336467708ads {margin-bottom:10px;}#yiv9336467708 #yiv9336467708ygrp-mkp .yiv9336467708ad {padding:0 0;}#yiv9336467708 #yiv9336467708ygrp-mkp .yiv9336467708ad p {margin:0;}#yiv9336467708 #yiv9336467708ygrp-mkp .yiv9336467708ad a {color:#ff;text-decoration:none;}#yiv9336467708 #yiv9336467708ygrp-sponsor #yiv9336467708ygrp-lc {font-family:Arial;}#yiv9336467708 #yiv9336467708ygrp-sponsor #yiv9336467708ygrp-lc #yiv9336467708hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv9336467708 #yiv9336467708ygrp-sponsor #yiv9336467708ygrp-lc .yiv9336467708ad {margin-bottom:10px;padding:0 0;}#yiv9336467708 #yiv9336467708actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv9336467708 #yiv9336467708activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv9336467708 #yiv9336467708activity span {font-weight:700;}#yiv9336467708 #yiv9336467708activity span:first-child {text-transform:uppercase;}#yiv9336467708 #yiv9336467708activity span a {color:#5085b6;text-decoration:none;}#yiv9336467708 #yiv9336467708activity span span {color:#ff7900;}#yiv9336467708 #yiv9336467708activity span .yiv9336467708underline {text-decoration:underline;}#yiv9336467708 .yiv9336467708attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv9336467708 .yiv9336467708attach div a {text-decoration:none;}#yiv9336467708 .yiv9336467708attach img {border:none;padding-right:5px;}#yiv9336467708 .yiv9336467708attach label {display:block;margin-bottom:5px;}#yiv9336467708 .yiv9336467708attach label a {text-decoration:none;}#yiv9336467708 blockquote {margin:0 0 0 4px;}#yiv9336467708 .yiv9336467708bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv9336467708 .yiv9336467708bold a {text-decoration:none;}#yiv9336467708 dd.yiv9336467708last p a {font-family:Verdana;font-weight:700;}#yiv9336467708 dd.yiv9336467708last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv9336467708 dd.yiv9336467708last p span.yiv9336467708yshortcuts {margin-right:0;}#yiv9336467708 div.yiv9336467708attach-table div div a {text-decoration:none;}#yiv9336467708 div.yiv9336467708attach-table {width:400px;}#yiv9336467708 div.yiv9336467708file-title a, #yiv9336467708 div.yiv9336467708file-title a:active, #yiv9336467708 div.yiv9336467708file-title a:hover, #yiv9336467708 div.yiv9336467708file-title a:visited {text-decoration:none;}#yiv9336467708 div.yiv9336467708photo-title a, #yiv9336467708 div.yiv9336467708photo-title a:active, #yiv9336467708 div.yiv9336467708photo-title a:hover, #yiv9336467708 div.yiv9336467708photo-title a:visited {text-decoration:none;}#yiv9336467708 div#yiv9336467708ygrp-mlmsg #yiv9336467708ygrp-msg p a span.yiv9336467708yshortcuts {font-family:Verda
Re: [oracle_br] upgrade para versão 11g
Apenas um informação a mais. Eu instalai o Oracle 12.1.0.2 em uma maquina virtual com o S.O Oracle Linux 6.5. A partir de Oracle 11.2.0.4 em Windows 7, fiz a migração com Backup Rman para o Linux. Então depois transformei o Banco padrão em um plugglabe database usando o script noncdb_to_pdb.sql. Funcionou normalmente por algum tempo, todavia mais tarde o banco pdb não abria mais ocorrendo o erro ORA-600[kspcrepdb: bad kspmas]. Olha só o que encontro no metalink. Description This bug is only relevant when using Pluggable Database (PDB) / ContainerOn open of a pluggable database, an ORA-600[kspcrepdb: bad kspmas] error may be encountered. Rediscovery Notes If you hit an ORA-600[kspcrepdb: bad kspmas] on open of a pluggable database, you could be hitting this issue. Workaround None O final que é legal -> Solução : Nenhuma Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Quinta-feira, 5 de Março de 2015 11:10, "jlchia...@yahoo.com.br [oracle_br]" escreveu: Adicionalmente : nem preciso dizer, embora no caso do colega ele não possa usar o 12c por causa da ausência de SE, e eu não recomende neste momento o upgrade direto de um modo geral pra quem não está testando já há um bom tempo OU tem necessidade Real de algo presente no 12c, ÓBVIO que quem não começou ainda seu programa de testes no 12c CLARAMENTE já está hiper-atrasado - esse ano acaba o premier support e inicia o ano de graça e em Janeiro/2016 já começa a ser cobrado o Suporte Extendido, o relógio tá contando... Depois não adianta chorar que não pode baixar este ou aquele patch pro bug x ou y crítico pro teu ambiente no RDBMS 11.2.x... []s Chiappa #yiv5623504305 #yiv5623504305 -- #yiv5623504305ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv5623504305 #yiv5623504305ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv5623504305 #yiv5623504305ygrp-mkp #yiv5623504305hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv5623504305 #yiv5623504305ygrp-mkp #yiv5623504305ads {margin-bottom:10px;}#yiv5623504305 #yiv5623504305ygrp-mkp .yiv5623504305ad {padding:0 0;}#yiv5623504305 #yiv5623504305ygrp-mkp .yiv5623504305ad p {margin:0;}#yiv5623504305 #yiv5623504305ygrp-mkp .yiv5623504305ad a {color:#ff;text-decoration:none;}#yiv5623504305 #yiv5623504305ygrp-sponsor #yiv5623504305ygrp-lc {font-family:Arial;}#yiv5623504305 #yiv5623504305ygrp-sponsor #yiv5623504305ygrp-lc #yiv5623504305hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv5623504305 #yiv5623504305ygrp-sponsor #yiv5623504305ygrp-lc .yiv5623504305ad {margin-bottom:10px;padding:0 0;}#yiv5623504305 #yiv5623504305actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv5623504305 #yiv5623504305activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv5623504305 #yiv5623504305activity span {font-weight:700;}#yiv5623504305 #yiv5623504305activity span:first-child {text-transform:uppercase;}#yiv5623504305 #yiv5623504305activity span a {color:#5085b6;text-decoration:none;}#yiv5623504305 #yiv5623504305activity span span {color:#ff7900;}#yiv5623504305 #yiv5623504305activity span .yiv5623504305underline {text-decoration:underline;}#yiv5623504305 .yiv5623504305attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv5623504305 .yiv5623504305attach div a {text-decoration:none;}#yiv5623504305 .yiv5623504305attach img {border:none;padding-right:5px;}#yiv5623504305 .yiv5623504305attach label {display:block;margin-bottom:5px;}#yiv5623504305 .yiv5623504305attach label a {text-decoration:none;}#yiv5623504305 blockquote {margin:0 0 0 4px;}#yiv5623504305 .yiv5623504305bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv5623504305 .yiv5623504305bold a {text-decoration:none;}#yiv5623504305 dd.yiv5623504305last p a {font-family:Verdana;font-weight:700;}#yiv5623504305 dd.yiv5623504305last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv5623504305 dd.yiv5623504305last p span.yiv5623504305yshortcuts {margin-right:0;}#yiv5623504305 div.yiv5623504305attach-table div div a {text-decoration:none;}#yiv5623504305 div.yiv5623504305attach-table {width:400px;}#yiv5623504305 div.yiv5623504305file-title a, #yiv5623504305 div.yiv5623504305file-title a:active, #yiv5623504305 div.yiv5623504305file-title a:hover, #yiv5623504305 div.yiv5623504305file-title a:visited {text-decoration:none;}#yiv5623504305 div.yiv5623504305photo-title a, #yiv5623504305 div.yiv5623504305photo-title a:active, #yiv5623504305 div.yiv5623504305photo-title a:hover, #yiv5623504305 div.yiv5623504305photo-title a:visited {text-decoration:none;}#yiv5623504305 div#yiv5623504305ygrp-mlmsg #yiv5
Re: [oracle_br] Oracle e Linux para estudo
Bom dia, tenho dois artigos que fiz um passo-a-passo na instalação do S.O e depois do Oracle 12c, espero que ajude Blog do Alessandro Cordeiro: Instalação do Oracle Linux para Banco de dados Oracle | | | | | | | | | | | Blog do Alessandro Cordeiro: Instalação do Oracle Linux ...9-Instale os pacotes conforme as imagens posteriores: 10-Depois basta instalar o S.O. | | | | Visualizar em alecordeirosilva... | Visualizado por Yahoo | | | | | Blog do Alessandro Cordeiro: Instalação do Software do Banco de Dados Oracle 12c em Linux | | | | | | | | | | | Blog do Alessandro Cordeiro: Instalação do Software do B...Neste artigo será descrito o processo de instalação do software de Banco de Dados 12c no ambiente Linux que foi preparado no artigo anterior - "Instalaçã... | | | | Visualizar em alecordeirosilva... | Visualizado por Yahoo | | | | | Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Sábado, 21 de Fevereiro de 2015 11:56, "silvado...@ig.com.br [oracle_br]" escreveu: Olá pessoal, gostaria de uma ajuda de vocês após algumas pesquisas nada satisfatórias rs. Gostaria de instalar alguma versão do Linux no meu desktop e depois instalar o oracle para estudos, mas não encontrei nada de como fazer. Pode ser que me sugiram o Oracle Linux e alguma versão do Oracle para instalação, mas o que eu gostaria é alem das sugestões algum passo a passo de instalação do BD no Linux, o que não encontro. Se puderem me ajudar deixo aqui meus agradecimentos. #yiv1840978382 #yiv1840978382 -- #yiv1840978382ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv1840978382 #yiv1840978382ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv1840978382 #yiv1840978382ygrp-mkp #yiv1840978382hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv1840978382 #yiv1840978382ygrp-mkp #yiv1840978382ads {margin-bottom:10px;}#yiv1840978382 #yiv1840978382ygrp-mkp .yiv1840978382ad {padding:0 0;}#yiv1840978382 #yiv1840978382ygrp-mkp .yiv1840978382ad p {margin:0;}#yiv1840978382 #yiv1840978382ygrp-mkp .yiv1840978382ad a {color:#ff;text-decoration:none;}#yiv1840978382 #yiv1840978382ygrp-sponsor #yiv1840978382ygrp-lc {font-family:Arial;}#yiv1840978382 #yiv1840978382ygrp-sponsor #yiv1840978382ygrp-lc #yiv1840978382hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv1840978382 #yiv1840978382ygrp-sponsor #yiv1840978382ygrp-lc .yiv1840978382ad {margin-bottom:10px;padding:0 0;}#yiv1840978382 #yiv1840978382actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv1840978382 #yiv1840978382activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv1840978382 #yiv1840978382activity span {font-weight:700;}#yiv1840978382 #yiv1840978382activity span:first-child {text-transform:uppercase;}#yiv1840978382 #yiv1840978382activity span a {color:#5085b6;text-decoration:none;}#yiv1840978382 #yiv1840978382activity span span {color:#ff7900;}#yiv1840978382 #yiv1840978382activity span .yiv1840978382underline {text-decoration:underline;}#yiv1840978382 .yiv1840978382attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv1840978382 .yiv1840978382attach div a {text-decoration:none;}#yiv1840978382 .yiv1840978382attach img {border:none;padding-right:5px;}#yiv1840978382 .yiv1840978382attach label {display:block;margin-bottom:5px;}#yiv1840978382 .yiv1840978382attach label a {text-decoration:none;}#yiv1840978382 blockquote {margin:0 0 0 4px;}#yiv1840978382 .yiv1840978382bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv1840978382 .yiv1840978382bold a {text-decoration:none;}#yiv1840978382 dd.yiv1840978382last p a {font-family:Verdana;font-weight:700;}#yiv1840978382 dd.yiv1840978382last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv1840978382 dd.yiv1840978382last p span.yiv1840978382yshortcuts {margin-right:0;}#yiv1840978382 div.yiv1840978382attach-table div div a {text-decoration:none;}#yiv1840978382 div.yiv1840978382attach-table {width:400px;}#yiv1840978382 div.yiv1840978382file-title a, #yiv1840978382 div.yiv1840978382file-title a:active, #yiv1840978382 div.yiv1840978382file-title a:hover, #yiv1840978382 div.yiv1840978382file-title a:visited {text-decoration:none;}#yiv1840978382 div.yiv1840978382photo-title a, #yiv1840978382 div.yiv1840978382photo-title a:active, #yiv1840978382 div.yiv1840978382photo-title a:hover, #yiv1840978382 div.yiv1840978382photo-title a:visited {text-decoration:none;}#yiv1840978382 div#yiv1840978382ygrp-mlmsg #yiv1840978382ygrp-msg p a span.yiv1840978382yshortcuts {font-family:Verdana;font-size:10px;font-weight:normal;}#yiv1840978382 .yiv1840978
Re: [oracle_br] Erro ao dropar trigger
Verifica no banco se não existe uma trigger de DDL, onde dispara uma exceção. Pois normalmente erros recursivos são estas triggers especias. Pode ser tb problema no dicionario de dados que também tem triggers internas para controlar o dicionario de dados. Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Quarta-feira, 26 de Novembro de 2014 17:05, "Wanderson Barrence wbarre...@gmail.com [oracle_br]" escreveu: Olá pessoal!!! Alguém já pegou esse erro ao dropar uma trigger: Error dropping TR_TRIGGER:ORA-00604: error ocurred at recursive SQL Level 1ORA-20101: Sistem XXXORA-06512: At line 16 Ambiente: Windows Server 2003 Standard x64Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Att, Wanderson
Re: [oracle_br] Ajuda Criar Função com Pragma
Boa tarde Eduardo, Eu no geral não vejo com bons olhos o uso do Pragma Autonomuos_transaction, há situações sim que elas podem ser usadas, mas geralmente uma exceção. O que ainda mais me preocura é você querer usar dentro de uma consulta, olhe tecnicamente falando isso vaifuncionar, todavia isso beira a uma gambiarra. Imagine a dificuldade que novos desenvolvedores/progamadores terão de entender a "lógica" disso, sendo que esta logica quebra todo conceito de consistência de leitura, ( a cada linha da consulta um commit, então imagine a bagunça de outras consultas feitas durante a execução da 1º consulta) e ainda que consultas SQL's não abrem transação. Eu fortemente recomendo que você reveja a sua lógica, e tente usar os padrões de desenvolvimento para aumentar a coesão e diminuir o acoplamento, senão você acaba tendo um sistema que parece uma linguiça. Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Terça-feira, 28 de Outubro de 2014 13:13, "Eduardo Perdomo panc...@gmail.com [oracle_br]" escreveu: Boa tarde. Tenho as seguintes tabelas: carregamentos numcar data posicao etc pedidositens codprod qtd valor numcar conferente O relacionamento entre as duas é numcar Preciso fazer uma função que quando eu passe o numero do carregamento o conferente seja atualizado para todos os itens que estão nessa carga. Vários pedidositens podem estar no mesmo carregamento. Talvez tenha que fazer um FOR EACH Vou usar esse função dentro de uma consulta em um relatorio, por isso o pragma. Segue abaixo minha tentativa: CREATE OR REPLACE FUNCTION liberacarregamento( yNUMCAR pedidositens.numcar%TYPE) RETURN VARCHAR2 IS PRAGMA AUTONOMOUS_TRANSACTION; -- PARA PERMITIR DAR UPDATE EM UM SELECT XNUMCAR pedidositens.numcar%TYPE; BEGIN BEGIN UPDATE pedidositens SET conferente = 1 WHERE NUMCAR = yNUMCAR; COMMIT; EXCEPTION WHEN OTHERS THEN RAISE_APPLICATION_ERROR(-20001, ('ERRO AO ATUALIZAR O CARREGAMENTO: ' + to_char(XNUMCAR) ) ); END; RETURN xnumcar ; END; / -- Eduardo Perdomo Consultor de Implantação Grupo PC Sistemas - www.grupopc.com.br (21) 6845-8592 panc...@gmail.com eduardo.perd...@pcinformatica.com.br Blog: eduardo.perdomo.nom.br
Re: [oracle_br] Re: Problema para gerar código ANO + Sequencial
Olá Aroldo, só agora que vi a discussão; Não sei se ainda vai querer vai o Sleep no banco, mas caso queira o comando é este abaixo: begin dbms_lock.sleep(10); -- 10 segundos. end; Todavia, se você for por sequencia como discutido, creio ser melhor, pois é nativo do Oracle, já esta pronto e acima de tudo, você consegue ter controle sobre usar cache nas sequencia algo que você não tem como a sua solução. Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Quarta-feira, 22 de Outubro de 2014 14:21, "Aroldo Rique aro...@gmail.com [oracle_br]" escreveu: Blz, valeu pelas dicas. Vou passar pro pessoal aqui. Att, Aroldo Rique Em 22 de outubro de 2014 15:05, jlchia...@yahoo.com.br [oracle_br] escreveu: > >Vc até poderia dropar & recriar : é a opção mais direta mas muita gente não >gosta disso, especialmente por causa de consequências como invalidar objetos >dependentes da sequence. > Assim, embora o drop & create seja possível, se preferir optar por não o > fazer é SIM totalmente POSSÍVEL se obter o mesmo efeito sem drop : o que > ocorre é que, muito embora não haja um comando específico para se alterar o > valor corrente da sequence, é ** SIM ** possível se fazer outros tipos de > alteração na sequence que dão o mesmo efeito... > Aqui mesmo no fórum já demos alguns exemplos em threads anteriores, dá uma > pesquisada mas basicamente é temporariamente alterar a sequence para ter um > valor máximo E zerar quando esse valor é atingido, além de também alterar o > incremento para um valor bem alto : com isso feito, vc faz alguns select > nextval para ultrapassar o valor máximo que aí a sequence volta pra zero > Zerada a sequence, aí vc volta os settings dela para como estavam antes... > > []s > > Chiappa
Re: [oracle_br] Problema para gerar código ANO + Sequencial
Exato. Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Quarta-feira, 22 de Outubro de 2014 8:16, "Aroldo Rique aro...@gmail.com [oracle_br]" escreveu: Ok, Alessandro, o commit virá logo após o insert na tabela MANIFESTACAO. O único momento que eu faço um SELECT na tabela GERACAO_ CODIGO é neste que eu descrevi. Então, pelo que eu entendi, quando a primeira transação passar por esse select, a próxima transação aguardará o término da transação anterior para prosseguir, não é mesmo? Em 22/10/2014 09:10, "Alessandro Lúcio Cordeiro da Silva alecordeirosi...@yahoo.com.br [oracle_br]" escreveu: > > > > >Aroldo, o FOR UPDATE lock a tabela para alterações, mas não ficará bloqueado >para Leitura.::: MAS ::.. outras leituras com for update sim, isso significa >que select com FOR UPDATE serão serializados. Ou seja sempre uma trigger >somente irar realizar a consulta com o termino da transação da primeira >trigger, assim sempre pegando o próximo valor. > > >Sobre não usar o Pragma, se imediatamente apos o insert na tabela MANIFESTACAO >você já der o commit, OK, não irar precisar do Pragma, pois o tempo de >contenção será muito pouco; todavia se você for realizar uma serie de >operações e somente depois X tempo terminar a transação, saiba que ninguem >conseguirar incluir registro na tabela manifestação enquanto a transação não >terminar. > > >Alessandro Lúcio Cordeiro da Silva >Analista de Sistema > >þ http://alecordeirosilva.blogspot.com/ > >Porque esta é a vontade de Deus, a saber, a vossa >santificação: que vos abstenhais da prostituição. >(1º Tessalonicenses 4:3) > > > > >Em Quarta-feira, 22 de Outubro de 2014 7:55, "Aroldo Rique aro...@gmail.com >[oracle_br]" escreveu: > > > > >Olá, Alessandro, bom dia e obrigado pela ajuda. >Se eu implementar apenas a sua segunda sugestão: >2º Coloque um LOCK no seu select com FOR UPDATE, ficando assim: > >select nvl(contador + 1,1) > into p_contador > from geracao_codigo >where ano = pano >FOR UPDATE; >O meu problema já não estará resolvido. Esse FOR UPDATE impedirá que outra >transação atribua o mesmo valor à variável p_contador? A tabela geracao_codigo >ficará locada inclusive para leitura? >Essa tabela geracao_codigo só é usada nesse momento(inclusão de um registro na >tabela MANIFESTACAO). >Antecipadamente agradeço a resposta. >Att, >Aroldo Rique > > > >Em 22/10/2014 08:37, "Alessandro Lúcio Cordeiro da Silva >alecordeirosi...@yahoo.com.br [oracle_br]" >escreveu: > > >> >> >> >> >>Olá Aroldo, >> >> >>Para garantir consistência e evitar a contenção você preisa alterar dois >>pontos da sua trigger: >> >> >>1º Altere a trigger para ser uma Transação Autônoma usando o pragma >>autonomous_transaction. Isto irar fazer que a trigger não participa da >>transação principal e irar permitir de outras transações consulte os novos >>dados (update incrementado) após o termino da trigger com um COMMIT >>independente se a transação principal terminou ou não. >> >> >>2º Coloque um LOCK no seu select com FOR UPDATE, ficando assim: >> >> >>select nvl(contador + 1,1) >> into p_contador >> from geracao_codigo >>where ano = pano >>FOR UPDATE; >> >> >>Assim, se uma trigger for disparada, mas já existir uma primeira trigger >>ainda em execução, a 2º trigger aguardará o termino da primeira triiger e só >>assim consultará o novo valor. O LOCK será relativamente rapido, pois o LOCK >>ocorre somente durante a execução da Trigger r não da transação toda; >> >> >> >> >>Alessandro Lúcio Cordeiro da Silva >>Analista de Sistema >> >>þ http://alecordeirosilva.blogspot.com/ >> >>Porque esta é a vontade de Deus, a saber, a vossa >>santificação: que vos abstenhais da prostituição. >>(1º Tessalonicenses 4:3) >> >> >> >> >>Em Terça-feira, 21 de Outubro de 2014 23:06, "Aroldo Rique aro...@gmail.com >>[oracle_br]" escreveu: >> >> >> >> >>Prezados, estamos com uma dúvida aqui no meu trabalho com relação a geração >>de um código. É um sistema WEB desenvolvido em JAVA e com vários atendentes o >>utilizando no Brasil inteiro. O Banco de dados é Oracle. Todos as classes >>Services estão com a annotation @Transactional do Spring. >> >>Temos uma tabela chama
Re: [oracle_br] Problema para gerar código ANO + Sequencial
Aroldo, o FOR UPDATE lock a tabela para alterações, mas não ficará bloqueado para Leitura.::: MAS ::.. outras leituras com for update sim, isso significa que select com FOR UPDATE serão serializados. Ou seja sempre uma trigger somente irar realizar a consulta com o termino da transação da primeira trigger, assim sempre pegando o próximo valor. Sobre não usar o Pragma, se imediatamente apos o insert na tabela MANIFESTACAO você já der o commit, OK, não irar precisar do Pragma, pois o tempo de contenção será muito pouco; todavia se você for realizar uma serie de operações e somente depois X tempo terminar a transação, saiba que ninguem conseguirar incluir registro na tabela manifestação enquanto a transação não terminar. Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Quarta-feira, 22 de Outubro de 2014 7:55, "Aroldo Rique aro...@gmail.com [oracle_br]" escreveu: Olá, Alessandro, bom dia e obrigado pela ajuda. Se eu implementar apenas a sua segunda sugestão: 2º Coloque um LOCK no seu select com FOR UPDATE, ficando assim: select nvl(contador + 1,1) into p_contador from geracao_codigo where ano = pano FOR UPDATE; O meu problema já não estará resolvido. Esse FOR UPDATE impedirá que outra transação atribua o mesmo valor à variável p_contador? A tabela geracao_codigo ficará locada inclusive para leitura? Essa tabela geracao_codigo só é usada nesse momento(inclusão de um registro na tabela MANIFESTACAO). Antecipadamente agradeço a resposta. Att, Aroldo Rique Em 22/10/2014 08:37, "Alessandro Lúcio Cordeiro da Silva alecordeirosi...@yahoo.com.br [oracle_br]" escreveu: > > > > >Olá Aroldo, > > >Para garantir consistência e evitar a contenção você preisa alterar dois >pontos da sua trigger: > > >1º Altere a trigger para ser uma Transação Autônoma usando o pragma >autonomous_transaction. Isto irar fazer que a trigger não participa da >transação principal e irar permitir de outras transações consulte os novos >dados (update incrementado) após o termino da trigger com um COMMIT >independente se a transação principal terminou ou não. > > >2º Coloque um LOCK no seu select com FOR UPDATE, ficando assim: > > >select nvl(contador + 1,1) > into p_contador > from geracao_codigo >where ano = pano >FOR UPDATE; > > >Assim, se uma trigger for disparada, mas já existir uma primeira trigger ainda >em execução, a 2º trigger aguardará o termino da primeira triiger e só assim >consultará o novo valor. O LOCK será relativamente rapido, pois o LOCK ocorre >somente durante a execução da Trigger r não da transação toda; > > > > >Alessandro Lúcio Cordeiro da Silva >Analista de Sistema > >þ http://alecordeirosilva.blogspot.com/ > >Porque esta é a vontade de Deus, a saber, a vossa >santificação: que vos abstenhais da prostituição. >(1º Tessalonicenses 4:3) > > > > >Em Terça-feira, 21 de Outubro de 2014 23:06, "Aroldo Rique aro...@gmail.com >[oracle_br]" escreveu: > > > > >Prezados, estamos com uma dúvida aqui no meu trabalho com relação a geração de >um código. É um sistema WEB desenvolvido em JAVA e com vários atendentes o >utilizando no Brasil inteiro. O Banco de dados é Oracle. Todos as classes >Services estão com a annotation @Transactional do Spring. > >Temos uma tabela chamada MANIFESTACAO, que possui uma sequence como chave >primária (campo ID_MANIFESTACAO). Essa tabela também possui vários outros >campos. Até agora, toda consulta para identificar cada manifestação é >realizada através do campo ID_MANIFESTACAO. > >Nosso cliente quer, agora, que a consulta seja feita através de outro código, >que seja mais legível. Sugeriu, então, que cada manifestação, daqui por >diante, ganhe um novo código que irá identificá-la. Esse código deve ser no >formato NNN, onde o é o ano corrente e os NNN é uma sequencia >de números. Na virada de ano, a sequencia de números é zerada. > >Exemplos desse novo código: >2014001 >2014002 >. >. >. >2014325 >. >. >. >2015001 >2015002 > >Para cada registro guardado na tabela manifestação, é gerado um código que é o >incremento do código anterior, exceto na virada do ano. > >Precisamos criar um campo CODIGO (que será unique) na tabela MANIFESTACAO. Até >aí, tudo bem. O problema que estou passando é justamente como gerar esse >código. > >Criamos uma trigger para a geração automática desses códigos. Criamos também >uma tabela chamada GERACAO_CODIGO, que possui 2 campos, ANO e CONTADOR, para >
Re: [oracle_br] Problema para gerar código ANO + Sequencial
Olá Aroldo, Para garantir consistência e evitar a contenção você preisa alterar dois pontos da sua trigger: 1º Altere a trigger para ser uma Transação Autônoma usando o pragma autonomous_transaction. Isto irar fazer que a trigger não participa da transação principal e irar permitir de outras transações consulte os novos dados (update incrementado) após o termino da trigger com um COMMIT independente se a transação principal terminou ou não. 2º Coloque um LOCK no seu select com FOR UPDATE, ficando assim: select nvl(contador + 1,1) into p_contador from geracao_codigo where ano = pano FOR UPDATE; Assim, se uma trigger for disparada, mas já existir uma primeira trigger ainda em execução, a 2º trigger aguardará o termino da primeira triiger e só assim consultará o novo valor. O LOCK será relativamente rapido, pois o LOCK ocorre somente durante a execução da Trigger r não da transação toda; Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Terça-feira, 21 de Outubro de 2014 23:06, "Aroldo Rique aro...@gmail.com [oracle_br]" escreveu: Prezados, estamos com uma dúvida aqui no meu trabalho com relação a geração de um código. É um sistema WEB desenvolvido em JAVA e com vários atendentes o utilizando no Brasil inteiro. O Banco de dados é Oracle. Todos as classes Services estão com a annotation @Transactional do Spring. Temos uma tabela chamada MANIFESTACAO, que possui uma sequence como chave primária (campo ID_MANIFESTACAO). Essa tabela também possui vários outros campos. Até agora, toda consulta para identificar cada manifestação é realizada através do campo ID_MANIFESTACAO. Nosso cliente quer, agora, que a consulta seja feita através de outro código, que seja mais legível. Sugeriu, então, que cada manifestação, daqui por diante, ganhe um novo código que irá identificá-la. Esse código deve ser no formato NNN, onde o é o ano corrente e os NNN é uma sequencia de números. Na virada de ano, a sequencia de números é zerada. Exemplos desse novo código: 2014001 2014002 . . . 2014325 . . . 2015001 2015002 Para cada registro guardado na tabela manifestação, é gerado um código que é o incremento do código anterior, exceto na virada do ano. Precisamos criar um campo CODIGO (que será unique) na tabela MANIFESTACAO. Até aí, tudo bem. O problema que estou passando é justamente como gerar esse código. Criamos uma trigger para a geração automática desses códigos. Criamos também uma tabela chamada GERACAO_CODIGO, que possui 2 campos, ANO e CONTADOR, para ajudar na criação dos códigos. Não sabemos se a trigger é a melhor alternativa Essa tabela GERACAO_CODIGO terá apenas 2 campos, o campo ANO e o campo CONTADOR. Inicialmente, a tabela conterá apenas 1 registro (abaixo): ANO CONTADOR 20140 Essa tabela servirá apenas para ajudar na geração do campo CODIGO da tabela MANIFESTACAO. O campo CODIGO será formado pelo ano corrente da data do cadastro da manifestação concatenado om o campo CONTADOR + 1 da tabela GERACAO_CODIGO. Então, após o primeiro insert na tabela MANIFESTACAO, o campo CODIGO receberá o valor 2014001 e a tabela GERACAO_CODIGO sofrerá um update, ficando assim: ANO CONTADOR 20141 Com novas inserções na tabela MANIFESTACAO, novos códigos serão gerados e novos updates na tabela GERACAO_CODIGO serão relizados: ANO CONTADOR 20142 ANO CONTADOR 20143 . . . ANO CONTADOR 20141569 Para a geração do CODIGO, optamos por utilizar uma trigger BEFORE INSERT para a tabela MANIFESTACAO. O código para essa trigger é o seguinte: view plaincopy to clipboardprint? 1. CREATE OR REPLACE TRIGGER TRIGGER_GERA_CODIGO BEFORE INSERT ON MANIFESTACAO 2. FOR EACH ROW 3. DECLARE 4. P_ANO NUMBER(4); 5. P_CONTADOR NUMBER(11); 6. P_CODIGO NUMBER(11); 7. BEGIN 8. 9. --recupera o ano da data do cadastro da manifestação 10. P_ANO := to_number(tochar(:NEW.DT_CADASTRO_MANIFESTACAO,'')); 11. 12. --recupera o valor do campo contador e coloca o resultado na variável P_CONTADOR, já incrementando o seu valor. A variável P_CONTADOR ajudará a formar o campo CODIGO 13. SELECT NVL(CONTADOR + 1,1) 14. INTO P_CONTADOR 15. FROM GERACAO_CODIGO WHERE ANO = PANO; 16. 17. --atualiza a tabela GERACAO_CODIGO. Se a variável P_CONTADOR for maior que 1, devo apenas atualizar o campo CONTADOR do ano correspondente com o seu novo valor, já incrementado 18. IF (P_CONTADOR > 1) THEN 19. UPDATE GERACAO_CODIGO 20. SET CONTADOR =
Re: [oracle_br] Re: SGA - nK Buffer Cache
Olá Chiappa, Apenas um adendo sobre a sua informa de leitura de blocos e armazenamento em cache. 1º "Ocorre no RDBMS Oracle é que a informação numa tabela NUNCA é lida um registro/uma linha por vez, mesmo que seja apenas uma linha que interessa ao SQL em execução" Em ambiente Oracle tradicional sim isso é verdadeiro mas no Exadata existe um recurso chamado Smart Scan que processa consultas na camada de armazenamento, retornando somente linhas e colunas relevantes para o servidor de banco de dados. 2º "Sempre o que ocorre obrigatoriamente é que o BLOCO aonde a linha reside é localizado e esse bloco TODO (contendo não só a linha de interesse mas n outras) é trazido para o cache" Por padrão sim é verdadeiro, mas existe um recurso no Oracle chamado Direct Path Reads que orienta o Oracle a ignorar o "Buffer Cache". Isso pode ser extremamente útil em por exemplo de relatório extramemente complexo e com muitos dados, mas a consulta é feita uma vez por mês e por apenas uma sessão. Sem contar que consultas realizadas com paralelismo usam o Direct Path Reads. Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Terça-feira, 7 de Outubro de 2014 20:03, "Leandro Saes saes.lean...@gmail.com [oracle_br]" escreveu: Chiappa, Obrigado pelo complemento ! Ajudou absurdamente... rs Abs. Em 7 de outubro de 2014 10:45, jlchia...@yahoo.com.br [oracle_br] escreveu: > >Não é difícil se pensar em casos onde isso pode fazer alguma diferença : >primeiro pensando em ambientes OLTP, o que ocorre no RDBMS Oracle é que a >informação numa tabela NUNCA é lida um registro/uma linha por vez, >mesmo que seja apenas uma linha que interessa ao SQL em execução : sempre o >que ocorre obrigatoriamente é que o BLOCO aonde a linha reside é localizado e >esse bloco TODO (contendo não só a linha de interesse mas n outras) é trazido >para o cache, ok ? Isso é feito na esperança de que as n outras linhas que >estavam no bloco sejam em breve necessárias, aí já estando no cache vc poupou >I/Os, right ? Ora, com um bloco maior vc tem mais espaço para mais linhas, >assim esse único single block I/O trouxe mais linhas pro cache e portanto em >tese vc AUMENTA as chances de que no futuro breve as próximas linhas >necessárias sejam encontradas no cache... > O segundo cenário seriam sistemas DW/batch/DSS, onde tipicamente vc quer > recuperar uma enorme quantidade de linhas decada tabela : nesse caso, via de > regra como o RDBMS "sabe" que é quase que a totalidade da tabela que vai > precisar ser lida , ele vai optar por table full scan/index fast full scan, > caso em que ele fará I/Os multiblock (ou seja, ao invés de ler um bloco por > vez a tabela/índice, ele opta por ler todo um extent de uma vez, acessando > muitos blocos de uma vez só num único I/O) : evidentemente, se nesse único > I/O de x kbytes se vc conseguiu recuperar mais linhas e seu objetivo é ler > todas ou quase todas as linhas, óbvio que esse único I/O foi mais "rendoso", > mais eficiente, vc recuperou mais linhas da tabela com esse único I/O, no > final das contas menos I/Os serão necessários para se recuperar as linhas > todas... > > Evidentemente : > > a) pensando no OLTP, quando se fala em cache, nós estamos falando de CHANCES, > de ESTATÍSTICA : absolutamente NINGUÉM garante esse que as linhas cacheadas > por esse único single block I/O ** vão ** ser exigidas mesmo no futuro breve, > e que assim vc vai poupar I/Os, yep ?? > > b) podem haver overheads e riscos ** CLAROS ** e pesados com blocos grandes : > por exemplo, no RDBMS Oracle, os DMLs necessariamente ocorrem no bloco, e já > que ele é um banco multi-usuário, ele TEM que "travar" o bloco que vai ser > alterado na fração de segundo em que a alteração ocorre (o chamado LATCH) - > não é impossível que num bloco maior, contendo mais linhas, mais sessões > tenham que acessar as linhas desse bloco, mais sessões estarão esperando pelo > latch, portanto : isso é a contenção de linhas por bloco... > Outro ponto técnico é que no RDBMS Oracle o lock é feito por LINHA (ao > contrário de outros RDBMSs, em que pode haver lock por bloco/página) : isso > traz o efeito positivo que uma sessão A acessando/alterando uma linha X *** > NUNCA *** vai ser bloqueada por uma sessão B acessando/alterando uma linha Y > que calhou de estar no mesmo bloco/página Porém, essa informação TEM que > ser gravada no próprio bloco (é o chamado ITL, Interested Transaction List) - > com um bloco maior logicamente vc vai ter mais linhas presentes no bloco, > então
Re: [oracle_br] Re: Query resultados diferentes
Rafael, será que não existe uma política de VPD este seu banco de dados? Consulte a view dba_policies para confirmar isso. Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Quinta-feira, 4 de Setembro de 2014 8:56, "Rafael Mendonca raffaell.t...@yahoo.com [oracle_br]" escreveu: Obrigado a todos pela ajuda, mas até agora não consegui resolver a seguinte questão. a) Resposta: Só existe um sinonimo publico e ele é do tipo PUBLIC. Todas as tabelas/views envolvidas possuem o owner na frente, ou seja, não utiliza sinonimo, e o sinonimo aponta para a tabela original, descartando essa opção. b) Resposta: Verifiquei e não existe nenhuma trigger refenciando os objetos envolvidos na query. c) Resposta: A query chama função que executando com diferentes usuários e o próprio owner traz o mesmo valor SELECT xuxa.nval_const('$$TipExpMandPrisao') FROM dual resultado= 47 d) Tirei o trace e achei uma coisa estranha: (Trace do owner dos objetos envolvidos na consulta) Rows (1st) Rows (avg) Rows (max) Row Source Operation -- -- -- --- 1 1 1 TABLE ACCESS BY INDEX ROWID PAIS (cr=2 pr=0 pw=0 time=28 us cost=2 size=12 card=1) 1 1 1 INDEX RANGE SCAN PAIS_PK (cr=1 pr=0 pw=0 time=16 us cost=1 size=0 card=1)(object id 78756) 4 4 4 TABLE ACCESS BY INDEX ROWID CIDADE (cr=9 pr=4 pw=0 time=24574 us cost=3 size=17 card=1) 4 4 4 INDEX RANGE SCAN CIDADE_PK (cr=5 pr=2 pw=0 time=14226 us cost=2 size=0 card=1)(object id 78412) 3 3 3 TABLE ACCESS BY INDEX ROWID TIPOPROCEDPREVIOPROC (cr=5 pr=1 pw=0 time=3324 us cost=1 size=23 card=1) ... ... ... Rows Execution Plan --- --- 0 SELECT STATEMENT MODE: ALL_ROWS 1 TABLE ACCESS MODE: ANALYZED (BY INDEX ROWID) OF 'PAIS' (TABLE) 1INDEX MODE: ANALYZED (RANGE SCAN) OF 'PAIS_PK' (INDEX (UNIQUE)) 4 TABLE ACCESS MODE: ANALYZED (BY INDEX ROWID) OF 'CIDADE' (TABLE) 4INDEX MODE: ANALYZED (RANGE SCAN) OF 'CIDADE_PK' (INDEX (UNIQUE)) 3 TABLE ACCESS MODE: ANALYZED (BY INDEX ROWID) OF 'TIPOPROCEDPREVIOPROC' (TABLE) ... ... trace do usuário que tras apenas 1 única linha: Rows (1st) Rows (avg) Rows (max) Row Source Operation -- -- -- --- 1 1 1 TABLE ACCESS BY INDEX ROWID PAIS (cr=2 pr=0 pw=0 time=19 us cost=2 size=12 card=1) 1 1 1 INDEX RANGE SCAN PAIS_PK (cr=1 pr=0 pw=0 time=12 us cost=1 size=0 card=1)(object id 78756) 1 1 1 TABLE ACCESS BY INDEX ROWID CIDADE (cr=3 pr=0 pw=0 time=16 us cost=3 size=17 card=1) 1 1 1 INDEX RANGE SCAN CIDADE_PK (cr=2 pr=0 pw=0 time=11 us cost=2 size=0 card=1)(object id 78412) 1 1 1 TABLE ACCESS BY INDEX ROWID TIPOPROCEDPREVIOPROC (cr=2 pr=0 pw=0 time=11 us cost=1 size=23 card=1) 0 SELECT STATEMENT MODE: ALL_ROWS 1 TABLE ACCESS MODE: ANALYZED (BY INDEX ROWID) OF 'PAIS' (TABLE) 1INDEX MODE: ANALYZED (RANGE SCAN) OF 'PAIS_PK' (INDEX (UNIQUE)) 1 TABLE ACCESS MODE: ANALYZED (BY INDEX ROWID) OF 'CIDADE' (TABLE) 1INDEX MODE: ANALYZED (RANGE SCAN) OF 'CIDADE_PK' (INDEX (UNIQUE)) 1 TABLE ACCESS MODE: ANALYZED (BY INDEX ROWID) OF 'TIPOPROCEDPREVIOPROC' (TABLE) ... ... Consultando essas tabelas elas trazem o mesmo número de linhas. Em qua, 3/9/14, jlchia...@yahoo.com.br [oracle_br] escreveu: Assunto: [oracle_br] Re: Query resultados diferentes Para: oracle_br@yahoogrupos.com.br Data: Quarta-feira, 3 de Setembro de 2014, 18:24 Com quase Absoluta certeza, eu diria que : a) um dos usuários contém sinônimos apontando para outros locais OU b) há triggers (talvez triggers de logon) e/ou controles FGAC que filtram o resultset e/ou atribuem privilégios diferentes/roles diferentes cfrme cada usuário conecta OU c) a query chama funções/procedures PL/SQL que se comportam diferentemente cfrem o usuário conectado OU d) uma opção muito possível, a query não é ** BLINDADA ** contra diferenças de NLS (usando TO_DATE, não confiando em conversões implícitas, etc) e as sessões dos usuários estão com settings NLS diferentes Ou derivações dos temas... => Para vc descobrir qual desses é o caso, eu Sugiro que vc , usando EXATAMENTE O MESMO programa-cliente (sqlplus se possível), na mesma máquina, abra uma sessão para cada usuário a testar, consulte a NLS_SESSION_PARAMETERS e a ALL_OBJECTS dentro de cada sessão, ative o TRACE DE SQL em cada sessão e execute o exato mesmo SQL em cada
Re: [oracle_br] Erro datafile corrompido no restore do rman
Emerson Como você restaurou o CONTROLFILE usa a sintax que o erro esta te indicando. RMAN-11003: falha durante anßlise/execuþÒo da instruþÒo do SQL: alter database recover if needed start until cancel using backup controlfile Faz assim: No RMAn faz ate o RESTORE, depois no SQLPLUS faz o Restore sql> recover database using backup controlfile until cancel; Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Sexta-feira, 29 de Agosto de 2014 13:09, "Emerson Martins emersonmarti...@gmail.com [oracle_br]" escreveu: Boa tarde pessoal. Estou com a seguinte situação num teste de restore. Efetuei backup full de um bd run { allocate channel c1 type disk FORMAT 'D:\duplicate\df_%d_%s_%p_%t.dbf' maxpiecesize 3000M; backup tag 'BackupDatabaseFullDiario' database; sql 'alter system archive log current'; backup tag 'BackupArchivelogDiario' archivelog all delete input; backup tag 'BackupCurrentControlfile' current controlfile; delete noprompt obsolete ; CROSSCHECK BACKUPSET; CROSSCHECK COPY; crosscheck archivelog all ; DELETE NOPROMPT EXPIRED BACKUP; DELETE NOPROMPT EXPIRED COPY; release channel c1;} set ORACLE_SID=prod rman target / Gerenciador de RecuperaþÒo: Release 11.2.0.2.0 - Production on Ter Mar 18 22:18:46 2014 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. conectado ao banco de dados de destino (nÒo iniciado) RMAN> set dbid=222355883 RMAN> startup force pfile='D:\BACKUP_RMAN\PROD\initPROD.ora' nomount; RMAN> restore spfile from 'F:\duplicate\CONTROLFILE_C-222355883-20140829-01'; RMAN> restore controlfile from 'D:\Oracle\fast_recovery_area\autobackup\CONTROLFILE_C-222355883-20140317-00'; Iniciando restore em 18/03/14 utilizando o canal ORA_DISK_1 canal ORA_DISK_1: restaurando arquivo de controle canal ORA_DISK_1: restauraþÒo concluÝda, tempo decorrido: 00:00:03 nome do arquivo de saÝda=C:\ORACLE\ORADATA\PROD\CONTROL01.CTL nome do arquivo de saÝda=C:\ORACLE\FAST_RECOVERY_AREA\PROD\CONTROL02.CTL nome do arquivo de saÝda=D:\ORACLE\FAST_RECOVERY_AREA\PROD\CONTROL03.CTL Finalizado restore em 18/03/14 RMAN> shutdown immediate; RMAN> startup force pfile='D:\BACKUP_RMAN\PROD\initPROD.ora' nomount; RMAN> alter database mount; banco de dados montado canal liberado: ORA_DISK_1 crosscheck archivelog all; crosscheck backup; crosscheck backup of database; delete expired archivelog all; delete expired backup; delete obsolete; shutdown; startup mount; Até aqui ok! run { SET NEWNAME FOR DATAFILE 1 TO 'C:\ORACLE\ORADATA\PROD\SYSTEM01.DBF'; SET NEWNAME FOR DATAFILE 2 TO 'C:\ORACLE\ORADATA\PROD\SYSAUX01.DBF'; ... SET NEWNAME FOR DATAFILE 00061 TO 'C:\ORACLE\ORADATA\PROD\WPDINDICES11.DBF'; SET NEWNAME FOR DATAFILE 00062 TO 'C:\ORACLE\ORADATA\PROD\WPDINDICES12.DBF'; restore database; switch datafile all; recover database; } . Iniciando recover em 29/08/14 utilizando o canal ORA_DISK_1 iniciar recuperaþÒo de mÝdia recuperaþÒo de mÝdia falhou RMAN-00571: === RMAN-00569: === ERROR MESSAGE STACK FOLLOWS === RMAN-00571: === RMAN-03002: falha do comando recover em 08/29/2014 09:13:32 ORA-00283: recovery session canceled due to errors RMAN-11003: falha durante anßlise/execuþÒo da instruþÒo do SQL: alter database recover if needed start until cancel using backup controlfile ORA-00283: recovery session canceled due to errors ORA-01110: data file 55: 'C:\ORACLE\ORADATA\PROD\WPDINDICES11.DBF' ORA-01122: database file 55 failed verification check ORA-01110: data file 55: 'C:\ORACLE\ORADATA\PROD\WPDINDICES11.DBF' ORA-01210: data file header is media corrupt A mensagem é clara estou com um datafile corrompido aqui.. Após isso usei o comando abaixo para analisar o grau do problema. Pelo que entendi por conta da falha do recover não foi possivel efetuar o recover do principal datafile mostrado abaixo pelo grau de criticidade. RMAN> advise failure all; Lista de Falhas do Banco de Dados = ID da Falha Status da PrioridadeHorßrio da DetecþÒo Resumo --- - --- --- 1225CRITICAL OPEN 29/08/14Arquivo de dados do sistema 1: 'C:\ORACLE\ORADATA\PROD\SYSTEM01.DBF' precisa de recupera a 42 CRITICAL OPEN 29/08/14O arquivo de controle precisa de recuperaþÒo de mÝdia 1546HIGH OPEN 29/08/14Um ou mais arquivos de dados que nÒo sÒo do sistema estÒo corrompidos 474 HIGH OPEN
Re: [oracle_br] Dica sobre ferramenta de Tuning
Willian, Sobre o "índice muito fragmentado é problema" veja o que o Portilho e explica isso como Lenda: http://www.profissionaloracle.com.br/gpo/servicos/easyblog/blogueiros/entry/2011/08/24/para-os-desfragmentadores-de-plantao http://nervinformatica.com.br/Downloads/HowToStopDesfragmentingAndStartLiving.pdf Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Sexta-feira, 29 de Agosto de 2014 10:48, "Wiliam Balan wiliamba...@gmail.com [oracle_br]" escreveu: Olá Pessoal da lista Oracle Estou fazendo um trabalho academico e gostaria de trabalhar com Seleção de índices, mas vejo que vários SGBds já tem ferramentas que fazem isso. No ORACLE sito: - http://docs.oracle.com/cd/B28359_01/server.111/b28274/sql_tune.htm#CHDJDFGE - http://docs.oracle.com/cd/B19306_01/server.102/b14211/advisor.htm Ainda não vi nenhuma ferramenta que verifique/analise os índices existentes e verifique se estão FRAGMENTADOS para então fazer o Rebuild daquele índice ou mesmo apagar e criá-lo de novo. Pois um índice muito fragmentado é problema. Voces já ouviram falar de alguma ferramenta que faz isso, verificar e corrigir a fragmentação de indices? Qualquer ajuda é bem vinda. []'s Wiliam
[oracle_br] Obter a pilha de execução
Olá Senhore, Com a função DBMS_UTILITY.FORMAT_CALL_STACK eu consigo obter a pilha de chamada PL/SQL da sessão corrente. Todavia eu precisaria pegar a pilha de chamada de uma outra sessão ativa. Alguém conhece alguma função/View que me retorna a pilah de execução de uma sessão ativa? Obrigado! Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3)
Re: [oracle_br] Oracle XE ou postgreSQL
Olá Mario, Bom, primeiro de tudo você deve analisar as limitações do BD's e ver se te atende. No caso do XE existe limitação de crescimento, por exemplo, que é de 10Giga de dados para Versão 11g do Xe. Ao passo que o PostGre não tem esta limitação. Como você disse que que as aplicações não chega a 10 usuários, é bem provável que você ainda esteja longe a atingir a limitação do XE, mas como sempre é melhor você conferir e fazer uma analisa melhor. Eu neste cenário iria de XE, pois como você tem procedures, packages, triggers e views já mostra que você esta usando recurso de banco para aplicação de regra de negocio, o que seria bem mais adepto ocasionando bem menos transtornos a você este migração. Mas pode ficar a duvida e se... depois de algum tempo o meu cliente estiver com muito usuários ao mesmo tempo e o banco ficar maior que os 10Giga de dados? S o seu cliente chegou neste estagio migre para uma versão paga do Oracle - pode ser o Standard ao inves do enterprise. E ainda se o cliente cresceu então ai que não faz sentido fazer um downgrade deBanco, seria algo mais natural usar um banco com todo o suporte. Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Quarta-feira, 13 de Agosto de 2014 10:27, "Mario Rodrigues marioirodrig...@gmail.com [oracle_br]" escreveu: Pessoal Bom Dia Inicialmente, gostaria de deixar registrado que não sou DBA ... ou seja essa parte de administração sou quase um zero a esquerda, mas como o grupo sempre me ajudou (não só a mim claro) segue a duvida. Temos uma aplicação, que roda muito bem no enterprise. Estamos pensando em migrar 2 clientes para o Oracle XE, pergunta aos srs vamos ter problemas de alguma natureza? Fato: Nos 2 clientes o numero de usuários não chega a 10. Nem todos usam ao mesmo tempo O que é usado do banco é basicamente procedures, packages, triggers, views, sequences enfim os objetos básicos ... Uma segunda opção seria migrarmos para postgreSQL ... qual a opinião dos srs??? Obrigado.
Re: [oracle_br] Re: ORA-02024: link de banco de dados não localizado
Rafael, eu não vi nos historico das conversa você mencionar com qual usuario você esta tentando dropar o database link? Porque pelos testes que fiz aqui somente o proprio usuario do Schema consegue dropar o Database Link. Neste exemplo criei um DBLINK com SYSTEM e tentei dropar com SYS com os comandos; drop database link XUXA.US.ORACLE.COM; e drop database link SYSTEM.XUXA.US.ORACLE.COM. No caso ao logar com SYS e tentar dropar com OWNER.DBLINK o banco acredita que dentro do SYS tem um BDLINK com o nome SYSTEM.XUXA.US.ORACLE.COM e não dropar BDLINK do SYSTEM. Exemplo: C:\>sqlplus /nolog SQL*Plus: Release 11.2.0.1.0 Production on Qui Jul 31 17:45:07 2014 Copyright (c) 1982, 2010, Oracle. All rights reserved. SQL> connect system/senha Conectado. SQL> create database link XUXA.US.ORACLE.COM connect to system identified by sen ha using 'bdagnus'; VÝnculo de banco de dados criado. SQL> disconn Desconectado de Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bi t Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> connect sys/senha as sysdba Conectado. SQL> drop database link XUXA.US.ORACLE.COM; drop database link XUXA.US.ORACLE.COM * ERRO na linha 1: ORA-02024: link de banco de dados nÒo localizado SQL> drop database link SYSTEM.XUXA.US.ORACLE.COM; drop database link SYSTEM.XUXA.US.ORACLE.COM * ERRO na linha 1: ORA-02024: link de banco de dados nÒo localizado SQL> connect system/senha Conectado. SQL> drop database link XUXA.US.ORACLE.COM; VÝnculo de banco de dados eliminado. SQL> Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Quinta-feira, 31 de Julho de 2014 15:53, "Rafael Mendonca raffaell.t...@yahoo.com [oracle_br]" escreveu: Alessandro, obrigado pela ajuda/atenção. Esse erro é bem semelhante, mas não é a causa do problema. Chiappa, realmente esse domain é o que está acarretando esse erro. Realmente com esse exemplo dado, acho que você matou a xarada. Irei criar um chamado com a Oracle e irei mostrar todas essas informações. Obrigado mestre dos DBA'S (: Em Quinta-feira, 31 de Julho de 2014 16:35, "Alessandro Lúcio Cordeiro da Silva alecordeirosi...@yahoo.com.br [oracle_br]" escreveu: Consegui reproduzir seu erro aqui. O erro ocorre quando o Global_name é alterado depois de criar o BDLINK. Voltei ao nome original e resolveu o problema; Veja: Microsoft Windows [versão 6.1.7601] Copyright (c) 2009 Microsoft Corporation. Todos os direitos reservados. C:\Users\c8757887>cd\ C:\>set oracle_sid=bdagnus C:\>sqlplus /nolog SQL*Plus: Release 11.2.0.1.0 Production on Qui Jul 31 15:22:07 2014 Copyright (c) 1982, 2010, Oracle. All rights reserved. SQL> connect sys/senha as sysdba Conectado. SQL> select * from global_name; GLOBAL_NAME BDAGNUS SQL> create database link TESTE_XUXA connect to system identified by senha using 'bdagnus'; VÝnculo de banco de dados criado. SQL> select * from v$instance@teste_xuxa; INSTANCE_NUMBER INSTANCE_NAME --- HOST_NAME VERSION STARTUP_TI STATUS PAR THREAD# ARCHIVE LOG_SWITCH_WAIT - -- --- -- --- --- LOGINS SHU DATABASE_STATUS INSTANCE_ROLE ACTIVE_ST BLO -- --- - -- - --- 1 bdagnus CE-UGTI-673126 11.2.0.1.0 31/07/2014 OPEN NO 1 STOPPED ALLOWED NO ACTIVE PRIMARY_INSTANCE NORMAL NO SQL> disconn Desconectado de Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bi t Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> connect sys/senha as sysdba Conectado. SQL> UPDATE GLOBAL_NAME SET GLOBAL_NAME = 'MEUBANCO'; 1 linha atualizada. SQL> ALTER DATABASE RENAME GLOBAL_NAME TO MEUBANCO; Banco de dados alterado. SQL> drop database link teste_xuxa; drop database link teste_xuxa * ERRO na linha 1: ORA-02024: link de banco de dados nÒo localizado SQL> disconn Desconectado de Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bi t Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> connect sys/senha as sysdba Conectado. SQL> UPDATE GLOBAL_NAME SET GLOBAL_NAME = 'BDAGNUS'; 1 linha atualizada. SQL> ALTER DATABASE RENAME GLOBAL_NAME TO BDAGNUS; Banco de dados alterado. SQL> dr
Re: [oracle_br] Re: ORA-02024: link de banco de dados não localizado
Consegui reproduzir seu erro aqui. O erro ocorre quando o Global_name é alterado depois de criar o BDLINK. Voltei ao nome original e resolveu o problema; Veja: Microsoft Windows [versão 6.1.7601] Copyright (c) 2009 Microsoft Corporation. Todos os direitos reservados. C:\Users\c8757887>cd\ C:\>set oracle_sid=bdagnus C:\>sqlplus /nolog SQL*Plus: Release 11.2.0.1.0 Production on Qui Jul 31 15:22:07 2014 Copyright (c) 1982, 2010, Oracle. All rights reserved. SQL> connect sys/senha as sysdba Conectado. SQL> select * from global_name; GLOBAL_NAME BDAGNUS SQL> create database link TESTE_XUXA connect to system identified by senha using 'bdagnus'; VÝnculo de banco de dados criado. SQL> select * from v$instance@teste_xuxa; INSTANCE_NUMBER INSTANCE_NAME --- HOST_NAME VERSION STARTUP_TI STATUS PAR THREAD# ARCHIVE LOG_SWITCH_WAIT - -- --- -- --- --- LOGINS SHU DATABASE_STATUS INSTANCE_ROLE ACTIVE_ST BLO -- --- - -- - --- 1 bdagnus CE-UGTI-673126 11.2.0.1.0 31/07/2014 OPEN NO 1 STOPPED ALLOWED NO ACTIVE PRIMARY_INSTANCE NORMAL NO SQL> disconn Desconectado de Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bi t Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> connect sys/senha as sysdba Conectado. SQL> UPDATE GLOBAL_NAME SET GLOBAL_NAME = 'MEUBANCO'; 1 linha atualizada. SQL> ALTER DATABASE RENAME GLOBAL_NAME TO MEUBANCO; Banco de dados alterado. SQL> drop database link teste_xuxa; drop database link teste_xuxa * ERRO na linha 1: ORA-02024: link de banco de dados nÒo localizado SQL> disconn Desconectado de Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bi t Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> connect sys/senha as sysdba Conectado. SQL> UPDATE GLOBAL_NAME SET GLOBAL_NAME = 'BDAGNUS'; 1 linha atualizada. SQL> ALTER DATABASE RENAME GLOBAL_NAME TO BDAGNUS; Banco de dados alterado. SQL> drop database link teste_xuxa; VÝnculo de banco de dados eliminado. SQL> Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Quinta-feira, 31 de Julho de 2014 15:27, "jlchia...@yahoo.com.br [oracle_br]" escreveu: Ok - o que eu Aponto é que o teu parâmetro de DOMAIN tá nulo, pelo jeito : show parameter domain NAME TYPE VALUE --- -- db_domain string ==> mas vc ** TEM ** um DOMAIN no nome, que é esse "US.ORACLE.COM" SQL> select * from sys.link$ where name='XUXA.US.ORACLE.COM'; 224 XUXA.US.ORACLE.COM 24-NOV-12 SARHMLG SPDDBA01 2 05C92E9282E6C75EEE16232A0A6EC27FAFF10D19944AA37649 > Isso *** NÂO *** deveria acontecer de forma alguma se esses valores/parãmetros acima sempre tivessem se mantido os mesmos, exemplo : SYSTEM:@O11GR2:SQL>select * from global_name; GLOBAL_NAME - O11GR2 SYSTEM:@O11GR2:SQL>show parameter domain NAME TYPE VALUE --- -- db_domain string SYSTEM:@O11GR2:SQL>show parameter global_name NAME TYPE VALUE --- -- global_names boolean FALSE SYSTEM:@O11GR2:SQL>select * from global_name; GLOBAL_NAME - O11GR2 ==> legal, estou que nem vc mostrou, SEM domínio e com GLOBAL_NAME=FALSE : SYSTEM:@O11GR2:SQL>create database link teste connect to system identified by oracle using 'XE'; Vínculo de banco de dados criado. SYSTEM:@O11GR2:SQL>select * from dba_db_links where db_link like '%TEST%'; OWNER DB_LINK USERNAME HOST CREATED --- SYSTEM TESTE SYST
Re: [oracle_br] Re: ORA-02024: link de banco de dados não localizado
Tente Drop database link SPDDBA01.XUXA; sem o dominio. Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Quinta-feira, 31 de Julho de 2014 14:59, "jlchia...@yahoo.com.br [oracle_br]" escreveu: Na verdade não é só o valor da propriedade GLOBAL_NAME que interefere : o valor do Domínio também entra em consideração, bem como o valor do parâmetro de inicialização GLOBAL_NAMES Verifique e CONFIRME que nada disso mudou depois da criação do database link, manda no sqlplus uns : show parameter domain show parameter global select * from sys.link$ where name='NOMEDOTEUDATABASELINK'; select * from global_name; ==> caso esteja tudo certo E vc obtenha provas que não foi alterado nada disso depois da criação do dblink, é Alta a Chance de vc ter algum bug/corrupção no dicionário de dados - verifique isso num Chamado com o Suporte Oracle. []s Chiappa
Re: [oracle_br] Re: Restore co m Logfile em no va Localização
Eu acredito que funciona sim. Eu estava tentando via restore pq já estava bem adiantado o Script. Eu sou tentar usar o duplicate. Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Sexta-feira, 25 de Julho de 2014 14:47, "Élisson Ferraz Almeida elisson.fer...@gmail.com [oracle_br]" escreveu: Nao daria pra fazer um duplicate target database to no rman? vc seta os dois parametros abaxio no spfile/pfile do banco destino, nunca fiz automatizado mas o duplicate na mao jah fiz varias vezes e deu certo. log_file_name_convert='origem','destino'db_file_name_convert='origem','destino' Atenciosamente, Élisson Ferraz Almeida Empty your mind, be formless. Be shapeless like water. If you put water into a cup, it becomes the cup. You put water into a bottle and it becomes the bottle. If you put it in a teapot it becomes the teapot. Water can flow or can crash. Be water my friend. --Bruce Lee http://www.linkedin.com/in/elissonferraz --Linkedin Profile 2014-07-24 23:30 GMT-03:00 Alessandro Lúcio Cordeiro da Silva alecordeirosi...@yahoo.com.br [oracle_br] : > >Olá Chiappa, > > >O Banco de Produção está em FileSystem normal do windows(sem ASM) e ele >realiza backup's multiplexados tanto no disco local e em um mapeamento de rede >em um servidor de backup. > >Os archives estão sendo escrito tanto local como neste mapeamento de rede. >Além disso o Banco de Produção esta configurado para realizar o autobackup do >ControlFile na area de mapeamento de rede. > > >Então o meu script (na verdade um conjunto de script de chama outros script) >que roda no servidor de teste é basicamento dar um DROP no Banco de Teste, >iniciar com PFILE e depois restaurar a partir da area compartilhada de rede. > >Eu não tenho problema com controlfile (pois ele é criado onde aponta o parametro init e não preciso especificar o arquivo de backup com a sintaxe de AUTOBACKUP) nem com os DataFiles ( no RUN do Rman seto o parametro DB_CREATE_FILE_DEST e uso a sintaxe NEWNAME FOR DATABASE TO NEW). O meu problema é os REDOLOG que eu pensava que ao serem recriados com OPEN RESETLOGS o Oracle iria criar na pasta LOGFILE dentro do diretorio DB_CREATE_FILE_DEST, (no momento do RESETLOG o Oracle cria esta pasta LOGFILE, mas não gera dentro dele), mas pelo que vi no RESETLOGS ele sempre tenta criar no metadado do Oracle. > >Acredito que na parte do ResetLog vou ter que colocar ou Hard-Coded ou adaptar >o script para que antes do RESETLOGS eu consulte o V$LOG para gerar um script >com os ALTER DATABASE RENAME FILE de todos os RedeLOG. > >Mas muito Obrigado pela Ajuda Chiappa. > > >Segue o Script RMAN: >run { > shutdown immediate; > startup nomount pfile='c:\app\administrator\initBDAGNUS.ora'; > set dbid=3924117592; > set controlfile autobackup format for device type disk to >'\\172.19.0.11\E$\BCK_BANCOS\BDAGNUS\AUTOBACKUP\CF_%F'; > restore controlfile from autobackup; > alter database mount; > set until time 'SYSDATE - 4/24'; > > sql 'ALTER SYSTEM SET DB_CREATE_FILE_DEST="c:\app\administrator\DATAFILE"'; > set newname for database to NEW; > restore database; > switch datafile all; > recover database; > alter database open resetlogs; > } > > >Alessandro Lúcio Cordeiro da Silva > > Analista de Sistema > >þ http://alecordeirosilva.blogspot.com/ > >Porque esta é a vontade de Deus, a saber, a vossa >santificação: que vos abstenhais da prostituição. >(1º Tessalonicenses 4:3) > >Em Quinta-feira, 24 de Julho de 2014 14:37, "jlchia...@yahoo.com.br >[oracle_br]" escreveu: > > > > > >OBS : se vc der mais detalhes (ie, confirmar que não há ASM envolvido, se os >databases em questão são single-instance, Especificar se o backup a restaurar >é COLD ou HOT, se o banco-origem está em ARCHIVE MODE ou não, etc) , posso >inclusive (dentro das minhas restrições de tempo/disponibilidade, que nem >sempre são regulares) tentar montar uns shell-scripts/sqlplus scripts de >exemplo pra vc, ok ? > >[]s > > Chiappa > >OBS : e sobre a questão dos NOMES (tanto do database restaurado quanto da >instância), vc pretende deixá-los com os mesmo nomes que vieram da >origem/produção ?? > >
Re: [oracle_br] Re: Restore co m Logfile em no va Localização
Olá Chiappa, O Banco de Produção está em FileSystem normal do windows(sem ASM) e ele realiza backup's multiplexados tanto no disco local e em um mapeamento de rede em um servidor de backup. Os archives estão sendo escrito tanto local como neste mapeamento de rede. Além disso o Banco de Produção esta configurado para realizar o autobackup do ControlFile na area de mapeamento de rede. Então o meu script (na verdade um conjunto de script de chama outros script) que roda no servidor de teste é basicamento dar um DROP no Banco de Teste, iniciar com PFILE e depois restaurar a partir da area compartilhada de rede. Eu não tenho problema com controlfile (pois ele é criado onde aponta o parametro init e não preciso especificar o arquivo de backup com a sintaxe de AUTOBACKUP) nem com os DataFiles ( no RUN do Rman seto o parametro DB_CREATE_FILE_DEST e uso a sintaxe NEWNAME FOR DATABASE TO NEW). O meu problema é os REDOLOG que eu pensava que ao serem recriados com OPEN RESETLOGS o Oracle iria criar na pasta LOGFILE dentro do diretorio DB_CREATE_FILE_DEST, (no momento do RESETLOG o Oracle cria esta pasta LOGFILE, mas não gera dentro dele), mas pelo que vi no RESETLOGS ele sempre tenta criar no metadado do Oracle. Acredito que na parte do ResetLog vou ter que colocar ou Hard-Coded ou adaptar o script para que antes do RESETLOGS eu consulte o V$LOG para gerar um script com os ALTER DATABASE RENAME FILE de todos os RedeLOG. Mas muito Obrigado pela Ajuda Chiappa. Segue o Script RMAN: run { shutdown immediate; startup nomount pfile='c:\app\administrator\initBDAGNUS.ora'; set dbid=3924117592; set controlfile autobackup format for device type disk to '\\172.19.0.11\E$\BCK_BANCOS\BDAGNUS\AUTOBACKUP\CF_%F'; restore controlfile from autobackup; alter database mount; set until time 'SYSDATE - 4/24'; sql 'ALTER SYSTEM SET DB_CREATE_FILE_DEST="c:\app\administrator\DATAFILE"'; set newname for database to NEW; restore database; switch datafile all; recover database; alter database open resetlogs; } Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Quinta-feira, 24 de Julho de 2014 14:37, "jlchia...@yahoo.com.br [oracle_br]" escreveu: OBS : se vc der mais detalhes (ie, confirmar que não há ASM envolvido, se os databases em questão são single-instance, Especificar se o backup a restaurar é COLD ou HOT, se o banco-origem está em ARCHIVE MODE ou não, etc) , posso inclusive (dentro das minhas restrições de tempo/disponibilidade, que nem sempre são regulares) tentar montar uns shell-scripts/sqlplus scripts de exemplo pra vc, ok ? []s Chiappa OBS : e sobre a questão dos NOMES (tanto do database restaurado quanto da instância), vc pretende deixá-los com os mesmo nomes que vieram da origem/produção ??
Re: [oracle_br] Re: Restore com Logfile em nova Localização
Olá Chiappa, eu não restauro o SPFILE a partir do backup porque este estaria com todos os parametros apontando para o diretorio do banco de produção, tais como control_files, audit_file_dest, diagnostic_dest. O Banco de teste já esta com SPFILE com todos os parametros apontando para o caminho correto. Então o que faço é: 1-Crio PFILE a partir do SPFILE do banco de teste. 2-DROP o banco de teste. => Neste momento o meu SPFILE também é dropado. 3-Inicio o Banco usando o PFILE criado no passo 1. 4-Restauro o ControlFile. 5-Seto o parametro DB_CREATE_FILE_DEST e restauro os datafiles para neste local. 6-Restoro e recupero o DataBase 7- ALTER DATABASE RENAME FILE em todos os redolog e depois abrir com Resetlogs. 8-Criar um SPFILE a partir do PFILE do passo 1 Isso funciona, mas como disse no e-mail anterior preciso que o script seja mais generico, pois se Adicionar/Alterar/Renomar algum RedoLog em produção este Script não mais funcionaria. Pelo que entendi na documentação se o parametro DB_CREATE_FILE_DEST estiver setado o Oracle criaria lá os RedoLog ou no DB_CREATE_ONLINE_LOG_DEST_N- Este tem precedência, mas parece que no OPEN RESETLOGS não funciona. Se eu for obrigado a ter que Restaurar o SPFILE e ter que editar inviabiliza a automatização do Script. Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Quinta-feira, 24 de Julho de 2014 11:56, "jlchia...@yahoo.com.br [oracle_br]" escreveu: Vc não diz, mas vc criou um PFILE e ** ALTEROU ** os parâmetros necessários nele, de modo que a instância a ser criada no servder-destino aponte para o path correto ??? Uma vez subida a nova instância apontando pros paths novos, vc ** TEM SIM ** que RENOMEAR os datafiles/logfiles, pois (evidentemente) os metadados presentes nos arquivos que serão resturados apontam pros paths de origem, sim ?? Isso pode ser feito com SET NEWNAME, por exemplo : dá um look em http://www.oracledistilled.com/oracle-database/restore-database-to-another-host-using-rman/ , ou no manual mesmo (Oracle® Database Backup and Recovery User's Guide cap. 19 - Performing RMAN Recovery: Advanced Scenarios , link 'Restoring a Database on a New Host' , que vc acha as refs necessárias... []s Chiappa
[oracle_br] Restore com Logfile em nova Localização
Bom dia Senhores, Estou preparando um Script que DROP o banco de dados de teste e depois usando o backup banco de dados de produção realiza o Restore. Os bancos estão em Host diferente e também os diretorios destes também são diferentes. Ambos é Windows Server 2012 com Oracle 11.2.0.4.0 Para mudar a localização dos DataFiles uso basicamente RUN { sql 'ALTER SYSTEM SET DB_CREATE_FILE_DEST="c:\app\administrator\DATAFILE"'; set newname for database to NEW; restore database; switch datafile all; recover database; alter database open resetlogs;} Os Datafiles são restaurados normalmente no diretorio apontado pelo DB_CREATE_FILE_DEST, mas os RedoLog o Oracle sempre tenta criar no diretorio do banco de produção, que não existe no de teste. Então tentei usar o parametro db_create_online_log_dest_1 como abaixo: RMAN> sql 'ALTER SYSTEM SET db_create_online_log_dest_1="c:\app\administrator\LOGFILE"'; instruþÒo sql: ALTER SYSTEM SET db_create_online_log_dest_1="c:\app\administrator\LOGFILE" RMAN> alter database open resetlogs; RMAN-00571: === RMAN-00569: === ERROR MESSAGE STACK FOLLOWS === RMAN-00571: === RMAN-03002: falha do comando alter db em 07/24/2014 10:56:54 ORA-00344: nÒo Ú possÝvel recriar log 'C:\APP\C8757887\ORADATA\BDAGNUS\REDO01.LOG' on-line ORA-27040: erro ao criar arquivo, nÒo foi possÝvel criar o arquivo OSD-04002: nÒo Ú possÝvel abrir arquivo O/S-Error: (OS 3) O sistema nÒo pode encontrar o caminho especificado. Mas mesmo assim o Oracle tenta criar no diretorio original (DB de produçã). Somente consigo abrir este banco de antes de abrir fazer o comando ALTER DATABASE RENAME FILE; mas o meu problema é que teria que informar todos os REDOLOG no script e o pior que o script não iria mais funcionar caso eu crie/altere/exclua algum REDELOG de produção. Precisaria de algo como faço com os DataFiles para o Redolog. Já tentei setando os parametros no RUN do RMAN no INIT do banco e nada. Alguma sugestão? Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3)
Re: [oracle_br] Recuperar tabela, truncate table!
Eu faria Restore incompleto baseado em TimeStamp, abreria o banco de dados no modo Read-Only e depois com o cliente confirmava se os dados da tabela está como deseja. Confirmando isso, gerava um export somente da tabela e depois fazia o Restore completo voltando ao banco para a tabela truncada, depois era só importar a tabela. Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Quinta-feira, 12 de Junho de 2014 10:02, "Rafael Mendonca raffaell.t...@yahoo.com [oracle_br]" escreveu: Pessoal, foi me dada uma missão em um cliente aonde foi perdida uma tabela importante do sistema, um determinado usuário realizou uma operação de TRUNCATE TABLE e todos os registros foram perdidos e consequentimente não foi gerado log nenhum. O problema é que o cliente só possui backups físicos, nada de backup lógico, o Flashback database não está habilidatado. A única opção que vieo a minha cabeça é fazer o restore da tablespace que possui essa tabela no momento que ela possuia registros. A minha dúvida é: 1 - Se o cliente concordar em voltar no tempo a tablespace para um momento anterior no qual essa tabela possui registros, como eu poderia saber até qual archive eu deveria aplicar antes do momento do truncate? 2 - Existe alguma outra opção de recuperação fora essa, que causaria menos impacto?
Re: [oracle_br] Recuperar banco de dados dropado
Eh cara, eu ja tinha visto e lido sobre esta tecnica (mas não do site que vc passou) , mas nunca usei, na verdade prefiro nunca precisar, pois receio que esta tecninca não dá garantias. E olha que semana passada eu dropei um banco de teste do cliente porque ele iria reaproveitar a maquina para outra coisa, mas antes disso fiz um backup frio com compress e copie este backup para o Google Drive. Vou deixar lá por algum tempo, vai que . Enfim isso me faz lembrar de uma piada que um amigo meu me contou estes dias : Pergunta o DBA Junior ao DBA Senior : "Posso apagar estes backup's?" Respondeu o Dba Senior: "Pode, mas não esqueça de copia-los antes." Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Sexta-feira, 6 de Junho de 2014 10:01, "Vitor Junior vitorj...@gmail.com [oracle_br]" escreveu: Alessandro, eu também utilizava essa técnica... UTILIZAVA! hehehehe Dá uma lida nesse artigo, que é bem interessante: http://www.pythian.com/blog/metalink-note-on-datafile-recovery-will-corrupt-database/ Att,/Regards, Vitor Jr. Infraestrutura / Infrastructure Team Oracle 11g DBA Certified Professional - OCP Oracle Certified Expert, Oracle Real Application Clusters 11g and Grid Infrastructure Administrator - OCE Oracle Database 11g Performance Tuning Certified Expert - OCE Oracle Exadata 11g Certified Implementation Specialist Oracle Certified Associate, MySQL 5 mail, gtalk e msn: vitorj...@gmail.com http://certificacaobd.com.br/ skype: vjunior1981 https://mybizcard.co/vitor.jr.385628 Em 6 de junho de 2014 09:38, Alessandro Lúcio Cordeiro da Silva alecordeirosi...@yahoo.com.br [oracle_br] escreveu: > > > > >A unica maneira que sei como restaurar os datafiles seria NÃO desligar a >instancia, e como você desligou o computador imediatamente, não iria funcionar. > > >Isto porque o DBWR dá um lock nos arquivos do Banco e ao apagar somente o >ponteiro é apagado e os datafiles ficam invisiveis. > > >A tecnica consistiria em : > > >* Encontrar o PID do DBWR, > >* Assim encontrar os arquivos abertos pelo DBWR >* Encontrar o file descriptor > >* Criar uma copia dos datafiles > > > > >Alessandro Lúcio Cordeiro da Silva > Analista de Sistema > >þ http://alecordeirosilva.blogspot.com/ > >Porque esta é a vontade de Deus, a saber, a vossa >santificação: que vos abstenhais da prostituição. >(1º Tessalonicenses 4:3) > > > > >Em Quinta-feira, 5 de Junho de 2014 20:17, "Regis Pradela >pradel...@yahoo.com.br [oracle_br]" escreveu: > > > > >Senhores, boa noite, tudo bem? > > >Hoje tivemos uma problema, após dropar um banco de dados (desenv) via RMAN, o >cliente notou que tinha algumas informações neste banco de dados que não >deveriam ser apagadas. Imediatamente desligamos o server, > fizemos um live CD e bootamos o server por este CD e executamos o ext3grep >para recuperar arquivos apagados. >Mas, após rodar a recuperação dos arquivos, somente o pfile foi encontrado. > > > Alguém já passou por isto e utilizou algum modo diferente para recuperar >estes arquivos? > > > > >No aguardo. >R.P. >DBA Oracle >Oracle Database 11g Administrator Certified Professional >Oracle Database 10g Real Applications Clusters AdministratorCertified Expert >Oracle Enterprise Linux Certified Implementation Specialist >Oracle Database 11g Administrator Certified Associate > >
Re: [oracle_br] Recuperar banco de dados dropado
A unica maneira que sei como restaurar os datafiles seria NÃO desligar a instancia, e como você desligou o computador imediatamente, não iria funcionar. Isto porque o DBWR dá um lock nos arquivos do Banco e ao apagar somente o ponteiro é apagado e os datafiles ficam invisiveis. A tecnica consistiria em : * Encontrar o PID do DBWR, * Assim encontrar os arquivos abertos pelo DBWR * Encontrar o file descriptor * Criar uma copia dos datafiles Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Quinta-feira, 5 de Junho de 2014 20:17, "Regis Pradela pradel...@yahoo.com.br [oracle_br]" escreveu: Senhores, boa noite, tudo bem? Hoje tivemos uma problema, após dropar um banco de dados (desenv) via RMAN, o cliente notou que tinha algumas informações neste banco de dados que não deveriam ser apagadas. Imediatamente desligamos o server, fizemos um live CD e bootamos o server por este CD e executamos o ext3grep para recuperar arquivos apagados. Mas, após rodar a recuperação dos arquivos, somente o pfile foi encontrado. Alguém já passou por isto e utilizou algum modo diferente para recuperar estes arquivos? No aguardo. R.P. DBA Oracle Oracle Database 11g Administrator Certified Professional Oracle Database 10g Real Applications Clusters AdministratorCertified Expert Oracle Enterprise Linux Certified Implementation Specialist Oracle Database 11g Administrator Certified Associate
Re: [oracle_br] Re: PL/SQL - trigger
No caso para acessar o valor gerado dentro trigger pela sequencia, você pode criar uma variável de pacote e então dentro da trigger setar seu valor e uma procedure consultar este valor. O valor da variável é valido apenas para a sessão. Exemplo: SQL> connect producao_fas/senha@bdagnusConectado. SQL> create or replace package PCK_TESTE is 2 3 procedure set_seq_table1(pk_table1 number); 4 5 function get_seq_table1 return number; 6 7 end PCK_TESTE; 8 / Pacote criado. SQL> create or replace package body PCK_TESTE is 2 3 v_seq integer; 4 5 procedure set_seq_table1(pk_table1 number) is 6 begin 7 v_seq := pk_table1; 8 end; 9 10 function get_seq_table1 return number is 11 begin 12 return v_seq; 13 end; 14 15 end PCK_TESTE; 16 / Em uma sessão a trigger executa o SET e uma procedure da mesma sessão realiza o GET. --- SESSÂO 1 --- SQL> connect producao_fas/senha@bdagnus Conectado. SQL> call pck_teste.set_seq_table1(1); Chamada concluÝda. SQL> select pck_teste.get_seq_table1 from dual; GET_SEQ_TABLE1 -- 1 --- SESSÂO 2 --- SQL> connect producao_fas/senha@bdagnus Conectado. SQL> call pck_teste.set_seq_table1(2); Chamada concluÝda. SQL> select pck_teste.get_seq_table1 from dual; GET_SEQ_TABLE1 -- 2 --- VOLTAR NA SESSÂO 1 --- SQL> select pck_teste.get_seq_table1 from dual; GET_SEQ_TABLE1 -- 1 Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Terça-feira, 22 de Abril de 2014 13:43, "jlchia...@yahoo.com.br" escreveu: Sim, é totalmente Possível vc saber qual valor está sendo inserido, provavelmente numa variável dentro da trigger : uma opção é a cláusula RETURNING , que desde há muito tempo existe e faz exatamente isso, veja http://stackoverflow.com/questions/361304/oracle-how-do-i-get-the-sequence-number-of-the-row-just-inserted para um Exemplo Ou até mesmo vc pode fazer o que se fazia antes , ie : alterar o que vc deve estar fazendo hoje, que certamente é INSERT INTO tabela ... VALUES (..., nomedasequence.nexval) para um V_SEQ := nomedasequence.nextval; INSERT INTO tabela VALUES (..., :V_SEQ, ...) Agora : uma vez que a informação está numa variável da trigger, como fazer para passar para a rotina que precisará disso para outro insert ?? O ** ideal ** seria que vc não tivesse que "passar" esse valor, fazendo com que o INSERT na outra tabela que usa o valor gerado pela sequence aconteça nesse mesma trigger, mas SE isso não for possível, vc terá que ter uma tabela de trabalho com essa informação : outras opções como GTT, contexts e variáveis globais servem para um caso único, uma ocorrência do valor, o que Imagino que não é o seu caso, vc pode ter Múltiplas sessões fazendo INSERTs e disparando a trigger, o que invalida outra coisa que não seja uma tabela de banco, mesmo, eu acho... []s Chiappa
Re: [oracle_br] PL/SQL - trigger
Isso mesmo o Fabio esta certo, o currval é somente da sessão/transação, segue um exemplo que estava fazendo: SQL> connectproducao_fas/senha@bdagnusConectado. SQL> createtableteste1 (pk_cod number(6));Tabela criada. SQL> createsequenceseqteste1 minvalue1startwith1incrementby1;SequÛncia criada. SQL> insertintoteste1 (pk_cod) values(seqteste1.nextval); 1linha criada. SQL> selectseqteste1.currval fromdual; CURRVAL-- 2- OUTRA SESSÂO SQL> connectproducao_fas/senha@bdagnusConectado. SQL> insertintoteste1 (pk_cod) values(seqteste1.nextval); 1linha criada. SQL> selectseqteste1.currval fromdual; CURRVAL-- 3 Agora o problema é o seguinte: O compilado não vai deixar você em rotinas diferente (triggers/procedure/functions) executar o nextval e outro o Currval valor. Para contornar isso você pode criar uma variável a nível de cabeçalho de package, a trigger realizar a alteração desta variável e a sua procudure consultar o valor desta variável. Tomando cuidado de não criar um acoplamento muito alto do seu sistema, você pode fazer assim. Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Terça-feira, 22 de Abril de 2014 10:23, Milton Bastos Henriquis Jr. escreveu: Fala Fábião! Cara, eu juro que não sabia que o currval só pegava da sessão atual! Achei que o currval pegava o valor atual da sequence independente da sessão! Vou testar aqui... Em 22 de abril de 2014 11:21, Fabio Prado escreveu: > >Miltão, por favor especifique como será essa transação concorrente. Se ela for >executada por outro usuário vc não terá problema algum, pois o CURRVAL da >SEQUENCE é um valor de sessão. > > >É importante entender que as transações de outros usuários não afetarão o >CURRVAL de uma sessão que acabou de fazer o INSERT na TABLE1, se vc utilizar o >CURRVAL logo em seguida para fazer INSERT em outra tabela, ok? > > > > >[]s > > >Fábio Prado > > >http://www.fabioprado.net/ >"Compartilhando conhecimentos e treinando profissionais em Bancos de Dados >Oracle" > > > >Em 22 de abril de 2014 11:10, Milton Bastos Henriquis Jr. > escreveu: > > > >> >>Bom dia amigos! >> >> >>Tenho um probleminha aqui... quero ver se alguém consegue me ajudar. >> >> >>A situação é a seguinte: >> >> >> - Tenho uma tabela TABLE1. >>Essa tabela (assim como todas as outras do sistema) tem uma trigger de insert. >> >> >>A PK dessa tabela é gerada por uma sequence. >>Isso é feito dentro da trigger - até aí tudo bem, algo bem comum de se ver >>por aí. >> >> >> >> >>O meu problema é que eu tenho um processo em que eu preciso fazer um >>insert na tabela TABLE1 (isso numa stored procedure), e preciso do ID que foi >>gerado >>para ser inserido em outra tabela. >> >> >>Eu não quero pegar o CURRVAL da sequence, pois corro o risco de uma transação >>concorrente também fazer um nextval nessa sequence nesse meio tempo. >> >> >>Alguém sabe se é possível eu conseguir retornar esse valor que está sendo >>gerado dentro da trigger? >> >> >> >> >
Re: [oracle_br] Oracle na Cloud
Vitor, Oracle RAC não é suportado nativamente no AWS. Uso a palavra nativo porque é possível executar o Oracle RAC em uma instalação AWS Direct Connect. http://aws.amazon.com/directconnect/ Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Quinta-feira, 17 de Abril de 2014 10:25, Evandro Giachetto escreveu: Bom, não entendi muito bem. Na documentação diz o seguinte: "you cannot run RAC in Amazon EC2 either"... Pelo que entendi, o Amazon Web Service EC2 nos permite criar um servidor "do zero", mas na documentação diz que não podemos usar RAC mesmo em EC2.. Vale dizer que essa documentação é de Outubro-2013. http://media.amazonwebservices.com/AWS_RDBMS_Oracle.pdf Você teve experiência em subir um RAC lá usando EC2 ? Evandro Giachetto Oracle DBA evandrogiache...@gmail.com Em 17 de abril de 2014 11:15, Alessandro Lúcio Cordeiro da Silva escreveu: > > > >Correto, Rac somente usando EC2. > > > >Alessandro Lúcio Cordeiro da Silva > Analista de Sistema > >þ http://alecordeirosilva.blogspot.com/ > >Porque esta é a vontade de Deus, a saber, a vossa >santificação: que vos abstenhais da prostituição. >(1º Tessalonicenses 4:3) > >Em Quinta-feira, 17 de Abril de 2014 9:43, Evandro Giachetto > escreveu: > > >Bom, estou acompanhando a documentação da Amazon aqui. > > >Aparentemente também não é possível usar RAC nos AWS. Mas eu ví em alguns >forums um pessoal dizendo que conseguiu montar RAC nos EC2 da Amazon. Alguém >confirma isso? > > > > >"Real Application Clusters (RAC) is a cluster database with a shared cache and >shared disk architecture. Currently, you cannot run RAC in Amazon EC2 either. >Some of the customers that require RAC choose to host their databases outside >of AWS while running the rest of their infrastructure in AWS. To do this while >providing good database performance, they host their RAC database at an AWS >partner datacenter, which is linked via AWS Direct Connect to the AWS >datacenter where the rest of their infrastructure exists. AWS Direct Connect >lets you establish a dedicated network connection between the AWS Direct >Connect location and the closest AWS region. It provides low-latency 1 Gbps >and 10 Gbps connections, and you can easily provision multiple connections if >you need more network capacity. For more information about AWS Direct Connect, >see http://aws.amazon.com/directconnect/. " > > > > >Evandro Giachetto >Oracle DBA >evandrogiache...@gmail.com > > > > > >Em 17 de abril de 2014 09:57, Evandro Giachetto >escreveu: > >Muito legal.. Obrigado pelas dias Alessandro. >> >> >>Evandro Giachetto >>Oracle DBA >>evandrogiache...@gmail.com >> >> >> >> >> >>Em 17 de abril de 2014 09:28, Alessandro Lúcio Cordeiro da Silva >> escreveu: >> >> >> >>> >>>Hã só mais um adendo sobre backup replicados nos storages da Amazon S3, até >>>a propria Oracle acredita nisso, tanto que no Livro da Oracle Press "Oracle >>>Rman 11g Backup and Recover" no capitulo 6 "Backing Up to Amazon Web >>>Services Using the Oracle Secure Backup Cloud Module" trata como realizar >>>Backup Rman diretamente nos Storages da Amazon. >>> >>>Alessandro Lúcio Cordeiro da Silva >>> Analista de Sistema >>> >>>Em Quinta-feira, 17 de Abril de 2014 8:16, Alessandro Lúcio Cordeiro da >>>Silva escreveu: >>> >>>Bom dia, >>> >>> >>> >>>Basicamente a instancia RDS é uma instância de Banco de Dados totalmente >>>configurada pela Amazon, com isso nem Backup vocês faz, é tudo gerido por >>>eles, no Storage deles (serviço Amazon S3). Você tem apenas a interface Web >>>onde você pode criar Snapshot e/ou restaurar o banco dentro da janela de >>>restauração desejada. >>> >>> >>>No meu caso o sistema usada e-mail e XML no banco, mas alteramos estes >>>processos para aplicação para usar-mos o RDS, pois é mais simples. >>> >>> >>>Agora se você precisar de alguns recursos, tais como escrever em disco, >>>tabelas externa, enfim tudo que envolve Oracle trabalhar com S.O ai você >>>usar o serviço EC2 com uma instancia S.O com Oracle rodando. >>> >>> >>>Sobre, a migração para Cloud, penso que as pequenas/médias empresas irão sim >>>para nuvens, mas as grandes
Re: [oracle_br] Oracle na Cloud
Correto, Rac somente usando EC2. Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Quinta-feira, 17 de Abril de 2014 9:43, Evandro Giachetto escreveu: Bom, estou acompanhando a documentação da Amazon aqui. Aparentemente também não é possível usar RAC nos AWS. Mas eu ví em alguns forums um pessoal dizendo que conseguiu montar RAC nos EC2 da Amazon. Alguém confirma isso? "Real Application Clusters (RAC) is a cluster database with a shared cache and shared disk architecture. Currently, you cannot run RAC in Amazon EC2 either. Some of the customers that require RAC choose to host their databases outside of AWS while running the rest of their infrastructure in AWS. To do this while providing good database performance, they host their RAC database at an AWS partner datacenter, which is linked via AWS Direct Connect to the AWS datacenter where the rest of their infrastructure exists. AWS Direct Connect lets you establish a dedicated network connection between the AWS Direct Connect location and the closest AWS region. It provides low-latency 1 Gbps and 10 Gbps connections, and you can easily provision multiple connections if you need more network capacity. For more information about AWS Direct Connect, see http://aws.amazon.com/directconnect/. " Evandro Giachetto Oracle DBA evandrogiache...@gmail.com Em 17 de abril de 2014 09:57, Evandro Giachetto escreveu: Muito legal.. Obrigado pelas dias Alessandro. > > >Evandro Giachetto >Oracle DBA >evandrogiache...@gmail.com > > > > > >Em 17 de abril de 2014 09:28, Alessandro Lúcio Cordeiro da Silva > escreveu: > > > >> >>Hã só mais um adendo sobre backup replicados nos storages da Amazon S3, até a >>propria Oracle acredita nisso, tanto que no Livro da Oracle Press "Oracle >>Rman 11g Backup and Recover" no capitulo 6 "Backing Up to Amazon Web Services >>Using the Oracle Secure Backup Cloud Module" trata como realizar Backup Rman >>diretamente nos Storages da Amazon. >> >>Alessandro Lúcio Cordeiro da Silva >> Analista de Sistema >> >>Em Quinta-feira, 17 de Abril de 2014 8:16, Alessandro Lúcio Cordeiro da Silva >> escreveu: >> >>Bom dia, >> >> >> >>Basicamente a instancia RDS é uma instância de Banco de Dados totalmente >>configurada pela Amazon, com isso nem Backup vocês faz, é tudo gerido por >>eles, no Storage deles (serviço Amazon S3). Você tem apenas a interface Web >>onde você pode criar Snapshot e/ou restaurar o banco dentro da janela de >>restauração desejada. >> >> >>No meu caso o sistema usada e-mail e XML no banco, mas alteramos estes >>processos para aplicação para usar-mos o RDS, pois é mais simples. >> >> >>Agora se você precisar de alguns recursos, tais como escrever em disco, >>tabelas externa, enfim tudo que envolve Oracle trabalhar com S.O ai você >>usar o serviço EC2 com uma instancia S.O com Oracle rodando. >> >> >>Sobre, a migração para Cloud, penso que as pequenas/médias empresas irão sim >>para nuvens, mas as grandes penso que vão ter ainda Oracle executando no >>proprio data-center, mas tendo o Backup replicado não somente em seus >>Storages/Fitas, mas também nas nuvens como a Amazon S3. >> >> >> >> >>Alessandro Lúcio Cordeiro da Silva >> Analista de Sistema >>Em Quinta-feira, 17 de Abril de 2014 8:02, Evandro Giachetto >> escreveu: >> >> >>Bom dia Grupo. >> >> >>Bom, creio que inevitávelmente, cedo ou tarde, teremos que começar as >>migrações para a Cloud e eu, felizmente (ou infelizmente dependendo do ponto >>de vista), cheguei nessa etapa. >> >> >>Muito provavelmente o serviço de Cloud que a empresa escolherá é o da Amazon. >>Gostaria de saber se alguém já fez implantação na Cloud da Amazon. >> >> >>Qual foi a melhor alternativa para seu caso? O Oracle EC2? RDS? >> >> >>EC2 seria o serviço 100% customizável, onde eu teria acesso a um ambiente e >>faria as instalações dos binários da forma como me convier? >> >> >>RDS eu pude perceber que é um serviço em que a Amazon já te oferece um banco >>de dados, mas, o banco já é instalado, não temos acesso de sysdba, temos >>acesso limitado de DBA e algumas (várias) features não são suportadas, como >>Java Stored Procedures, Streams, ASM, etc. >> >> >>Bom, enfim. >> >> >>Preciso entender o serviço da Amazon e se alguém tiver algo a compartilhar >>deixaria este trabalho menos penoso. >> >> >>Abraços. >> >> >>Evandro Giachetto >>Oracle DBA >>evandrogiache...@gmail.com >> >> >> >> >> >> >> >
Re: [oracle_br] Oracle na Cloud
Hã só mais um adendo sobre backup replicados nos storages da Amazon S3, até a propria Oracle acredita nisso, tanto que no Livro da Oracle Press "Oracle Rman 11g Backup and Recover" no capitulo 6 "Backing Up to Amazon Web Services Using the Oracle Secure Backup Cloud Module" trata como realizar Backup Rman diretamente nos Storages da Amazon. Alessandro Lúcio Cordeiro da Silva Analista de Sistema Em Quinta-feira, 17 de Abril de 2014 8:16, Alessandro Lúcio Cordeiro da Silva escreveu: Bom dia, Basicamente a instancia RDS é uma instância de Banco de Dados totalmente configurada pela Amazon, com isso nem Backup vocês faz, é tudo gerido por eles, no Storage deles (serviço Amazon S3). Você tem apenas a interface Web onde você pode criar Snapshot e/ou restaurar o banco dentro da janela de restauração desejada. No meu caso o sistema usada e-mail e XML no banco, mas alteramos estes processos para aplicação para usar-mos o RDS, pois é mais simples. Agora se você precisar de alguns recursos, tais como escrever em disco, tabelas externa, enfim tudo que envolve Oracle trabalhar com S.O ai você usar o serviço EC2 com uma instancia S.O com Oracle rodando. Sobre, a migração para Cloud, penso que as pequenas/médias empresas irão sim para nuvens, mas as grandes penso que vão ter ainda Oracle executando no proprio data-center, mas tendo o Backup replicado não somente em seus Storages/Fitas, mas também nas nuvens como a Amazon S3. Alessandro Lúcio Cordeiro da Silva Analista de Sistema Em Quinta-feira, 17 de Abril de 2014 8:02, Evandro Giachetto escreveu: Bom dia Grupo. Bom, creio que inevitávelmente, cedo ou tarde, teremos que começar as migrações para a Cloud e eu, felizmente (ou infelizmente dependendo do ponto de vista), cheguei nessa etapa. Muito provavelmente o serviço de Cloud que a empresa escolherá é o da Amazon. Gostaria de saber se alguém já fez implantação na Cloud da Amazon. Qual foi a melhor alternativa para seu caso? O Oracle EC2? RDS? EC2 seria o serviço 100% customizável, onde eu teria acesso a um ambiente e faria as instalações dos binários da forma como me convier? RDS eu pude perceber que é um serviço em que a Amazon já te oferece um banco de dados, mas, o banco já é instalado, não temos acesso de sysdba, temos acesso limitado de DBA e algumas (várias) features não são suportadas, como Java Stored Procedures, Streams, ASM, etc. Bom, enfim. Preciso entender o serviço da Amazon e se alguém tiver algo a compartilhar deixaria este trabalho menos penoso. Abraços. Evandro Giachetto Oracle DBA evandrogiache...@gmail.com
Re: [oracle_br] Oracle na Cloud
Bom dia, Basicamente a instancia RDS é uma instância de Banco de Dados totalmente configurada pela Amazon, com isso nem Backup vocês faz, é tudo gerido por eles, no Storage deles (serviço Amazon S3). Você tem apenas a interface Web onde você pode criar Snapshot e/ou restaurar o banco dentro da janela de restauração desejada. No meu caso o sistema usada e-mail e XML no banco, mas alteramos estes processos para aplicação para usar-mos o RDS, pois é mais simples. Agora se você precisar de alguns recursos, tais como escrever em disco, tabelas externa, enfim tudo que envolve Oracle trabalhar com S.O ai você usar o serviço EC2 com uma instancia S.O com Oracle rodando. Sobre, a migração para Cloud, penso que as pequenas/médias empresas irão sim para nuvens, mas as grandes penso que vão ter ainda Oracle executando no proprio data-center, mas tendo o Backup replicado não somente em seus Storages/Fitas, mas também nas nuvens como a Amazon S3. Alessandro Lúcio Cordeiro da Silva Analista de Sistema Em Quinta-feira, 17 de Abril de 2014 8:02, Evandro Giachetto escreveu: Bom dia Grupo. Bom, creio que inevitávelmente, cedo ou tarde, teremos que começar as migrações para a Cloud e eu, felizmente (ou infelizmente dependendo do ponto de vista), cheguei nessa etapa. Muito provavelmente o serviço de Cloud que a empresa escolherá é o da Amazon. Gostaria de saber se alguém já fez implantação na Cloud da Amazon. Qual foi a melhor alternativa para seu caso? O Oracle EC2? RDS? EC2 seria o serviço 100% customizável, onde eu teria acesso a um ambiente e faria as instalações dos binários da forma como me convier? RDS eu pude perceber que é um serviço em que a Amazon já te oferece um banco de dados, mas, o banco já é instalado, não temos acesso de sysdba, temos acesso limitado de DBA e algumas (várias) features não são suportadas, como Java Stored Procedures, Streams, ASM, etc. Bom, enfim. Preciso entender o serviço da Amazon e se alguém tiver algo a compartilhar deixaria este trabalho menos penoso. Abraços. Evandro Giachetto Oracle DBA evandrogiache...@gmail.com
Re: [oracle_br] Ajuda com erro na trigger de logon: ORA-00604: ocorreu um erro no nível 1 SQL recursivo
Wanderson, eu não entendi, este erro ocorre quando você tentar criar a Trigger ou depois de criada ao tentar logar no DataBase? Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Quarta-feira, 12 de Março de 2014 13:04, Wanderson Barrence escreveu: Olá Pessoal, Estou fazendo uma trigger de logon para monitorar todos os usuários que acessam o banco de dados, tanto o usuário da aplicação, como usuário cliente oracle e qualquer tipo de acesso com SYSDBA, os dados são armazenados numa tabela chamada userlogon, mas por algum motivo a minha trigger está dando um erro, já segui vários tutoriais no google e ainda não consegui resolver o problema. Segue a trigger: CREATE TABLE loguser.userlogon ( user_name VARCHAR2(300), login_date DATE, osuser VARCHAR2(300), terminal VARCHAR(300), program VARCHAR(300), ipadress VARCHAR(46) ); CREATE OR REPLACE TRIGGER sys.audit_userlogon after LOGON ON DATABASE DECLARE wuser varchar2(300); wosuser varchar2(300); wterminal varchar2(300); wprogram varchar2(300); wipadress varchar2(46); BEGIN SELECT username, osuser, machine, program INTO wuser, wosuser, wterminal, wprogram FROM v$session WHERE audsid = userenv('sessionid') AND ROWNUM = 1; wipadress := sys_context('userenv','ip_address'); INSERT INTO loguser.userlogon( user_name, login_date, osuser, terminal, program, ipadress ) VALUES ( wuser, SYSDATE, wosuser, wterminal, wprogram, wipadress ); END audit_userlogon; / Erro: ORA-00604: ocorreu um erro no nível 1 SQL recursivo ORA-01422: a extração exata retorna mais do que o número solicitado de linhas ORA-06512: em line 35 Att, Wanderson
Re: [oracle_br] RE: Servidor na Nuvem e Backup's Oracle
Olá Chiappa, Obrigado pelas comentário. Bom neste meu cliente especifico é um cliente pequeno, e acredito que compensa sim para empresa usar o serviço da nuvem, pois acredito que o Data-Center que a RedeHost (não querendo fazer propaganda mas...) tem é incomparavelmente melhor do que qualquer solução de infra que este meu cliente pequeno possa ter. Quanto ao Backup, eu particularmente confio no serviço que se por venturar dar algum crash eles voltam o backup da maquina via Storage, mas não confiou que o Oracle estará consistente. Por isso ainda sim faço backup Rman e Archivelog no próprio servidor da nuvem, para que com eles possa tornar o banco de dados consistente. Além é claro dos arquivos DUMP para trabalhar com a granularidade de objetos. Todavia levando em consideração seu comentário, vou pensar na possibilidade de replicar isso em outro servidor, talvez outro serviço na nuvem, como dizem por ai, o seguro morreu de velho, né. Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Terça-feira, 25 de Fevereiro de 2014 10:39, "jlchia...@yahoo.com.br" escreveu: Tudo jóia ? Então, primeiro sobre servidores RDBMS Oracle em nuvem : o ponto principal é se a Empresa pode ter Confiança no prestador... Por exemplo, Empresas da área financeira/bancária tipicamente PRECISAM obedecer a requisitos de segurança muita estritos em todas as camadas da infra, mas ESPECIALMENTE em redes, nem sempre todos os provedores vão chegar no nível desejado de controle da infra, nem todos vão fornecer (por exemplo) reports de patching, de auditoria e penetration tests da infra deles, E mesmo que forneçam, é por conta de cada interessado acreditar ou não no que for fornecido A qualidade da mão-de-obra normalmente é outro ponto : se vc tem tudo em casa, vc contrata profissionais que confia, que vai treinar como achar melhor, Enquanto lá no provedor , sabe vc quem está lá (na verdade normalmente até se sabe, é aquele indiano baratinho :) ... Outra coisa é a segurança da informação em si : por mais que o provedor assine contrato de co-responsabilidade, confiar que REALMENTE não está havendo nenhum tipo de sniffing/tampering com teus dados enquanto trafegam na infra-estrutura do teu provedor é bem isso, no fundo uma questão de Confiança... Eu pessoalmente, se analisar os talvez últimos 10 clientes de grande porte com alta exigência de segurança e controle que atendi, todos os 10 mantinham infra própria, Justamente para não haver incerteza absolutamente nenhuma em termos de segurança, de procedimentos, etc Bom, sobre backup penso que é uma questão de confiança : vc Confia que efetivamente o teu provedor vai MESMO ser capaz de retornar a posição exata em caso de crash ? O ponto é que muitos provedores te dão um ambiente genérico, não tem muito conhecimento de RDBMS Oracle, então não é difícil que (por exemplo) a solução de backup online via STORAGE usada exija que o RDBMS estivesse em backup mode , e/ou exija um software adicional (tipo snapview) Então a resposta é : SE na hora de contratar foi verificado que a solução de backup via snapshot/bcv copy/whatever é Garantida com RDBMS Oracle, ok, confia-se... mas sempre eu confio desconfiando, então eu MANTERIA SIM algum tipo de backup extra, OU mesmo algum tipo de replicação/standby para outro servidor , para os databases mais críticos Isso sem contar a questão de restores temporários, às vezes parciais... Digamos : os usuários precisam obter um relatório das vendas do ano passado, que já não estão mais online : se vc tem um backup próprio mantido especificamente para esses casos blz, já se vc só confia no backup do provedor, AINDA que ele abra a possibilidade, backup de storage sempre é grande e complexo de se manipular []s Chiappa
[oracle_br] Servidor na Nuvem e Backup's Oracle
Bom dia Senhores, Gostaria da opinião de vocês quanto ao Oracle estar hospedado em um servidor na nuvem e as rotinas de backup. No caso estes serviços de servidores na nuvem tem toda a infraestrutura de backup através de Storages, inclusive - janela de backup's de 7 dias - O que vocês acham? Ainda preciso ficar realizando backup do banco de dados? Apesar de ter a minha opinião sobre isso, quero abrir a discussão, pois penso que a tendencia é termos cada vez mais servidores na nuvem. Alessandro Lúcio Cordeiro da Silva
Re: [oracle_br] RE: PACKAGE
Bom, só colocando um adendo na conversa, porque o nosso amigo gostaria de compilar somente a função? Ele não diz o porque, mas supondo que ao compilar o pacote invalide uma serie de outros objetos do banco de dados e ele não quer isso. Para este caso, nos temos o cabeçalho do pacote e o corpo do pacote que ai sim, podem ser vistos como dois objetos distintos; A dependência de outros objetos (seja view ou pacote/função/procedimento) com o pacote é com o seu cabeçalho. Então se a função que esta dentro do pacote não esta publicada e/ou não será alterada a sua assinatura (mexendo no tipo e quantidade de parâmetros), o nosso amigo pode compilar somente o corpo do pacote não afetando os demais objetos que tenha dependência. Agora se precisar alterar mexer na assinatura da função, ai não tem jeito, será preciso compilar o pacote como um todo e ai vai sim invalidar todos os objetos de dependência. *** Compilar o pacote inteiro *** alter package compile; *** Compilar somente o corpo *** alter package compile body; Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Quarta-feira, 19 de Fevereiro de 2014 11:42, "jlchia...@yahoo.com.br" escreveu: Impossível, colega : PACKAGE se traduz exatamente como PACOTE, e é essa a idéia geral : uma package é um "pacote", uno e indivisível, criado e compilado e mantido como um só objeto INCLUSIVE, em tese essa é uma das principais VANTAGENS na utilização da package : se vc executou uma rotina x que está na package A, composta pelas rotinas x, y,e z, AUTOMAGICAMENTE (já que a package é uma "coisa" só), o código de y e de z (de tudo que está na package) já SUBIU para o cache com a execução da rotina x, assim EM TESE a execução das rotinas y e z vai ocorrer a aprtir do cache, sendo mais rápidas O que vc PODE fazer é isolar a função, mas aí (obviamente) vc muito provavelmente perde as vantagens de ter a package... []s Chiappa
[oracle_br] Auditoria em VIEW's
Bom dia Senhores, Tenho uma View de Pedido, V_PEDIDOS, o SQL desta view faz join com a tabela PEDIDOS e CLIENTES, para apenas mostrar alguns dados do cliente na interface. Ocorre que a aplicação pode alterar alguns campos de PEDIDO e escreve UPDATE na VIEW V_PEDIDOS. Esta por sua vez tem uma Trigger INSTEAD OF que realiza o update somente na tabela PEDIDOS. Agora quando vou analisar auditoria em dba_audit_trail o Oracle diz que foi feito update na tabela CLIENTES com a instrução "UPDATE V_PEDIDO SET DATA_ENTREGA = SYSDATE WHERE PK_PEDIDO = :PK_PEDIDO". Mas esta instrução não altera nada na tabela de CLIENTES, seria somente porque a tabela clientes esta no SQL da VIEW? Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3)
Re: [oracle_br] RE: Restore sem um datafile
É Chiappa, isso é pro pessoal ver como é importante ter backup, pois mesmo que usamos as técnicas de copias dados que estão nos datafiles/blocos não corruptos, ainda sim podem ser logicamente corruptos para aplicação. Pois podemos restaurar dados de uma tabela filha e o Pai não ser possível ser restaurado, ou outros casos como uma transação contábil com varias movimentações de contas e ai o resultado contábil (total de debito e credito de cada transação entre conta(s) contábeis dê ZERO) das transações ficam inconsistentes. Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Sexta-feira, 20 de Dezembro de 2013 16:28, "jlchia...@yahoo.com.br" escreveu: Então : recuperar os blocos corruptos , falando propriamente (ie, faze-los retornar a um status acessível, sem perda de dados) vc só consegue SE tiver os archives todos em backup sem faltar um desde a ocasião imediatamente anterior em que deu o pau (ou desde o último backup, ou mesmo desde o startup se não souber quando foi) , e aí vc usa o comando BLOCK RECOVER do RMAN , veja a nota metalink "RMAN : Block-Level Media Recovery - Concept & Example" (Doc ID 144911.1) . No seu caso, porém, iirc vc comentou que não tem backup de nada, então vc Não Vai conseguir fazer nehum tipo de * recuperação * desses blocos corruptos/inacessíveis : o que vc vai fazer é PULAR o acesso à eles, logicamente eliminado-os e assim perdendo TODA a informação que estava neles, e transferir o que puder ler para uma outra tablespace - a maneira mais fácil para isso é via DBMS_REPAIR, cfrme a nota "DBMS_REPAIR SCRIPT" (Doc ID 556733.1) . []s Chiappa
Re: [oracle_br] Processo Oracle no windows maior que os parâmetros de Memória Oracle
Olá Fernando, no caso descobri que especificamente uma aplicação desenvolvido em PHP que causa o uso excessivo de memória. Quando desabilitamos esta aplicação, todas as demais aplicações funcionaram normalmente. Ainda não detectei a causa raiz do problema, mas pode ser que talvez não seja somente aplicar o 11.2.0.3, creio que talvez tenha que atualizar a versão do PHP. Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em , Alessandro Lúcio Cordeiro da Silva escreveu: Os parametros MEMORY_TARGET e MEMORY_MAX_TARGET estão com 6G, os demais coloquei 0 (zero) para usar somente os novos parametros do 11g Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Terça-feira, 3 de Dezembro de 2013 10:49, Fabio Prado escreveu: Alessandro, passe para nós os valores configurados na instância para os parâmetros abaixo: SGA_TARGET SGA_MAX_SIZE MEMORY_TARGET MEMORY_MAX_TARGET PGA_AGGREGATE_TARGET Att, Fábio Prado www.fabioprado.net Em 3 de dezembro de 2013 08:40, Alessandro Lúcio Cordeiro da Silva escreveu: > > > > Bom dia Senhores, > > > > Após a migração do Oracle 10.2.0.4 para o 11.2.0.1 em um ambiente Windows >2008 Server R2, o processo Oracle começa a consumir toda a memória do Servidor >de 16G de memoria principal, mesmo configurando os parametros >SGA_TARGET/SGA_MAX_SIZE ou os novos parâmetros MEMORY_TARGET/MEMORY_MAX_TARGET. > > > Configuro estes parâmetros para usar cerca de 5 Giga, mas em algum >determinado momento o processo Oracle do Windows começa a crescer até bater os >quase 16 Giga, deixando a maquina super-lenta, alem do próprio Oracle. > > > Em uma analise feita até o momento alguma sessão de Usuário começa a >crescer muito e somente é possível mata-la via oraKill do Windows. Como uma >sessão de Usuário consegue usar mais memoria do que os parâmetros de memoria >do Oracle? Tentei limitar mesmo usar Profile de limite de uso, mas este >comportamento permanece. > > >Obrigado! > > > > > >Alessandro Lúcio Cordeiro da Silva > Analista de Sistema > >þ http://alecordeirosilva.blogspot.com/ > >Porque esta é a vontade de Deus, a saber, a vossa >santificação: que vos abstenhais da prostituição. >(1º Tessalonicenses 4:3) > -- Fábio Prado www.fabioprado.net "Compartilhando conhecimentos e treinando profissionais em Bancos de Dados Oracle"
Re: [oracle_br] Processo Oracle no windows maior que os parâmetros de Memória Oracle
Os parametros MEMORY_TARGET e MEMORY_MAX_TARGET estão com 6G, os demais coloquei 0 (zero) para usar somente os novos parametros do 11g Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Terça-feira, 3 de Dezembro de 2013 10:49, Fabio Prado escreveu: Alessandro, passe para nós os valores configurados na instância para os parâmetros abaixo: SGA_TARGET SGA_MAX_SIZE MEMORY_TARGET MEMORY_MAX_TARGET PGA_AGGREGATE_TARGET Att, Fábio Prado www.fabioprado.net Em 3 de dezembro de 2013 08:40, Alessandro Lúcio Cordeiro da Silva escreveu: > > > > Bom dia Senhores, > > > > Após a migração do Oracle 10.2.0.4 para o 11.2.0.1 em um ambiente Windows >2008 Server R2, o processo Oracle começa a consumir toda a memória do Servidor >de 16G de memoria principal, mesmo configurando os parametros >SGA_TARGET/SGA_MAX_SIZE ou os novos parâmetros MEMORY_TARGET/MEMORY_MAX_TARGET. > > > Configuro estes parâmetros para usar cerca de 5 Giga, mas em algum >determinado momento o processo Oracle do Windows começa a crescer até bater os >quase 16 Giga, deixando a maquina super-lenta, alem do próprio Oracle. > > > Em uma analise feita até o momento alguma sessão de Usuário começa a >crescer muito e somente é possível mata-la via oraKill do Windows. Como uma >sessão de Usuário consegue usar mais memoria do que os parâmetros de memoria >do Oracle? Tentei limitar mesmo usar Profile de limite de uso, mas este >comportamento permanece. > > >Obrigado! > > > > > >Alessandro Lúcio Cordeiro da Silva > Analista de Sistema > >þ http://alecordeirosilva.blogspot.com/ > >Porque esta é a vontade de Deus, a saber, a vossa >santificação: que vos abstenhais da prostituição. >(1º Tessalonicenses 4:3) > -- Fábio Prado www.fabioprado.net "Compartilhando conhecimentos e treinando profissionais em Bancos de Dados Oracle"
[oracle_br] Processo Oracle no windows maior que os parâmetros de Memória Oracle
Bom dia Senhores, Após a migração do Oracle 10.2.0.4 para o 11.2.0.1 em um ambiente Windows 2008 Server R2, o processo Oracle começa a consumir toda a memória do Servidor de 16G de memoria principal, mesmo configurando os parametros SGA_TARGET/SGA_MAX_SIZE ou os novos parâmetros MEMORY_TARGET/MEMORY_MAX_TARGET. Configuro estes parâmetros para usar cerca de 5 Giga, mas em algum determinado momento o processo Oracle do Windows começa a crescer até bater os quase 16 Giga, deixando a maquina super-lenta, alem do próprio Oracle. Em uma analise feita até o momento alguma sessão de Usuário começa a crescer muito e somente é possível mata-la via oraKill do Windows. Como uma sessão de Usuário consegue usar mais memoria do que os parâmetros de memoria do Oracle? Tentei limitar mesmo usar Profile de limite de uso, mas este comportamento permanece. Obrigado! Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3)
Re: [oracle_br] Re: Como cobrar projeto de migração de banco oracle
Somente uma observação quanto ao cobrar por tempo de migração, na verdade isso vale por qualquer serviço que você fizer. Não pense em comprar baseado somente no parametro tempo, na verdade em muitos casos o valor a ser cobrado é inversamente proporcional ao tempo. Uma vez um amigo meu ligou desesperado porque o banco de dados dele estava fora do ar, o DATAFILE SYSTEM está com SCN a frente do SCN do controlFile e o banco de dados não abria. Usei apenas 1 comando e em MENOS de 5 minutos o banco estava no ar. Então devo receber menos do que alguem que ficou horas para, por exemplo recriar um novo banco, importar os dados usado o IMP(DP) e depois disso entregar um banco com os últimos dados faltando? Veja que o conhecimento em Oracle fez toda a diferença, e esta diferença não vem por osmose, vem por horas e horas de estudo e reproduzindo em cenários de testes. Então o que eu acho melhor é você criar uma tabela de serviço/Hora onde cada hora tem o seu preço diferente para cada serviço. Tente criar esta tabela mais especifica possível. Tipo a sua migração vai incluir mudança do S.O e Hardware? Você sempre deve ter isso em mente. Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ Porque esta é a vontade de Deus, a saber, a vossa santificação: que vos abstenhais da prostituição. (1º Tessalonicenses 4:3) Em Quarta-feira, 13 de Novembro de 2013 15:42, angelo escreveu: Acho que a experiencia também conta Vc ja fez migração antes? mesmo que pequenininha Concordo em fazer um ensaio, num ambiente de homologacao, pra pegar todos aqueles detalhezinhos que são aparecer na execução e ir anotando. Quanto mais parecido com o real, melhor. 2013/11/13 Rodrigo Gallacci > >Eu sinceramente analisaria o tamanho dos databases, veja o exemplo: > > >Um DBA Pleno (sendo sincero) levaria em tese o mesmo tempo para migrar a base >que um Sênior, porém, se for encontrado algum bug/problema/falha no processo >um Sênior resolveria muito mais rápido, por isso o valor mais alto. > > >Quanto à tempo de base, vamos expor um ambiente à prova, um expdp de um >database que gerasse 50G de dmp levaria em torno de 5 horas pra migrar, isso >sem contar a preparação, etc, etc. > > >Eu cobraria um X á cada 100G de "base de dados real". E esse X seria calculado >na média: > > >X = 80% do valor hora > > >Ou cobre uma hora pra cada 100G de base de dados. > > >Rodrigo Gustavo Gallacci >DBA Oracle ATG > > >2013/11/13 Rafael Mendonca > > >> >>Eu faria como o Chiappa recomenda, faria uma simulação do upgrade em um >>database de teste e cronometrava quanto tempo daria, com isso veja o valor da >>sua hora e multiplique pela quantidade de horas da simulação feita em um >>ambiente de teste, colocaria algumas horas a mais por precaução (pois pode >>ocorrer algum bug ou algo semelhante, e se for feito a noite ou no final de >>semana/feriado vc com certeza reajustaria o valor da sua hora. >> >> >> >>Em Quarta-feira, 13 de Novembro de 2013 12:51, J. Laurindo Chiappa >> escreveu: >> >> >>Priscila, acho que tanto eu quanto o Rodrigo concordamos que a medida >>principal é a quantidade de horas : não é absolutamente viável cobrar por >>número de bases ou coisa assim, porque NADA IMPEDE do seu cliente ter uma >>base gigantesca e uma pequenina, o que DISTORCERIA ENORMEMENTE a sua >>cobrança, sim ??? >>E para vc chegar na quantidade de horas, isso é uma função dos volumes das >>bases todas e das dificuldades que podem surgir, coisas essas que vc só >>"pega" fazendo uma análise de algumas horinhas para levantamento... >> >>[]s >> >>Chiappa >> >>--- Em oracle_br@yahoogrupos.com.br, Priscila Viana escreveu >>> >>> Não preciso de valores caso não possa colocar, mas de como cobrar mesmo, se >>> por base, por projeto, por tempo... >>> Em 13/11/2013 13:24, "Rodrigo Gallacci" >>> escreveu: >>> >>> > >>> > >>> > Na verdade eu julgo o valor relativo ao tempo que irá levar (o que tem >>> > haver com tamanho da base de dados) e do know how de quem vai fazer. >>> > >>> > Aliás, não sei se podemos discutir valores nessa lista. Podemos? >>> > >>> > Rodrigo Gustavo Gallacci >>> > DBA Oracle ATG >>> > >>> > >>> > 2013/11/13 Priscila Viana >>> > >>> >> >>> >> >>> >> Solaris, bendito corretor do teclado do celular! >>> >> Em 13/11/2013 13:09, "Priscila Viana" escreveu: >>> >> >>> >> Como devo cobrar um projeto de migração de banco oracle 9 para 11 em >>> >>> plataformas windows e solares, quais pontos devo levar em consideração? >>> >>> Preciso de ajuda tenho reunião amanhã e nunca fiz esse tipo de trabalho >>> >>> por fora. >>> >>> Obrigada. >>> >>> Priscila Viana >>> >>> >>> >> >>> > >>> > >>> >> >> >> >> >
Re: [oracle_br] Bkp de objetos no banco
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 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 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 >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 > 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 >>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 >> escreveu: >> >> >>> >>>Olá Fábio, >>> >>>Obrigado pelo retorno. >>>Realme
Re: [oracle_br] Bkp de objetos no banco
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 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 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 >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 > 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 >>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 >> escreveu: >> >> >>> >>>Olá pessoal, >>> >>> >>>Estou com um problema desse nível: >>> >>>
Re: [oracle_br] Bkp de objetos no banco
Isso varias de acordo com a area livre e o tempo de retenção que o DBA configurou, aqui na empresa (outras tabelas) consigo fazer flahback de ate 5 dias. C:\>sqlplus fiplan_int@ORMTI01 SQL*Plus: Release 10.2.0.3.0 - Production on Ter Out 15 15:37:55 2013 Copyright (c) 1982, 2006, Oracle. All Rights Reserved. Informe a senha: Conectado a: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP, Data Mining and Real Application Testing options SQL> select cd_exercicio, codg_banco, nome_banco from acwtb0001 AS OF TIMESTAMP (SYSTIMESTAMP-INTERVAl '5' DAY) where rownum = 1; CD_EXERCICIO CODG_BANCO NOME_BANCO - 2005 1 Banco do Brasil S/A SQL> select cd_exercicio, codg_banco, nome_banco from acwtb0001 AS OF TIMESTAMP (SYSTIMESTAMP-INTERVAl '6' DAY) where rownum = 1; select cd_exercicio, codg_banco, nome_banco from acwtb0001 AS OF TIMESTAMP (SYSTIMESTAMP-INTERVAl '6' DAY) where rownum = 1 * ERRO na linha 1: ORA-08180: nenhum snapshot encontrado com base no tempo especificado Talvez se estivesse com este tempo poderia ter ajudado. Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ De: Victor Freidinger Para: "oracle_br@yahoogrupos.com.br" Enviadas: Terça-feira, 15 de Outubro de 2013 15:01 Assunto: Re: [oracle_br] Bkp de objetos no banco Oi Alessandro, Obrigado pelo retorno. Eu tentei pela dba_source, mas, parece que tem um tempo apenas que tem esse flashback. No teste que eu fiz aqui o limite máximo foi de 200 minutos. Essa atualização ocorreu na sexta feira. Obrigado novamente. ________ De: Alessandro Lúcio Cordeiro da Silva Para: "oracle_br@yahoogrupos.com.br" Enviadas: Terça-feira, 15 de Outubro de 2013 15:57 Assunto: Re: [oracle_br] Bkp de objetos no banco 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 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 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 >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 > 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
Re: [oracle_br] Bkp de objetos no banco
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 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 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 >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 > 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"
Re: [oracle_br] Re: Horário de Verão
Há algum tempo atras o Rodrigo Almeida relatou um problema ao tentar abrir um banco de teste o Oracle não conseguia fazer um Automatic Recovery da instância, pois o servidor mudou o horário devido a mudança de Data/Hora do servidor. http://www.rodrigoalmeida.net/blog/ora-600-2252-um-caso-estranho/ Nunca testei, mas se ocorreu este erro devido a mudança de Data e Hora, creio que podemos ter problemas caso precisarmos fazer uma restauração incompleta baseada em Data/Hora aplicando os archives gerados entre a mudança de horario. Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ De: J. Laurindo Chiappa Para: oracle_br@yahoogrupos.com.br Enviadas: Quinta-feira, 10 de Outubro de 2013 11:37 Assunto: [oracle_br] Re: Horário de Verão O database em si é ** indiferente ** ao horário do sistema, pois ele se auto-controla através do SCN, que é um 'tick', uma "sequência auto-incrementada em pequenos intervalos", então para o database em si problema nenhum em se mudar o clock do sistema PORÉM, vc tem que ter em mente duas coisas : a) no seu caso além do database vc está rodando um Cluster RAC, e ele (por definição) a cada poucos segundos faz um "ping" entre os nós e a data/hora fracionária e exata da resposta fica registrado internamente, e servirá de comparação para causar um eventual reboot/node fencing por timeout/resposta muito demorada : neste caso, a nota metalink "RAC: Frequently Asked Questions" (Doc ID 220970.1) textualmente recomenda que vc baixe o clusterware E as instâncias antes de fazer a alteração antes de fazer alterações 'grandes' no horário : "Minor changes in time (in the seconds range) are harmless for Oracle RAC and the Oracle Clusterware. If you intend on making large time changes it is best to shutdown the instances and the entire Oracle Clusterware stack on that node to avoid a false eviction, especially if you are using the Oracle RAC 10g low-brownout patches, which allow really low misscount settings. " ==> Evidentemente, em adição a isso, num ambiente RAC já que é Recomendado que vc esteja usando algum serviço externo de NTP, pode ser necessário mudar TAMBÉM o clock no servidor NTP... Em alguns casos/configurações ajustando o clock do NTP o client NTP até atualiza o horário local nos nós, mas por segurança eu Ainda Diria para vc fazer um shutdown... b) embora o database em si seja indiferente porque usa SCN, alguns componentes (como JOBS, por exemplo) ** usam ** o horário local , então vc pode terminar com job não disparado : a nota metalink "DBMS_SCHEDULER or DBMS_JOB And DST / Timezones Explained" (Doc ID 467722.1 é a referência []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Bruno Sales escreveu > > Bom dia senhores, > como bem sabemos, já estamos chegando no horário de verão, e com ele chegou > a mim algumas dúvidas: > > Estou utilizando um Oracle RAC 10g com 2 nós, Standard Edition, em um > Redhat 5. > > Basta alterar o horário pelo Sistema Operacional que o horário do Banco irá > acompanhar ? E em relação às sessões das aplicações conectadas ao banco no > momento da virada, tambem seguirão o horário ? > Pelo que sei, quase nao há problemas em relação à mudança para o horário de > verão, e o problema está mais na hora da volta, certo? > > Gostaria de algumas sugestões acerca do assunto, se possível. > > Agradeço desde já, > > > > -- > Bruno Sales >
Re: [oracle_br] Re: Agendamento de backup
Olá Rodrigo, Sobre o primeiro caso, pra mim é muito interessante você usar o Schedure do Oracle, pois em um ambiente RAC o backup irar disparar mesmo se um nó ficar inativo, ao passo que pelo S.O , uma das maquinas que irar executar o backup e vai que exatamente a que executa o backup esta inativo? Resultado, nada de backup neste dia. Quanto ao realizar backup em ambiente Windows em disco compartilhado, você precisa colocar os serviços do Oracle (listener e banco) executando com um login de rede, por padrão o Oracle executa com usuário administrador da maquina local e por isso, ele não tem acesso a nada de rede. Depois de configurar os serviços e reinicia-los, basta apontar o IP do compartilhamento. Ex: allocate channel ch1 type disk format '\\172.16.0.4\BACKUP_ORACLE\PRODUCAO\BKP_FULL_%d_%s_%t_%p'; 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: Rodrigo Almeida Para: oracle_br@yahoogrupos.com.br Enviadas: Quarta-feira, 9 de Outubro de 2013 14:47 Assunto: Re: [oracle_br] Re: Agendamento de backup Muito obrigado pela atenção pessoal, vocês me ajudaram bastante. No servidor windows vou manter o agendamento pelo S.O, mas estou pensando em migrar para os Jobs do ORACLE pois o windows as vezes não inicia os backups. Sábado tenho um serviço desse para fazer no linux, então até lá vou testar os agendamento usando o CRON e usando os Job do ORACLE. Aproveitando o assunto, me tirem outra dúvida. Em meus scripts depois de realizar o backup eu movo os backups para uma pasta mapeada. Fiz isso porque com o RMAN não funcionou gerar o backup direto no disco mapeado. Usei o seguinte mas não funcionou por isso usei o script no bat para mover: allocate channel ch1 type disk format 'S:\BACKUP_ORACLE\PRODUCAO\BKP_FULL_%d_%s_%t_%p'; Tem alguma coisa errada nesse comando ou existe alguma limitação no RMAN em fazer backup em mapeamento no windows? Em 8 de outubro de 2013 17:05, J. Laurindo Chiappa escreveu: > >Jóia, Fábio ? Então, a única obs que eu penso ser legal deixar Claro para o >Rodrigo é que é + ou - indiferente o método de se agendar ** SE ** estamos >falando de um punhadinho de databases, e residindo em pouqíssimos servidores >: é Claro que na hora de Administrar (digamos, que vc precisar re-agendar >backups, cancelar uma execução devido à manutenção, etc, etc), é um trampo >CANINO, manual, Trabalhoso e Extremamente sujeito à erros, vc editar x scripts >em y servidores se x e/ou y forem não-triviais >Assim, SE o ambiente tem um porte maiorzinho, Sem Dúvida opções como o >agendamento via OEM ou via database jobs passa a ser Interessante, pois são >opções que vc consegue scriptar as alterações de algum modo... Inclusive, a >opção de database jobs tem especial interesse nisso porque vc tem comandos >SIMPLES e padrão para cancelar/re-agendar um job, para consultar status e >logs. > >[]s > >Chiappa > >--- Em oracle_br@yahoogrupos.com.br, Fabio Prado escreveu >> >> Rodrigo, como o Victor disse, o que funcionar está bom, porém... eu prefiro >> sempre agendar através de Scheduler Jobs. Gosto de deixar o que é do Bd >> dentro do BD! Além do mais Scheduler JObs (aqueles criados com a package >> DBMS_SCHEDULER) são muito poderosos! Vc consegue criar entre muitas coisas >> avançadas, um workflow de jobs utilizando objetos chamados *Chains*! >> >> Na empresa em que trabalho hoje temos muitos *External Scheduler >> Jobs*chamando scripts shell do SO, em substituição ao agendamento da >> crontab. >> Tudo o que temos na crontab estamos transferindo aos poucos para stored >> procedures c/ Scheduler Jobs ou utilizamos os próprios scripts shell >> chamando-os através de External Scheduler Jobs. >> >> []s >> >> Fábio Prado >> http://www.fabioprado.net >> >> >> Em 7 de outubro de 2013 22:18, Vitor Junior escreveu: >> >> > ** >> > >> > >> > Caraca... até achei que era o Rodrigo Almeida, referência em oracle... >> > rsrsrsrs >> > Cara, o padrão geralmente é esse mesmo. Scheduler no windows e cron no >> > linux. Funcionando tá bom. :) >> > >> > Att >> > Vitor Jr. >> > Em 07/10/2013 21:53, "Rodrigo Almeida" escreveu: >> > >> > ** >> >> >> >> >> >> >> >> Bom noite pessoal, >> >> >> >> Semana passada fui em um cliente mudar a rotina de backup em um ORACLE 10 >> >> em Windows Server. P
Re: [oracle_br] Re: Carga de dados
Apenas uma observação, lembre-se que o bdlink tem limitações, por exemplo "ORA-22992: cannot use LOB locators selected from remote tables". 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: Fernando Garatini da Silva Para: oracle_br@yahoogrupos.com.br Enviadas: Quarta-feira, 9 de Outubro de 2013 10:19 Assunto: Re: [oracle_br] Re: Carga de dados obrigado pessoal pela dica Em 9 de outubro de 2013 11:17, J. Laurindo Chiappa escreveu: > >Explica melhor : os dados estão numa OUTRA instância que não é aquela que vc >está conectado ?? Essa instância está em OUTRO servidor físico ?? >SE a resposta for SIM para ambas as perguntas, a performance do dblink depende >FUNDAMENTALMENTE da performance da tua rede - se a rede for boa , via de >regra o dblink é Muito Mais performático do que exp+imp >A melhor opção de comando para se transferir dados via dblink é : criar a >tabela vazia no banco-destino (com extent size apropriado, preferencialmente >numa tablespace lmt, com pctfree e pctused apropriados, não reservando no >momento quase nada de espaço para UPDATEs, vc vai fazer INSERTs apenas no >momento), e depois vc manda um INSERT /*+ APPEND */ INTO tabela (select * from >tabela@dblink); . E SE vc tiver o hardware disponível, pode pode usar >PARALLEL SQL no INSERT e/ou no SELECT > >[]s > >Chiappa > >--- Em oracle_br@yahoogrupos.com.br, Fernando Garatini da Silva > escreveu > >> >> Prezados bom dia , preciso de uma dica >> >> estou conectado num usuário x e preciso carregar uma tabela de 60 000 000 >> de usando um dblink qual o comando que executa a carga mais rapidamente . >> >> -- >> Obrigado Pela Atenção! >> > > -- Obrigado Pela Atenção! Fernando Garatini da Silva Analista de Sistemas/Oracle Phone: 55 +11 8208 0609 / 8642 8338 - SP MSN: garat...@hotmail.com E_MAIL: fgarat...@gmail.com Skype: fernando_garatini
Re: [oracle_br] Re: Backup
Rodrigo, Especificamente o Backup do Oracle usando o RMAN, verifique no log de Alerta se o RMAN esta usando a PGA, caso sim o Backup esta sendo feito I/O Síncrono, e isso é lento. Neste caso, altere o paramento LARGE_POLL_SIZE para melhorar o desempenho do backup Rman. 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: J. Laurindo Chiappa Para: oracle_br@yahoogrupos.com.br Enviadas: Terça-feira, 10 de Setembro de 2013 23:06 Assunto: [oracle_br] Re: Backup Bom, vc não diz mas deduzo que o backup RMAN inicialmente vai pra disco, correto ?? Bom, antes de falar da cópia desses arqs para a fita, observo que tenho visto backups para disco (que OBEDEÇAM aos pontos de tuning citados em http://www.oracle.com/technetwork/database/availability/rman-perf-tuning-bp-452204.pdf e nas múltiplas notas metalink relacionadas, E com I/O server-class, óbvio, e com a maior parte das HBAs/canais direcionados para o backup esse backup) terem um throughput de coisa de 300 a 400 GBs por hora... Assim, esse período de 5 horas (22h até as 03:00h) para o backup em disco muito provavelmente possa ser melhorado... A minha dúvida é quais capacidades de paralelismo e I/O Async vc teria ou não com o Standard Edition One, que nunca usei, e com o seu hardware/SO/sub-sistema de I/O atuais (que vc Não Nos Diz quais são), mas é algo que VALERIA A PENA ser checado, sim Outro ponto óbvio : backup full ** todas as vezes ** é abusar da amizade, só mesmo no mais Trivial dos databases Triviais é que isso é aceitável : algum tipo de BACKUP INCREMENTAL é Intensamente desejado se vc tem um SLA curto a cumprir - pode ser simplesmente realocar os segmentos de dados históricos e quetais para tablespaces próprias que aí seriam backupeadas só de vez em quando ( o que obviamente é livre), ou pode ser mesmo implementar as opções RMAN de backup incremental (que aí vc terá que checar o que é que vc pode e não pode usar no SE ONE) COMPACTAÇÃO dos dados também é outro no-brainer, embora com SE ONE iirc vc só tem a compactação básica (ie, de operações em batch em tabelas e a compressão de chaves nos índices), verifique aí... Já sobre a cópia para fita : obviamente o I/O em fita não vai ser tão performante quanto em disco, mas unidades de fita server-class, com múltiplos drives, com gravação async e caches/aceleradores built-in deveriam dar pelo menos uns 200 GBs por hora, o que vc não parece estar obtendo com esse período de 8h (das 08:00h as 16:00h) para gravar 1,5 TB - seria o caso de checar com o fornecedor da unidade o status de firmware/drivers e quetais, bem como o status de correções/atualizações do software de backup com o fornecedor dele, mas se tudo isso estiver ok não vejo muito mais o que vc pode fazer em termos de software para a parte de fita, aí talvez para cumprir esse SLA vc vá necessitar de um up no hardware, mesmo... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Rodrigo Fernando escreveu > > Pessoal, > > Hoje o backup aqui na empresa e full, apos o backup copio o RMAN e o > DUMP para a fita. > > Meu ambiente e Standard Edition One. > Tamanho do banco 1.5TB > Software de backup do banco: Scripts > Software de backup da fita: ArcServe > Fita: LTO5 > > Hora do inicio do backup e as 22:00, termina por volta das 03:00, começo > a copia para a fita as 08:00 com termino por volta das 16:00 > > Preciso melhorar esta rotina de backup, preciso que esta copia em fita > esteja pronta as 08:00. > > Alguma recomendação de software ou algo parecido? > > Rodrigo >
Re: [oracle_br] Re: Row-X (SX) - Problema?
Olá Chiappa, Tem um trecho que você diz : "Como NÃO EXISTEM locks a nível de COLUNA" , mas já vi caso que o Oracle dá Lock se a coluna estiver sendo alterada. Para ser mais especifico se estivermos inserindo um registro FILHO o CAMPO da de Referencia da Tabela pai de "Lockada" Segue o campo para reprodução: SESSÃO 1 Conectado. SQL> create table teste_pai(pk_number number(3) primary key, campo_desc varchar2(25) ); Tabela criada. SQL> create table teste_filho(pk_number number(3) primary key, fk_pai number(3), campo_desc varchar2(25), FOREIGN KEY (fk_pai) REFERENCES teste_pai(pk_number)); Tabela criada. SQL> insert into teste_pai(pk_number, campo_desc) values (1, 'Valor qualquer'); 1 linha criada. SQL> commit; Commit concluÝdo. SESSÃO 2 C:\>sqlplus /nolog Conectado. SQL> insert into teste_filho (pk_number, fk_pai,campo_desc) values (1,1,'Teste Qualquer'); 1 linha criada. SESSÃO 1 SQL> update teste_pai set campo_desc = 'OUTRO VALOR' where pk_number = 1; 1 linha atualizada. SQL> update teste_pai set pk_number = 2 where pk_number = 1; Veja que posso alterar qualquer campo do Registro PAI enquanto o Registro Filho Criado esta em Transação, ..:: MAS ::.. não o campo CHAVE do Pai. 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: J. Laurindo Chiappa Para: oracle_br@yahoogrupos.com.br Enviadas: Quinta-feira, 29 de Agosto de 2013 14:58 Assunto: [oracle_br] Re: Row-X (SX) - Problema? Tudo jóia ? Então, na verdade vc está vendo aí o comportamento absolutamente NORMAL do RDBMS Oracle - os Conceitos para vc poder entender o que está ocorrendo estão melhor detalhados nos manuais Oracle (**principalmente ** o "Oracle® Database Concepts 11g Release 2" no cap. 9 - Data Concurrency and Consistency), nas notas metalink relacionadas (como a clássica "Master Note: Locks, Enqueues and Deadlocks (ORA-00060)" (Doc ID 1392319.1) , e em bons livros que detalham a arquitetura do RDBMS (como por exemplo os do Tom Kyte), mas a versão resumida da historinha é (sempre falando de locks relacionados a DML, os causados por DDLs são outra coisa) : - conceito 1 : no RDBMS Oracle, no instante mesmo em que o DML é processado de cara já é feito um lock em ** TODOS ** os registros envolvidos, não se 'espera' haver um acesso , nem nada, e é Autiomático (o programador/usuário não tem que fazer/programar NADA para isso) e inescapável : no caso, isso não traz problemas de acesso multi-usuário porque no RDBMS Oracle o SELECT, a leitura, ** NUNCA ** é afetada/bloqueada/impedida por lock de nenhum tipo, e vice-versa : LOCKERS nunca intererferem em/são interferidos por readers E readers nunca interferem em/são interferidos por LOCKERS, e isso não implica em leitura "suja" (ie, uma outra sessão ler dados alterados mas não comitados) porque os dados antes da alteração são "copiados" para uma estrutura chamada UNDO, e são esses dados que são lidos/retornados. - conceito 2 : existem 2 tipos básicos de locks automáticos relacionados a DML : locks row-level, que protegem/evitam alterações em uma só linha da tabela (normalmente chamados de TX Locks, ou transaction locks), e locks a nível de tabela (TM Locks, ou locks table management) , que protegem a tabela TODA, evitando DDLs na tabela lockada, okdoc ? ==> Esse conceito é Crítico : como ambos os locks se relacionam a linhas, vc VAI ver a palavra "ROW" nas descrições de ambos, mas Não Confunda-os - ambos são relacionados a linhas (daí o ROW na descrição) mas o escopo entre eles é Totalmente diferente, um locka uma só linha, outro locka TODAs as linhas (na prática "fechando"/protegendo a tabela toda), mas apenas para DDLs... DMLs (que se referem á linhas específicas de dados) não são que se refiram a linhas Aqui está, penso eu, a fonte de sua dúvida : a V$LOCKED_OBJECT mostra o locked_mode , a 'funcionalidade' dos locks , que para DMLs normalmente vai ser 3, que é relacionado com linhas (rows), mas ** NÃO MOSTRA ** o TIPO do lock, se é TX ou TM, então só pela V$LOCKED_OBJECT vc não tem como saber o TIPO dos locks presentes, se ele está protegendo uma linha só ou não, se protege o conunto de linhas (a tabel
Re: [oracle_br] Usando UNION e UNION ALL Performance da consulta
sim. O Union all simplemente juntas as tabelas; ao passo que o UNION faz um distintc da união das tabelas. 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: Flaviano Maia Para: oracle_br@yahoogrupos.com.br Enviadas: Quinta-feira, 20 de Junho de 2013 8:27 Assunto: [oracle_br] Usando UNION e UNION ALL Performance da consulta Olá, colegas. Desculpe se a pergunta é básica, há grande diferença de performance entre usar UNION ou UNION ALL numa consulta ? abraço. -- *"A vida é um instante entre duas eternidades.**" Flaviano de Figueiredo Maia * [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Erro com privilégios insuficientes
Se o contexto é criado (não padrão Oracle) ele deve sempre obrigatoria ser executado dentro do pacote, qualquer tentativa fora do pacote ocorrerá este erro. Exemplo: -- CRIAR UM CONTEXTO PARA EXECUTAR DENTRO DO PACOTE IUNIEMPRESA CREATE CONTEXT FILTRO_EMPRESA USING PRODUCAO.iuni_multi_empresa; -- Então somente o pacote PRODUCAO.iuni_multi_empresa pode executar o comando abaixo: então dbms_session.set_context('FILTRO_EMPRESA','IUNIEMPRESA',p_codempresa); Qualquer tentativa de acessar fora o pacote ocorre erro; vale lembrar tambem que se o contexto não foi criado tambem daria o erro de privilegio Alessandro Lúcio Cordeiro da Silva Analista de Sistema þ http://alecordeirosilva.blogspot.com/ De: Wanderson Barrence Para: oracle_br@yahoogrupos.com.br Enviadas: Quinta-feira, 13 de Junho de 2013 16:53 Assunto: [oracle_br] Erro com privilégios insuficientes Olá Pessoal, Estou tentando executar o pacote sys.dbms_session.set_context, mas só está dando erro ORA-01031: Privilégios insuficientes e ORA-06512, eu já concedi privilégios, mas o erro ainda persiste: grant execute on sys.dbms_session to producao; Ambiente: SO: RHEL 6.2 BD: Oracle 11g E.E (11.2.0.3) Att, -- *Wanderson Barrence | Analista de Banco de Dados* *DBA Oracle 10g/11g - Microsoft SQL-Server 2008* *MBA - Administração de Banco de Dados* *CBTS - Certificação Brasileira de Teste de Software* -- *Skype*: wbarrence *Facebook*:http://www.facebook.com/wbarrence *Linkedin*: http://br.linkedin.com/in/wbarrence [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] erro export RMAN servidores diferentes
Paulo, por padrão, no Windows o serviço Oracle roda com privilégios de usuário administrador da maquina local, com isso qualquer tentativa de backup e/ou Arquivamento do LOG fora da maquina local, ocasionará erro de privilégios. No caso, a solução é ir no Serviço Oracle e do Listener altere o Log On de Conta Local para uma conta de Rede. Eu comento isso em um artigo que escrevi no meu blog http://alecordeirosilva.blogspot.com.br/2012/02/backup-recovery.html, caso tenha interrese mostro como realizar backup em disco compartilhado em Rede e ainda restaurar em uma outra maquina este backup; Alessandro Lúcio Cordeiro da Silva Analista de Sistema http://alecordeirosilva.blogspot.com/ De: Paulo Couto Para: "oracle...@yahoogroups.com" Enviadas: Terça-feira, 28 de Maio de 2013 15:51 Assunto: [oracle_br] erro export RMAN servidores diferentes Boa tarde, Amigos, eu utilizo o oracle 10.2 STD em win 2003 EE, e estou com um problema para gerar um backup via RMAN do host A para o host B. Os dois hosts tem configuração similar a nivel de SO, o host B não tem banco instalado. Quando tento executar o rman retorna um erro: ORA-01278: error creating file '\\STADELIA39\BACKUP\CONTROL.SQL' ORA-27300: OS system dependent operation:open failed failed with status: 13 ORA-27301: OS failure message: The data is invalid. Pelo que já li na internet, trata-se de permissão de acesso, mas estou usando o mesmo login local com mesma senha e está no grupo de administradores locais, e mesmo assim o erro ocorre. Gostaria de saber se existe alguma solução para que o RMAN consiga gravar os files de backup em outro host. Att, Paulo. [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Organização dos Objetos
Cheguei em pensar nisso, mas o Oracle criar outros objetos em uso normal do banco SYS_IMPORT_SCHEMA_XX e o sistema também cria novos objetos dependendo dos recursos ativados. 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: Milton Bastos Henriquis Jr. Para: oracle_br@yahoogrupos.com.br Enviadas: Terça-feira, 19 de Março de 2013 10:37 Assunto: Re: [oracle_br] Organização dos Objetos Que tal pela Data de criação dos objetos? 2013/3/19 Alessandro Lúcio Cordeiro da Silva > ** > > > > Bom dia Senhores, > > A empresa proprietaria do Software ao criar os objetos colocou tudo no > esquema SYSTEM. É possivel saber exatamente quais objetos foi o Oracle que > criou e quais objetos foram criados para o Software? Pois pretendo criar um > esquema especifico para estes objetos. > > > 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" > > [As partes desta mensagem que não continham texto foram removidas] > > > [As partes desta mensagem que não continham texto foram removidas] -- >Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira >responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ -- >Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » >Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: >http://www.oraclebr.com.br/ Links do Yahoo! Grupos [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Organização dos Objetos
Bom dia Senhores, A empresa proprietaria do Software ao criar os objetos colocou tudo no esquema SYSTEM. É possivel saber exatamente quais objetos foi o Oracle que criou e quais objetos foram criados para o Software? Pois pretendo criar um esquema especifico para estes objetos. 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" [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Criação de Sessão Automatico
Olá Senhores, Em Oracle 11.2.0.3.0 em ambiente Rac estamos com um caso muito estranho. Ao realizar um Select em uma determinada tabela com ROWID o oracle cria automaticamente umas 120 sessões. Segue: Em uma sessão do SQLPLUS, para o meu usuario tem 5 sessões SQL> select count(*) from gv$session where username = 'ALESSANDROL'; COUNT(*) -- 5 Abro uma nova sessão e realizaro uma consulta com ROWID SQL> select a.*, rowid from trancaix a; ;.. Volto para Sessão anterior e realiza SQL> select count(*) from gv$session where username = 'ALESSANDROL'; COUNT(*) -- 134 Alguem já viu isso? O problema é que o sistema faz este SQL, e se uns 5 usuarios abrir o modulo caixa o banco começa a ficar lento, pois acaba tento mais de 600 Sessões com apenas 5 usuarios logado. 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" [As partes desta mensagem que não continham texto foram removidas]
Re: RES: [oracle_br] Crescimento absurdo do Banco
Ola Emerson, Qual a versão do seu banco de dados? Vale lembrar que no Oracle 11g tem varias auditorias habilitadas por padrão, e claro que isso tem o custo de consumir espaço do Banco de Dados. Se o crescimento for nas TableSpace, bem provavel que seja algo com auditoria. 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: Márcio - Grupos Oracle Para: oracle_br@yahoogrupos.com.br Enviadas: Quarta-feira, 20 de Fevereiro de 2013 16:16 Assunto: RES: [oracle_br] Crescimento absurdo do Banco Faça também um acompanhamento detalhado do crescimento das tablespaces. Aqui eu monitoro o crescimento das tablespaces e como já conheço a forma que cada aplicativo trabalho, já sei o quanto cada um cresce e já peço disco para a equipe de infra. Caso cresça algo fora do normal, comunico o fornecedor pra ver o que pode ter ocorrido pra ter esse crescimento fora do normal. De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em nome de Milton Bastos Henriquis Jr. Enviada em: Wednesday, 20 de February de 2013 17:11 Para: oracle_br@yahoogrupos.com.br Assunto: Re: [oracle_br] Crescimento absurdo do Banco Emerson, veja o quanto antes qual o tamanho atual da base e fale pra gente. Pelo visto vc não tem o tamanho dos dias anteriores, né? Semana passada, por exemplo. Então, como o que já passou já passou, pegue o tamanho de AGORA, e vai tirando esse tamanho novamente amanhã, depois, semana que vem, etc... Assim vc descobre quanto que tá crescendo por dia. 2013/2/20 Emerson Martins emersonmarti...@gmail.com > > Marcio! > > Esse banco não estar em modo archivelog. E essa questão do backup fica em > uma partição separada. > > Emerson Martins > DBA Jr > > > Em 20 de fevereiro de 2013 16:06, Márcio - Grupos Oracle < > marcio_...@yahoo.com.br > escreveu: > > > ** > > > > > > Emerson, o seu banco está com o Archivelog ativado? Se sim, você tem > alguma > > rotina de backup dos archives e limpeza do disco onde ele está? O que eu > > vejo um crescimento grande seria o archive, com algum aplicativo > executando > > muitas transações. > > > > De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br ] > Em > > nome de Emerson Martins > > Enviada em: Wednesday, 20 de February de 2013 14:53 > > Para: oracle_br@yahoogrupos.com.br > > Assunto: [oracle_br] Crescimento absurdo do Banco > > > > > > Pessoal. > > > > Estou com um crescimento absurdo de um banco de dados aqui na empresa.Do > > nada eu fico sem espaço..No momento estou apenas 7 GB de Espaço nesse > > server..E nos meus calculos..O Banco nao cresceu tanto assim não.. > > > > Alguém pode me dar uma luz do que pode ser..? Estou precisando calcular a > > volumetria..desse banco > > > > Ambiente: > > > > Windows Server 2008 R2 > > HD 278 GB > > Oracle Standard One. > > > > Atenciosamente, > > > > Emerson Martins > > DBA Jr > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > -- > >Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de > inteira responsabilidade de seus remetentes. > Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ > > -- > >Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » > Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! > VISITE: http://www.oraclebr.com.br/ > -- > Links do Yahoo! Grupos > > > [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Re: Proteger usuarios com super privilegios.
Olá Chiappa, Foi o que imaginei, não existe nenhum controle nativo do Oracle para proteger os super usuarios. Pois li o livro Oracle Database 11g DBA Handbook de McGraw Hill no capitulo 9 "Database Security and Auditing" e não menciona nada parecido. Mas muito obrigado, pela dica de procudure que troca a senha, é mais uma opção de posso analisar alem da trigger DDL. 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: J. Laurindo Chiappa Para: oracle_br@yahoogrupos.com.br Enviadas: Segunda-feira, 18 de Fevereiro de 2013 12:19 Assunto: [oracle_br] Re: Proteger usuarios com super privilegios. Colega, o RDBMS está fazendo ** EXATAMENTE ** o que vc mandou : como documentado no manual "Oracle® Database SQL Language Reference 11g" (na entrada sobre GRANT) o privilégio ALTER USER spermite que o recebedor altere QUALQUER USUÁRIO, inclusive DBAs, SEM EXCEÇÃO... SE vc não quer que os sujeitos alterem QUALQUER UM, simplesmente NÂO CONCEDA ESSE PRIVILÉGIO, okdoc ? É o mesmo caso que os privilégio ANY : os objetos permitidos/acessibilizados por um ANY são TODOS, sem exceção - Não Existe a figura do operador EXCEPT num GRANT para se estabelecer exceções a um privilégio no RDBMS Oracle... Sendo assim, a técnica mais comum é o usuário SYSDBA (que normalmente possue, ou pode se autorgar, privilégios todos) criar uma PROCEDURE que faça a operação desejada (o ALTER USER no caso - provavelmente o nome do usuário é passado como argumento), MAS que também : - critique a entrada E - faça uma AUDITORIA, gravando/registrando em algum lugar a alteração aó o DBA ao invés de GRANT ALTER USER vai dar um GRANT EXECUTE nomedaprocedure TO usuarioanalistadesuporte; []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Alessandro Lúcio Cordeiro da Silva escreveu > > > > Bom dia Senhores, > > Existe uma situação que gostaria de ver o que vocês acham melhor. Na > empresa existe vários usuarios que são do suporte/Help-desk de sistema, e > estes usuarios tem o privilegio de alterar as senhas dos usuarios. Mas como > proteger os usuarios com super privilegios no banco de dados? > > Veja o caso abaixo. > > > C:\>sqlplus /nolog > > SQL*Plus: Release 11.2.0.2.0 Production on Seg Fev 18 08:56:44 2013 > > Copyright (c) 1982, 2010, Oracle. All rights reserved. > > SQL> connect system@xe > Conectado. > SQL> create user analista_suporte identified by senha; > > Usuário criado. > > SQL> grant connect, resource to analista_suporte; > > Concessão bem-sucedida. > > SQL> grant alter user to analista_suporte; > > Concessão bem-sucedida. > > SQL> exit > Desconectado de Oracle Database 11g Express Edition Release 11.2.0.2.0 - > Production > > C:\>sqlplus /nolog > > SQL*Plus: Release 11.2.0.2.0 Production on Seg Fev 18 08:58:25 2013 > > Copyright (c) 1982, 2010, Oracle. All rights reserved. > > SQL> connect analista_suporte@xe > Informe a senha: > Conectado. > SQL> alter user system identified by senha; > > Usuário alterado. > > SQL> alter user sys identified by senha; > > Usuário alterado. > > > A unica maneira que pensei foi criar uma Trigger DDL provocanco erro se um > determinado usuario tentar mudar a senha de super usuario e/ou DBA's. Alguem > tem alguma outra solução, de preferencia nativa do Oracle já no controle de > acesso de GRANT/REVOKE. > > > > 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" > > [As partes desta mensagem que não continham texto foram removidas] > [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Proteger usuarios com super privilegios.
Bom dia Senhores, Existe uma situação que gostaria de ver o que vocês acham melhor. Na empresa existe vários usuarios que são do suporte/Help-desk de sistema, e estes usuarios tem o privilegio de alterar as senhas dos usuarios. Mas como proteger os usuarios com super privilegios no banco de dados? Veja o caso abaixo. C:\>sqlplus /nolog SQL*Plus: Release 11.2.0.2.0 Production on Seg Fev 18 08:56:44 2013 Copyright (c) 1982, 2010, Oracle. All rights reserved. SQL> connect system@xe Conectado. SQL> create user analista_suporte identified by senha; Usuário criado. SQL> grant connect, resource to analista_suporte; Concessão bem-sucedida. SQL> grant alter user to analista_suporte; Concessão bem-sucedida. SQL> exit Desconectado de Oracle Database 11g Express Edition Release 11.2.0.2.0 - Production C:\>sqlplus /nolog SQL*Plus: Release 11.2.0.2.0 Production on Seg Fev 18 08:58:25 2013 Copyright (c) 1982, 2010, Oracle. All rights reserved. SQL> connect analista_suporte@xe Informe a senha: Conectado. SQL> alter user system identified by senha; Usuário alterado. SQL> alter user sys identified by senha; Usuário alterado. A unica maneira que pensei foi criar uma Trigger DDL provocanco erro se um determinado usuario tentar mudar a senha de super usuario e/ou DBA's. Alguem tem alguma outra solução, de preferencia nativa do Oracle já no controle de acesso de GRANT/REVOKE. 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" [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Duvida
Olá Ygor, certamente o que você deseja não é um comportamente padrão do Banco de Dados. É sim possivel fazer o que você deseja, mas algumas coisas você mesmo terá que tratar. Primeiramente você deve criar duas procedures de Transações ATomica , uma com o primeiro Insert e outra com as demais tabelas Filhas. Ocorre quando a segunda transação atomica for chamada, somente enxergará os dados commitados da primeira procedure. Logicamente se a primeira procedure não der o commit ocorrerá violação de Chave. Todavia como a primeira procedure já deu o commit, ocorre que se der erro na segunda é você que precisa tratar o "Rollback" da primeira transação, pois no que consiste na regra de banco de Dados esta tudo certo. 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: Igor Alves Para: oracle_br@yahoogrupos.com.br Enviadas: Quinta-feira, 27 de Dezembro de 2012 9:28 Assunto: [oracle_br] Duvida Ao executar um commit no banco de dados existe alguma forma de confirmar. Por exemplo o desenvolvedor está executando no sistema uma sequencia de insert. mas o segundo insert só pode ser realizado após o primeiro ter efetuado o commit. A duvida é se existe alguma forma de fazer essa validação.(um retorno booleano ou algo do tipo). Pois a PK da tabela envolvida no primeiro insert é FK nas outras tabelas. Ambiente: Banco:Oracle 10G Linguagem usada pelo desenvolvedor:Java. Igor Alves System Analyst / DBA - EBIX Cientista da Computação pela Faculdade Ruy Barbosa - FRB Especialista em Banco de Dados com Ênfase em Alta Disponibilidade - UNIFACS Tel: (11) 95192-7114(TIM) / (71) 9234-4791(TIM) Currículo: http://www.softwarecurriculo.com.br/igoralves Linkedin:http://br.linkedin.com/in/igoralves [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Re: redo logs
Hã, Yuri, so para concluir, os passos para colocar os archives multiplexados em dois destinos, um local e outro remoto. 1-Conecte com SQL*Plus com usuário SYS com privilegio de SYSDBA. SQL> connect / as sysdba 2-Sete dois diretório de destino. Note que é necessário incluir uma barra no final do nome do diretório. SQL> alter system set log_archive_dest_1='location=C:\bck_oracle\Archive\' scope=spfile; SQL> alter system set log_archive_dest_2='location=\\192.168.100.4\bkp_banco\Fisico\Archive\' scope=spfile; 3-Depois desligue, inicie no modo mount, coloque no modo archive e abra o banco. SQL> shutdown immediate;SQL> startup mount; SQL> alter database archivelog; SQL> alter database open; Para confirmar que o banco esta no modo ArchiveLog execute as query abaixos:SQL> select log_mode from v$database; SQL> select archiver from v$instance; 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: Alessandro Lúcio Cordeiro da Silva Para: "oracle_br@yahoogrupos.com.br" Enviadas: Quinta-feira, 1 de Novembro de 2012 5:56 Assunto: Re: [oracle_br] Re: redo logs Bom dia Yuri, O Oracle pode ter varias destinos dos archivelos (se não me engano 9) eu sempre faço destino em 2 lugares, um em algum caminho da maquina local e outro para uma maquina remota e ativo o parametro LOG_ARCHIVE_MIN_SUCCED_DEST especificar que apenas um destino de archive for arquivado com exito antes de reciclar o Redo Log , pois o destino pode estar indisponivel e então parar o Banco de Dados. Com isso se der algum problema na maquina (no servidor Oracle e mais todos os discos), posso instalar o Oracle em uma terceira maquina e fazer um Recover Incompleto voltando até o ultimo archive disponivel na maquina de Backup. Detalhe, se seu Oracle roda em Windows, o serviço do Oracle no Windows executa com a Conta do Administrador da maquina local. Então em Serviço do Windows e Configurei o Log On do Serviço usar uma Conta do Dominio de Rede tanto o serviço do Oracle como do listener, e depois reiniciar o Banco. Com isso conseguira fazer Backup Apontando para o IP da maquina. Senão ocorrerá o erro de S.O => ora-27040 O/S-Error: (OS 5) Acess is denied. Isto é descrito na Nota 145843.1 “How to Configure RMAN to Write to Shared Drives on Windows NT/2000″. Um exemplo de um backup multiplexdo feito na maquina local e remota run { allocate channel discozero type disk format 'D:\oracle\backup\Fisico\Nivel0\LEV0dat%u.bkp', '\\192.168.100.4\bkp_banco\Fisico\Nivel0\LEV0dat%u.bkp'; backup as compressed backupset copies 2 incremental level = 0 (database include current controlfile); } 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: Yuri Menon Para: oracle_br@yahoogrupos.com.br Enviadas: Quarta-feira, 31 de Outubro de 2012 22:58 Assunto: Re: [oracle_br] Re: redo logs Tem alguma regra contra "reviver" tópicos? Estou com mais uma dúvida e gostaria da opinião dos senhores. Compreendi que meu backup físico pode ser feito uma vez por dia sem problemas, no entanto é necessário ter uma atenção especial com os logs de redo (tanto arquivado como online), certo? Pois bem, a respeito dos logs de redo ONLINE o Alessandro disse que poderia até mutiplexá-los via rede (1 giga-lan) mas e a respeito dos ARCHIVED LOGS? O que vocês acham melhor? Espelhar? Gerar diretamente em outra máquina? [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Re: redo logs
Bom dia Yuri, O Oracle pode ter varias destinos dos archivelos (se não me engano 9) eu sempre faço destino em 2 lugares, um em algum caminho da maquina local e outro para uma maquina remota e ativo o parametro LOG_ARCHIVE_MIN_SUCCED_DEST especificar que apenas um destino de archive for arquivado com exito antes de reciclar o Redo Log , pois o destino pode estar indisponivel e então parar o Banco de Dados. Com isso se der algum problema na maquina (no servidor Oracle e mais todos os discos), posso instalar o Oracle em uma terceira maquina e fazer um Recover Incompleto voltando até o ultimo archive disponivel na maquina de Backup. Detalhe, se seu Oracle roda em Windows, o serviço do Oracle no Windows executa com a Conta do Administrador da maquina local. Então em Serviço do Windows e Configurei o Log On do Serviço usar uma Conta do Dominio de Rede tanto o serviço do Oracle como do listener, e depois reiniciar o Banco. Com isso conseguira fazer Backup Apontando para o IP da maquina. Senão ocorrerá o erro de S.O => ora-27040 O/S-Error: (OS 5) Acess is denied. Isto é descrito na Nota 145843.1 “How to Configure RMAN to Write to Shared Drives on Windows NT/2000″. Um exemplo de um backup multiplexdo feito na maquina local e remota run { allocate channel discozero type disk format 'D:\oracle\backup\Fisico\Nivel0\LEV0dat%u.bkp', '\\192.168.100.4\bkp_banco\Fisico\Nivel0\LEV0dat%u.bkp'; backup as compressed backupset copies 2 incremental level = 0 (database include current controlfile); } 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: Yuri Menon Para: oracle_br@yahoogrupos.com.br Enviadas: Quarta-feira, 31 de Outubro de 2012 22:58 Assunto: Re: [oracle_br] Re: redo logs Tem alguma regra contra "reviver" tópicos? Estou com mais uma dúvida e gostaria da opinião dos senhores. Compreendi que meu backup físico pode ser feito uma vez por dia sem problemas, no entanto é necessário ter uma atenção especial com os logs de redo (tanto arquivado como online), certo? Pois bem, a respeito dos logs de redo ONLINE o Alessandro disse que poderia até mutiplexá-los via rede (1 giga-lan) mas e a respeito dos ARCHIVED LOGS? O que vocês acham melhor? Espelhar? Gerar diretamente em outra máquina? [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Re: Erro BDLINK e o erro Ora-12560
Olá Chiappa, A sua primeira possibilidade, quase matou a charada. Mas me deu um norte de como encontrar o problema. O Alias do Banco era um e o SID era outro. BDPROD = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.19.0.4)(PORT = 1521)) ) (CONNECT_DATA = (SID = BDUNIAC ) ) ) Então inclui o parametro Global Name no TnsName BDPROD = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.19.0.4)(PORT = 1521)) ) (CONNECT_DATA = (SID = BDUNIAC ) (GLOBAL_NAME = BDPROD.com.br) ) ) Depois executei o comando abaixo: ALTER DATABASE RENAME GLOBAL_NAME TO BDPROD.COM.BR; Então SQL> select * from dual@bdprod D - X Muito Obrigado! 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: J. Laurindo Chiappa Para: oracle_br@yahoogrupos.com.br Enviadas: Quarta-feira, 24 de Outubro de 2012 16:11 Assunto: [oracle_br] Re: Erro BDLINK e o erro Ora-12560 Bom, é meio Estranho vc ter um dblink apontando não para um banco remoto mas para ele mesmo, mas é possível : o dblink Nada Mais é do que uma conexão, e vc pode criar uma conexão a mais num dado banco havendo permissão e recursos para isso Algumas possibilidades que me ocorrem para que a conexão não seja criada : a) o parâmetro GLOBAL_NAMES está como TRUE, o que Exige que o nome do database link seja idêntico ao nome global e/ou b) se é 11g, talvez a senha informada na criação do database link NÃo respeite maiúsc/minusc - lembre-se que no 11g a password por default é case-sensitive e/ou c) há limites na qtdade de links abertos (parâmetros open_links_xxx) E na quantidade de processos/sessões que a instância pode criar, veja lá se vc não está caindo em nenhum deles e/ou d) dado o fato de que a string que vc informa na cláusula USING *** não é *** o NOME do database destino, mas sim uma Entrada no TNSNAMES.ORA do servidor do banco-origem, talvez haja qquer misconfig nele ou no correlato SQLNET.ORA : nome do serviço, porta de conexão, domain não informado ou informado erradamente, etc, etc... RECHEQUE se ambos os arquivos estão OK no banco de origem, se o LISTENER está up e com o serviço citado Registrado ===> o meu exemplo, na minha máquina de teste Windows 7 Ultimate, com banco 11gr2 EE : -> configs de conexão OK (serviço registrado no listener, tnsnames e sqlnet ok, etc) : C:\Users\jchiappa>echo %ORACLE_HOME% C:\oracle\product\11.2.0\dbhome_11.2.0.3 C:\Users\jchiappa>echo %PATH% C:\oracle\product\11.2.0\dbhome_11.2.0.3\BIN;C:\oracle\product\product\11.2.0\grid\BIN;C:\Dev10gR2\jdk\jre\bin\classic;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell C:\Users\jchiappa>type %ORACLE_HOME%\network\admin\sqlnet.ora # sqlnet.ora Network Configuration File: C:\oracle\product\11.2.0\dbhome_11.2.0.3\network\admin\sqlnet.ora # Generated by Oracle configuration tools. # This file is actually generated by netca. But if customers choose to # install "Software Only", this file wont exist and without the native # authentication, they will not be able to connect to the database on NT. SQLNET.AUTHENTICATION_SERVICES= (NTS) NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT) C:\Users\jchiappa>type %ORACLE_HOME%\network\admin\tnsnames.ora # tnsnames.ora Network Configuration File: C:\oracle\product\11.2.0\dbhome_11.2.0.3\network\admin\tnsnames.ora # Generated by Oracle configuration tools. O11GR2 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = meupcteste)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = o11gr2) ) ) RMANCAT = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = meupcteste)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = RMANCAT) ) ) C:\Users\jchiappa>lsnrctl status .. Resumo de Serviþos... O serviþo "o11gr2" tem 1 instÔncia(s). InstÔncia "o11gr2", status READY, tem 1 handler(s) para este serviþo... O serviþo "o11gr2XDB" tem 1 instÔncia(s). InstÔncia "o11gr2", status READY, tem 1 handler(s) para este serviþo... O comando foi executado com Ûxito -> entrada no tnsnames pinga ok : C:\Users\jchiappa> C:\Users\jchiappa>tnsping o11gr2 Usado o adaptador TNSNAMES para resolver o apelido Tentativa de contatar (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = meupcteste)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = o11gr2))) OK (10 ms) -> param de global name está Falso, case respeitado na senha, db link criado & usado normal : NAME TYPEVALUE --- -
[oracle_br] Migração de 10g para 11g e o Erro ora-01445
Bom dia Senhores do grupo. Quero compartilhar um caso bem interressante que ocorreu nesta semana depois que migramos o Banco de Oracle 10G para o 11g. O sistema da empresa onde trabalho é baseado em apresentar os dados em view's e depois dá o insert na view's, sendo que essas estão com Trigger's instead of, que são essencialmente disparada apenas para chamar algum procedimento que tem todo o controle da regra de negocio. Além disso, quando o sistema foi desenvolvido era apenas uma empresa, hoje como temos varias empresas usamos o conceito de VPD, para que o proprio Oracle filtre os dados da empresa que o usuario esta logado.Todas as tabelas receberam uma coluna CODEMPRESA e então ao logar o usuario escolhe uma empresa e setamos o contexto da empresa que usuario deseja logar. Então temos uma View relativamente simples: create or replace view producao.v_disciplinaprova as select d.dipcod, p.pvfcod, p.pvfnum, p.pvfdesc, i.divcod, i.divdesc, d.dipprioridade, d.dipqtdequestoes, d.dippeso, d.dipordem, d.dippontospossiveis from disciplinaprova d , provafase p, disciplinavest i where d.pvfcod = p.pvfcod and d.divcod = i.divcod Ao projetar o ROWID da view o Oracle executa normalmente. SQL>select d.rowid from v_disciplinaprova d here d.dipcod = 172; ROWID AAA0aTAA6AAOaw4AAA .:: Mas ao setarmos o contexto de uma empresa . Exemplo dbms_session.set_context('FILTRO_EMPRESA','CODEMPRESA', 1 ); Então quando o Oracle reescreve o SQL adicionando o filtro da empresa "CODEMPRESA = SYS_CONTEXT('FILTRO_EMPRESA','CODEMPRESA')" ocorre o erro "Ora-01445 cannot select rowid from or sample a join view without a key-preserved table" Sei que o erro Ora-01445, ocorre porque o otimizador Oracle precisa ser “convencido” que a tabela base terá somente uma linha depois que realizar a junção com outras tabelas. No caso da view producao.v_disciplinaprovabasta as tabelas provafase e disciplinavest ter chave única no campo que faz o Join com a disciplinaprova, e isto é verdadeiro. No Oracle 10G funcionava corretamente, agora no Oracle 11g, talvez (não tenho como provar) por alteração de melhoria dos planos de execução, o otimizador do Oracle não é “convencido” que a junção resultará em uma unicidade na tabela base. Para resolver isso descobrir duas maneiras, em ambas resulta em reescrita de Query da View 1)Query Alterada com padrão Ansi createorreplaceviewproducao.v_disciplinaprova as selectd.dipcod, p.pvfcod, p.pvfnum, p.pvfdesc, i.divcod, i.divdesc, d.dipprioridade, d.dipqtdequestoes, d.dippeso, d.dipordem, d.dippontospossiveis fromdisciplinaprova d INNERJOIN provafase p ond.pvfcod = p.pvfcod INNERJOIN disciplinavest i ond.divcod = i.divcod 2) Query Alterada com View de View createorreplaceviewproducao.v_disciplinaprova as select* from(selectd.dipcod, p.pvfcod, p.pvfnum, p.pvfdesc, i.divcod, i.divdesc, d.dipprioridade, d.dipqtdequestoes, d.dippeso, d.dipordem, d.dippontospossiveis fromdisciplinaprova d, provafase p,disciplinavest i whered.pvfcod = p.pvfcod andd.divcod = i.divcod) 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" [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] redo logs
Bom dia Yuri, Se você não tem os redo logs on-line disponivel, sua opção é o Recover Incompleto. No Livro "Oracle Database_10g OCP Certification All in One ExamGuide"; capitulo 27 "Incomplete Database Recovery" diz: "Complete recovery should never fail because of missing archive or online log files. Both file types can and should be multiplexed to different devices, making their total loss impossible, but it can happen. If so, incomplete recovery up to the point at which the missing or damaged redo data is needed is your only option. EXAM TIP Incomplete recovery is necessary if there is a missing archive log, or if all copies of the current online redo log are missing." ..:: Mas::.. as coisas não são tão simples assim, a partir do Oracle 9i o Oracle pode ser configurado para não ter perdas. Pode-se criar Data-Guarda com Modo "Maximum Protection". Contudo tudo tem seu custo, e você deve expor a segurança X custo para os gerentes da empresas decidam o que fazer, e faça o que foi acordado, Você não sera mandado embora por fazer o que foi acordado! Em geral perde-se o redo logs on-line quando se faz a instalação padrão (MALDITO NEXT, NEXT, FINISH), pois o Oracle por padrão cria todos os membros no mesmo disco. No Manual do DBA Bob Bryla diz: "CAUTION You should never, ever, want or need to back up online redo log files. Although there is a slight time-savings for restoring from a cold backup after a clean shutdown, the risk of losing committed transactions outweighs the convenience. Your online redo logs should be mirrored and multiplexed so that you (virtually) never will lose the current online log file." Ou seja seu LogFile devem estar espelhado (em Raid) e Multiplexado assim virtualmente nunca perderá o logFile Corrente. * Se você tiver uma tiver uma rede de giga-bit privada de alta confiabilidade porque não multiplexar o LogFile ate mesmo em outra maquina? 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: Yuri Menon Para: oracle_br@yahoogrupos.com.br Enviadas: Terça-feira, 2 de Outubro de 2012 19:35 Assunto: [oracle_br] redo logs Estou com uma dúvida e gostaria da resposta dos senhores (quem tiver preguiça de ler pode ir direto para o último parágrafo). 1- Supondo um BD em Archive MODE. 2- Tenho um cold backup íntegro deste BD (de 1 semana atrás). 3- Ocorre um desastre no servidor de banco, perdendo todos os dados, restaram apenas os archives junto com o cold backup que foram feito em um outro servidor. 4- O desastre ocorreu as 10:00, quando o banco estava em seu maior pico de transações. Minha dúvida é a seguinte: -A recuperação dos dados não vai ser 100%, pois não vou conseguir recuperar as informações que estavam "dentro" dos redo logs, informações que ainda não haviam sido "despejadas" nos archive logs, é isso mesmo? [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Índices em todas as FK's de todas as tabelas
Olá Wanderson, o Oracle somente obriga a criação de indices em Chave Primaria e/ou Chave Unicas. Não é necessário a criação de indices para chaves estrangerias. Contudo, sempre é bom criar indices para FK, mas tabelas mais usada no sistema, por dois motivos: 1- Para melhorar performace em consultas que fazer JOIN entre as tabelas em questão. 2 - Para Evitar algun LOCK em tabela: Por exemplo o Lock "Enqueue - TM" -> "index Foreign Keys, Check application locking of tables" mencionado no Livro - Oracle DataBase 10G Performance Tuning Tips & Techniques Trecho do Capiturlo 14: Using STATSPACK and the AWR Report to Tune Waits and Latches; no Topico Enqueue: "When users want to change the exact same record in a block, a TX6 lock is the result. Lastly, while you no longer get TM locks, which are table locks when you don’t index foreign keys, be sure to still index them to avoid a performance issue" 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: Wanderson Barrence Para: oracle_br@yahoogrupos.com.br Enviadas: Sexta-feira, 28 de Setembro de 2012 12:29 Assunto: [oracle_br] Índices em todas as FK's de todas as tabelas Olá Pessoal, É necessário que todas as tabelas que tenham FK's tenham também índices nessas FK's? At, -- Wanderson Barrence DBA Oracle 10g/11g Analista de Testes - CBTS -- MSN: wbarre...@hotmail.com ICQ: 170821994 Linkedin: http://br.linkedin.com/in/wbarrence [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Restore RMAN (base teste)
Olá Daniel, Seguinte, se você fez backup quente, não tem como fazer o rman "esquecer" os archives, pois os seus backup é inconsistente. Mas os erros abaixo me chama a atenção : Linux-x86_64 Error: 2: No such file or directory RMAN-20506: no backup of archived log found 1) O Oracle vai procurar os archivelos Log's no direitorio onde esta setado o "parametro log_archive_dest_N", este diretorio existe no servidor de teste? Se sim, você precisa copiar seus archives para este diretorio, OU se seus archive de producao estiver em algum lugar da Rede acessivel altere esse parametro para o lugar da rede. 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: Daniel Mello Para: "oracle_br@yahoogrupos.com.br" Enviadas: Quarta-feira, 12 de Setembro de 2012 14:57 Assunto: Re: [oracle_br] Restore RMAN (base teste) Milton, executando um "recover simples" o RMAN dá falta de alguns archives, não posso simplesmente fazer com que ele "esqueça" esses caras? veja abaixo: RMAN> recover database; Starting recover at 12-SEP-12 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=396 device type=DISK starting media recovery channel ORA_DISK_1: starting archived log restore to default destination channel ORA_DISK_1: restoring archived log archived log thread=1 sequence=5561 channel ORA_DISK_1: restoring archived log archived log thread=1 sequence=5562 channel ORA_DISK_1: reading from backup piece /backup/rman/archivelog/for_arch_2tnksugo_1_1 channel ORA_DISK_1: ORA-19870: error while restoring backup piece /backup/rman/archivelog/for_arch_2tnksugo_1_1 ORA-19505: failed to identify file "/backup/rman/archivelog/for_arch_2tnksugo_1_1" ORA-27037: unable to obtain file status Linux-x86_64 Error: 2: No such file or directory Additional information: 3 failover to previous backup RMAN-00571: === RMAN-00569: === ERROR MESSAGE STACK FOLLOWS === RMAN-00571: === RMAN-03002: failure of recover command at 09/12/2012 13:20:13 RMAN-20506: no backup of archived log found RMAN-06053: unable to perform media recovery because of missing log RMAN-06025: no backup of archived log for thread 1 with sequence 5562 and starting SCN of 1894548322 found to restore RMAN-06025: no backup of archived log for thread 1 with sequence 5561 and starting SCN of 1894548166 found to restore De: Milton Bastos Henriquis Jr. Para: oracle_br@yahoogrupos.com.br Enviadas: Quarta-feira, 12 de Setembro de 2012 15:48 Assunto: Re: [oracle_br] Restore RMAN (base teste) Olá Daniel! Cara, não tenho certeza absoluta do que estou falando, até por falta de informações que vc não passou, mas vou dar um PALPITE. Por essa mensagem de erro eu tenho a seguinte impressão: - Vc restaurou a base, e os datafiles que vc restaurou foram backupeados DEPOIS da sequence 5554 que vc definiu. Ou seja, pra vc restaurar um backup para esse ponto específico, vc teria que restaurar um backup de ANTES desse ponto, e daí sim ir aplicando os archives até chegar a este ponto. Não é possível vc restaurar um backup depois deste ponto, ou seja, um backup mais novo, e daí mandar ele "voltar pra trás". Isso não é possível! 2012/9/12 Daniel Mello > ** > > > Boa tarde pessoal. > > Estou montando um ambiente de testes a partir de uma base de produção em > modo archivelog. > Tenho um backup rman feito em hot. > Já restaurei a base, setei os novos nomes/caminhos dos datafiles, tudo > correu certo. Mas estou com problemas com o erro abaixo: > > RMAN> Recover Database Until Sequence 5554; > > Starting recover at 12-SEP-12 > using channel ORA_DISK_1 > RMAN-00571: === > RMAN-00569: === ERROR MESSAGE STACK FOLLOWS === > RMAN-00571: === > RMAN-03002: failure of recover command at 09/12/2012 13:12:13 > RMAN-06556: datafile 1 must be restored from backup older than SCN > 1894535465 > > Estou tentando fazer o recover até a ultima sequencia que tenho, pois essa > base de testes não ficará em modo archivelog, mas já tentei de todas as > formas e não vai. > > Oracle 11g > > Muito obrigado. > > Daniel. > > [As partes desta mensagem que não continham texto foram removidas] > > > -- Att, [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Restore RMAN (base teste)
Bem provavel que seja isso mesmo que o Milton disse Daniel. Por isso faz assim: SQL> recover database until cancel using backup controlfile; O Oracle irar aplicar ate o ultimo archive disponivel. 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: Milton Bastos Henriquis Jr. Para: oracle_br@yahoogrupos.com.br Enviadas: Quarta-feira, 12 de Setembro de 2012 14:48 Assunto: Re: [oracle_br] Restore RMAN (base teste) Olá Daniel! Cara, não tenho certeza absoluta do que estou falando, até por falta de informações que vc não passou, mas vou dar um PALPITE. Por essa mensagem de erro eu tenho a seguinte impressão: - Vc restaurou a base, e os datafiles que vc restaurou foram backupeados DEPOIS da sequence 5554 que vc definiu. Ou seja, pra vc restaurar um backup para esse ponto específico, vc teria que restaurar um backup de ANTES desse ponto, e daí sim ir aplicando os archives até chegar a este ponto. Não é possível vc restaurar um backup depois deste ponto, ou seja, um backup mais novo, e daí mandar ele "voltar pra trás". Isso não é possível! 2012/9/12 Daniel Mello > ** > > > Boa tarde pessoal. > > Estou montando um ambiente de testes a partir de uma base de produção em > modo archivelog. > Tenho um backup rman feito em hot. > Já restaurei a base, setei os novos nomes/caminhos dos datafiles, tudo > correu certo. Mas estou com problemas com o erro abaixo: > > RMAN> Recover Database Until Sequence 5554; > > Starting recover at 12-SEP-12 > using channel ORA_DISK_1 > RMAN-00571: === > RMAN-00569: === ERROR MESSAGE STACK FOLLOWS === > RMAN-00571: === > RMAN-03002: failure of recover command at 09/12/2012 13:12:13 > RMAN-06556: datafile 1 must be restored from backup older than SCN > 1894535465 > > Estou tentando fazer o recover até a ultima sequencia que tenho, pois essa > base de testes não ficará em modo archivelog, mas já tentei de todas as > formas e não vai. > > Oracle 11g > > Muito obrigado. > > Daniel. > > [As partes desta mensagem que não continham texto foram removidas] > > > -- Att, [As partes desta mensagem que não continham texto foram removidas] -- >Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira >responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ -- >Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » >Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: >http://www.oraclebr.com.br/ Links do Yahoo! Grupos [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Ajuda em performance urgentemente
Bom dia Jales,a um tempo atras respondi isso para outro membro do Grupo, segue a resposta, ve se te ajuda. -- Bom dia Igor, Uma forma direta de saber a razão do lock é monitorar os eventos de espera. Para isto consulte a coluna EVENT da tabela V$session. Todo caso, algum tempo atraz aqui na empresa acontecia o mesmo problema, ninguem consegui inserir dados em uma determinada tabela. Ao monitorar a sessão, o evento que ocorria era enq: TX - allocate ITL entry. Consultando o Evento que causou o LOCK no livro “Oracle-DataBase-10g Performance tuning tips-techniques” temos a seguinte informação deste evento: This " enq: TX - allocate ITL entry ” indicates error is seem when too many concurrent DML transactions are competing for the same data block. Ou seja muitas transações abertas disputando o mesmo bloco de dados Oracle. O Oracle gerencia até 255 transações disputando o mesmo bloco de dados, Um bloco de dados Oracle pode ter somente linhas proveniente somente de uma tabela ou índices. Se você tiver um objeto pequeno, é perfeitamente possível ter mais de 250 linhas deste objeto sobre o mesmo bloco em transação. No meu caso este objeto pequeno é o index no campo chave da tabela. No Livro Manual do DBA Oracle 10g - Capitulo 5 é discutido as possiveis soluções, como aumentar o pctfree, mas não acho ideal, pois acaba gastando mais espaço , a melhor solução foi usar Reverse Key Indexes, com isto cada indice incluido poderia usar bloco diferente. Se este for o seu caso, segue o link de um artigo que explica melhor isto. http://oracletoday.blogspot.com/2006/09/there-is-option-to-create-index.html 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: Jales Jose Moraes Para: grupo_oracle Enviadas: Quarta-feira, 12 de Setembro de 2012 7:37 Assunto: [oracle_br] Ajuda em performance urgentemente Pessoal existe uma aplicação em que está causando lock's e deixando outras sessões em lock's indefinidamente. O desenvolvedor alega que é apenas um insert e logo em seguida efetua o commit, mas o fato é que está tudo parado com vários lock's. Alguém tem uma sugestão de como podemos proceder para a resolução do problema? Oracle 11g Rac... [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Os índices do banco de dados devem ficar numa tablespace específica?
Pra mim, chega de tablespace separada entre dados e indices, não faz sentido. Muitas pessoas dizem de "acesso concorrente entre dados e indices", mas não existe isso. No Select você primeiro acesso o indices de depois a tabela, no DML o Oracle acessa primeiro a tabela e depois o indices. E num ambiente multi usuario, tudo é acesso concorrente. Também ouve muito que "se você perder a tablespace indices só preciso recriar os indices". Se você perder a tablespace indices o seu sistema esta indisponivel, não é mais 1980. Se você perdeu o indices não funciona mais nada. Aumentando a discursão, chega de datafiles de 2 e/ou 4 giga, ja estamos no seculo 21. Pode criar o DataFile de 32 Giga (o tamanho maximo dos datafiles em SmallFile) o ambiente suporta. Então criar uma tablespace data, joga tudo la dentro e esta otimo. Vai estar tudo dentro Storage que vai estar particinado. 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: Wanderson Barrence Para: oracle_br@yahoogrupos.com.br Enviadas: Quinta-feira, 6 de Setembro de 2012 14:19 Assunto: [oracle_br] Os índices do banco de dados devem ficar numa tablespace específica? Olá Pessoal, Gostaria de saber se é interessante manter os índices do banco de dados numa tablespace específica (TBS_INDEX)? Se sim, quais são as vantagens? Caso contrário, quais são as desvantagens? Att, -- Wanderson Barrence DBA Oracle 10g/11g Analista de Testes - CBTS -- MSN: wbarre...@hotmail.com ICQ: 170821994 Linkedin: http://br.linkedin.com/in/wbarrence [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]