Re: [oracle_br] RE: Tunning de Queries
Sensacional como sempre Chiappa! Eu sou desenvolvedor e na minha equipe TODOS tem que escrever boas queries, se preocupando se a query não vai fazer FTS, não permitindo que o frontend monte queries SEM filtros para campos com índice, sem estar parametrizada (strings embutidas na query) e etc. Uma parte do meu trabalho é justamente de controle de qualidade, verificando se alguém dá bobeira mas como o pessoal é bem treinado, raramento pego algum problema. Com isso, são raros os casos aqui que o DBA precisa apagar incêndio... Saudações e parabéns pelos excelentes comentários!! Josir
[oracle_br] Re: Ambiente Virtual para Banco de Dados
Olá Francisco, eu não recomendo VirtualBox para rodar o Oracle. Já fiz testes de performance com KVM e VirtualBox e o KVM dá um banho. Na verdade, com KVM, a performance fica MUITO próxima da máquina real, ou seja, se você instalar direto no HOST. Se você está usando Ubuntu, a melhor opção é sem dúvida KVM. Eu uso em 3 servidores, inclusive sendo uma de produção com mais de 50 usuários ativos. Para ambientes maiores, eu já não posso opinar. Boa Sorte, Josir. --- Em oracle_br@yahoogrupos.com.br, Francisco Petersen Jr fpetersenjr@... escreveu Aproveitando o gancho, p/f para estudos uma solução caseira com VM Virtualbox e linux ubuntu e oracle 11g2 XE fica de bom tamanho ? ou seria melhor 11g2 SE para inclusive instalar RAC ? fiz apenas uma pesquisa superficial nesse sentido e quando vi esse topico da Elaine não me contive em perguntar ... muito obrigado ... Francisco. To: oracle_br@yahoogrupos.com.br From: jlchiappa@... Date: Wed, 7 Mar 2012 16:02:47 + Subject: [oracle_br] Re: Ambiente Virtual para Banco de Dados Elaine, quando se fala de virtualização penso que um ponto Crítico é definir se haverá ou não virtualização de hardware, e se sim quais serão, e de que maneira serão usados e limitados : há soluções de virtualização que simplesmente Separam os recursos reais, e há soluções que emulam recursos, deixando para o recurso real atender às n emulações das n máquinas virtuais... veja vc, suponha (digamos) um servidor com 8 processadores e 64 Gb de RAM - se vc usar uma solução de particionamento de recursos reais, vc poderia ter 4 VMs cada uma com 2 processadores e 8 Gb de RAM e NENHUMA interferiria na outra em tese, seja qual for a carga / processamento... Já se vc usar uma solução que virtualiza recursos, as CPUs e memória de cada VM serão virtuais, serão as CPUs e memórias reais da máquina real que vão atender a toda a demanda - o perigo aqui é que ** SE ** uma aplicação mal-comportada começar a demandar muito mais CPU/memória que as outras, a CPU e memória reais podem não dar conta e aí TODAS as VMs (que são atendidas pelos recursos reais) sofrem... Então, se vc for usar hardware virtual, vc ** TEM ** que estar absolutamente certa da demanda de pico de TODOS os ambientes que vc for virtualizar, TEM que fazer um excelente capacity planning do hardware real, e ** TEM ** que implementar limites nas aplicações a rodarem nos ambientes virtuais, justamente para que uma aplicação mal-comportada não engargale o teu conjunto inteiro de VMs Eu não falei de I/O por ser um caso à parte : já que virtualizar discos é possível mas não muito performático em muitos casos, E em ambiente de Produção numa empresa normalmente se dispõe de um storage de grande capacidade e de switches de rede de enorme banda, normalmente isso não se virtualiza, e sim se dedica um volume de discos dedicado pra cada VM... Neste cenário, o capacity planning tem que ser feito no storage, assegurando-se que as controladoras reais, os canais/cabos de rede e switches que atendem ao storage suportem a demanda... Quanto à erros, eu absolutamente nunca vi uma 'rotina' que desse erro só por estar rodando num ambiente virtualizado, que fosse realmente 'incompatível' com virtualização O que já vi muito, mas muuuito mesmo, foi capacity planning do hardware real mal-feito causar enorme perda de performance nas VMs que usam hardware virtual, mas incompatibilidade nunca Uma observação final é sobre a Administração : muitas das soluções de virtualização que virtualizam hardware Não Tem ferramentas próprias que mostrem, dado o total de utilização dos recursos reais, quantos % estão sendo consumidos por cada VM, aí fica pros Administradores o trabalho de consultar as VMs uma por uma e checarem o quanto de recursos cada uma está utilizando, o que demanda TEMPO, COnhecimento e ferramental próprio, que muitas vezes deve ser criado / instalado à parte []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Eliane SILVA ecssilva@ escreveu Bom dia a todos, Gostaria muito em saber as opiniões e experiências de vocês sobre o ambiente de virtualização (VM) para banco de dados. Alguém sabe se existem empresas que estejam já com este tipo de ambiente em produção (Oracle, Sybase, Sql Server, ...) ? Se sim, tiveram impactos de performance e de rotinas incompatíveis de serem rodadas neste ambiente, que gerem erros ... Abraços e agradeço desde já a atenção. Eliane Silva [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Re: [OFF-Topic] Hardware servidor + Oracle database
Olá Tobias, apenas como informação para você ter idéia do hardware que você vai precisar. Veja a minha configuração atual: 40 usuários simultâneos com uma base de 10Gb aproximadamente (dados+índices). Oracle 11g STANDARD - Licença sem limitação de usuários / Para um único processador. Pagamos R$12.000,00 pela licença. Hardware: DELL Proliant / XEON. RAM: 8Gb RAM HD SATA 2 com 1Tb Sistema Operacional: Ubuntu Server 64 bits 10.04 no Host com KVM SO da VM: Ubuntu Server 8.04 64 bits Memória RAM alocado na VM: 2Gb Número de Processadores virtualizados: 1 PS: Tenho outros 2 sistemas virtualizados no mesmo Host. *Resumo Operacional* A máquina nunca chegou a 20% de CPU, nunca deu um crash em seus 3 anos de uso, nunca entrou em swap, ou seja, é MUITO estável. PS: Não contratamos o Metalink pois achamos um roubo e um abuso termos que pagar pelo suporte no primeiro ano de uso. É como comprar um carro zero e não ter direito a revisão na concessionária... Enfim, achei importante dar esse feedback pois muitas vezes acho que o pessoal acaba comprando um avião para seguir as especificações da Oracle quando, na verdade, ele só precisa ir a Bangu :) Saudações a todos! Josir. --- Em oracle_br@yahoogrupos.com.br, Tobias Sette tobiasette@... escreveu Saudações livres Necessito de um servidor para rodar, principalmente, o Oracle database (ainda nao definido a versao, 10g ou 11g). Tenho este[0] em mente. Podem opiniar sobre as configuracoes de hardware e qual distro utilizar? Sendo que, no momento, aquisição de licenças *altas* é um empecilho. [0] http://configure.la.dell.com/dellstore/config.aspx?oc=ent-bpt310eptc=brl=pts=bsdcs=brbsdt1model_id=poweredge-t310 Att, Tobias http://gnu.eti.br -BEGIN GEEK CODE BLOCK- Version: 3.1 GCS/CM/G/H/IT/L/SS d()? s++:() a--- C$ ULC++$ P++$ L+++$ !E !W++$++ !N o K-- !w() !O !M !V PS$@ PE@ !Y !PGP t++$ !5 !X R+$ tv? b++@ DI !D G++@ e$ h@ r--- y? --END GEEK CODE BLOCK-- [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Re: Partições na instalação linux para bd
Olá Eder, mesmo que você não tenha 1 único disco, crie as 5 partições (/u01 a /u05) pois caso o seu banco cresça e vc tenha que incluir um novo HD, basta criar a nova partição como /u02, etc e não precisa alterar nada no banco. Detalhe: essa sugestão só é válida para quem não vai usar LVM ou ASM. Se vc for usar essas tecnologias, aí eu já não sou a melhor pessoa para dar dicas. Boa Sorte, Josir. --- Em oracle_br@yahoogrupos.com.br, Fernando Franquini 'capin' fernando.franquini@... escreveu Eder, 1) Quantos discos tem? Se tem mais de 1 disco para dados, sugiro juntar e jogar tudo no ASM, senão deixa em um local só. 2) Respondida acima. 3) Depende pra que, se for para estudo, deixa a padrão, não faz tanta diferença. Se for para produção separe uma partição para um backup local, restante deixo padrão, ainda mais se usar ASM. 4) Isso está nos padrões de instalação, documentos oficiais. Att, capin 2011/7/12 ederfontes ederpaul@... Bom dia pessoal, Tenho dúvida de preparar um ambiente linux para oracle, principalmente na hora de realizar as partições. 1)Devo criar quantos u01, u02? pois vejo que alguns criam 2 3 4 5... 2)O Que cada um armazena? 3)Quais as principais partições que deve criar separadamente com uma quantidade maior de espaço? /tmp, /dev, boot/ 4)Outra dúvida é a respeito dos semáfaros e kernel, quais as alterações necessárias? preciso mesmo realizar alguma alteração nesses dois pontos levantados? -- 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 -- Fernando Franquini - Capin Bacharel em Ciencias da Computacao - UFSC Analista de Sistemas e de Banco de Dados / DBA Contatos: fernando.franquini@... / 48.9902.4047 Florianópolis - SC - Brasil http://franquini.wordpress.com/ http://franquini.wordpress.com/ http://br.linkedin.com/in/capin [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Re: Dúvida de modelagem sobre busca em campo esparso
Olá pessoal, Só para deixar documentado o resultado. Utilizei um índice b-tree normal, indexando apenas pelo campo em questão. Para avaliar rapidamente o espaço em disco, forçei o tamanho do índice com um STORAGE (INITIAL 64K NEXT 64K) e o índice só ocupou um bloco, ou seja, só incluiu no índice os registros cujo campo estava NOT NULL. Sobre a cardinalidade: é ALTA e o banco é OLTP. É um campo DATE e terá valores muito distintos. Por isso utilizei corretamente o b-tree. O usuário já populou o campo e rodei o planos com os SQLs que serão utilizados pela aplicação e o índice foi utilizado corretamente! Obrigado a todos pelas sugestões e insights. Josir. --- Em oracle_br@yahoogrupos.com.br, José Laurindo jlchiappa@... escreveu Sim, acho que ninguém discute que certamente uma pesquisa via índice por valores em cima duma coluna com uma cardinalidade tão baixa deve ser muito mais performática que table-scan na tabela toda , mesmo levando-se em conta I/O multiblock e quetais do table scan - o ponto só é que deve ser um índice não-composto, E a coluna tem que ser NULLable E as não-ocorrências de valor TEM que ter a coluna realmente nula (e não com zero ou qquer outro valor artificial) , tudo isso para que quando não esteja presente um valor a a coluna fique NULL e a linha não seja indexada, isso vai poupar mito espaço em disco, E pode ajudar muito em caso de index scan, se essa coluna não for UNIQUE... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Gerson Junior gerson.vasconcelos@ escreveu Com essa cardinalidade... índice acho que é a melhor opção. Todos de acordo? Ou temos uma terceira opção? Gerson S. de Vasconcelos Júnior OCA DBA - Oracle Certified Associate Fone: (81) 9816-0236 Msn: gerson.vasconcelos@ Skype: gersonvjunior http://www.diaadiaoracle.com.br/ Em 6 de julho de 2011 16:59, Josir josir@ escreveu: ** Olá pessoal, tenho uma tabela XYZ com milhares de registros e tenho que fazer uma busca em um campo que é preenchido em menos de 0,01% dos registros existentes. Qual a melhor estratégia em termos de performance/utilização de espaço em disco: - Criar um índice na tabela XYZ para este campo ? - Ou ter uma segunda tabela com os registros que contem valor no campo em questão ? - Alguem sugere uma terceira opção? Saudações a todos. Josir. [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Dúvida de modelagem sobre busca em campo esparso
Olá pessoal, tenho uma tabela XYZ com milhares de registros e tenho que fazer uma busca em um campo que é preenchido em menos de 0,01% dos registros existentes. Qual a melhor estratégia em termos de performance/utilização de espaço em disco: - Criar um índice na tabela XYZ para este campo ? - Ou ter uma segunda tabela com os registros que contem valor no campo em questão ? - Alguem sugere uma terceira opção? Saudações a todos. Josir.
[oracle_br] Re: [ Vídeo ] Não acho o xorg.conf no Unbreakable 6
Olá Tiago, 1) agora que eu reparei em um detalhe: O comando não é X -configure e sim: Xorg -configure Caso continue com erro, nos informe em qual comando deu o erro. 2) Se vc está usando uma máquina virtual com Virtual Box, não era para dar problema de resolução. Funciona 100% por cento. Verifique quanto vc alocou para a placa de vídeo. Se vc quer + resolução tem que colocar + memória para a VM. Boa Sorte, Josir. --- Em oracle_br@yahoogrupos.com.br, Tiago de Assis Pimenta tiagopimenta@... escreveu É senhores, nada feito. Tentei os comandos que o Josir passou e nada, deu o seguinte erro. ** (gdm-binary:2142): WARNING **: Failed to acquire org.gnome.DisplayManager ** (gdm-binary:2142): WARNING **: Could not acquire name; bailing out Se eu instalar o Adicionais de Convidados, ele acrescenta algumas resoluções, então deve haver algum lugar que essas resoluções ficam salvas, só não sei onde =\ [ ]s De: José Laurindo jlchiappa@... Para: oracle_br@yahoogrupos.com.br Enviadas: Terça-feira, 24 de Maio de 2011 8:18 Assunto: [oracle_br] Re: [ Vídeo ] Não acho o xorg.conf no Unbreakable 6 Faz todo o sentido, em cima da msg : Fatal server error: Cannot establish any listening sockets - Make sure an X server isn't already running vc parar o serviço antes, tal como o outro colega indicou, sim... É muitíssimo provável que seja isso... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Tiago de Assis Pimenta tiagopimenta@ escreveu Bom dia Josir, Como eu rodo o UOL 6 numa VM ( VirtualBox ) as configurações de resolução de video fica no máximo a 800x600, se eu quiser algo maior, eu tenho que instalar as adições de convidados, fazendo isso, ele me abre mais opções, mas nenhuma configuração para o note ( Wide ), no UOL 5 eu segui esse tuto e deu certinho ( http://pipeless.blogspot.com/2009/02/configurando-resolucao-do-ubuntu-no.html ), ficou com uma resolução que era satisfatório trabalhar nele. Não lembro qual é a minha placa de vídeo, mas é uma da intel, mas mesmo que ela seja suportada, se não me engano, por rodar a VM, acho que o modelo que eu tenho que escolher no linux não vai ser a placa de vídeo do meu note. Vou tentar seguir os seus passos e mais de noite eu responde se funcionou ou não, ontem de noite eu tentei criar o arquivo na mão com o VI e nada feito, travou a VM. Tentei rodar o Xorg -configure como o Chiappa tinha informado, mas também não deu certo, deu o seguinte erro: _XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed _XSERVTransMakeAllCOTSServerListeners: server already running Fatal server error: Cannot establish any listening sockets - Make sure an X server isn't already running Mas acho que com os seus passos pode ser que de certo, visto que vc para e depois starta o serviço. Abraços. De: Josir josir@ Para: oracle_br@yahoogrupos.com.br Enviadas: Terça-feira, 24 de Maio de 2011 7:05 Assunto: [oracle_br] Re: [ Vídeo ] Não acho o xorg.conf no Unbreakable 6 Olá Tiago, as perguntas iniciais são: porque vc quer criar o xorg.conf? A sua placa de vídeo não é suportada por esta versão? Qual é a sua placa de vídeo? Vc só precisa criar xorg.conf nestes casos, ok? Se for esse o caso, siga os passos para você configurá-lo: CTRL-ALT-F1, entre com o login/senha de root e digite: cd /etc/X11/ gdm stop X -configure altere o seu Xorg.conf gdm start Não sei como é esta distribuiçao mas geralmente o X -configure cria o arquivo sobre o diretório corrente. Boa Sorte, Josir. --- Em oracle_br@yahoogrupos.com.br, Tiago de Assis Pimenta tiagopimenta@ escreveu Ninguém galera ?? Abraços - Mensagem encaminhada - De: Tiago de Assis Pimenta tiagopimenta@ Para: oracle_br oracle_br@yahoogrupos.com.br Enviadas: Sexta-feira, 20 de Maio de 2011 10:41 Assunto: [ Vídeo ] Não acho o xorg.conf no Unbreakable 6 Pessoas, bom dia. Estou tentando configurar a resolução do Unbreakable 6, mas não consigo achar o arquivo xorg.conf que é responsável por essa configuração. No Unbreakable 5, ele esta na pasta /etc/X11/xorg.conf, agora no 6 non ecxist. Alguem já passou por isso, sabe qual é o arquivo agora responsável por salvar as alterações dos periféricos ( video, mouse e teclado ) ??? Abraços Ps.: O motivo da minha procura por esse arquivo, é que eu quero configurar a tela como WIDE para poder usar certinho na VM, dai eu tenho que entrar dentro desse arquivo e fazer a alteração na patinha. [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]
[oracle_br] Re: [ Vídeo ] Não acho o xorg.conf no Unbreakable 6
Olá Tiago, as perguntas iniciais são: porque vc quer criar o xorg.conf? A sua placa de vídeo não é suportada por esta versão? Qual é a sua placa de vídeo? Vc só precisa criar xorg.conf nestes casos, ok? Se for esse o caso, siga os passos para você configurá-lo: CTRL-ALT-F1, entre com o login/senha de root e digite: cd /etc/X11/ gdm stop X -configure altere o seu Xorg.conf gdm start Não sei como é esta distribuiçao mas geralmente o X -configure cria o arquivo sobre o diretório corrente. Boa Sorte, Josir. --- Em oracle_br@yahoogrupos.com.br, Tiago de Assis Pimenta tiagopimenta@... escreveu Ninguém galera ?? Abraços - Mensagem encaminhada - De: Tiago de Assis Pimenta tiagopimenta@... Para: oracle_br oracle_br@yahoogrupos.com.br Enviadas: Sexta-feira, 20 de Maio de 2011 10:41 Assunto: [ Vídeo ] Não acho o xorg.conf no Unbreakable 6 Pessoas, bom dia. Estou tentando configurar a resolução do Unbreakable 6, mas não consigo achar o arquivo xorg.conf que é responsável por essa configuração. No Unbreakable 5, ele esta na pasta /etc/X11/xorg.conf, agora no 6 non ecxist. Alguem já passou por isso, sabe qual é o arquivo agora responsável por salvar as alterações dos periféricos ( video, mouse e teclado ) ??? Abraços Ps.: O motivo da minha procura por esse arquivo, é que eu quero configurar a tela como WIDE para poder usar certinho na VM, dai eu tenho que entrar dentro desse arquivo e fazer a alteração na patinha. [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Re: ORA-27072: File I/O error
Só complementando o que chiappa falou. Sem dúvida, a probabilidade é maior do problema ser no HD. Se você está administrando um banco de uma empresa pequena e caso não tenha chance de contactar o fornecedor do hardware, simplesmente troque o HD! Em servidor low-end, os preços de HD ficam na faixa de R$500 a R$1.000 sai mais barato trocar o HD do que tentar descobrir o problema. Copie (ou se possível recrie) os dados da partição defeituosa (no seu caso /u02) e veja se o problema desaparece. Chiappa, vc não acha válido rodar fsck com a opção de marcar os bad blocks? Vc já teve experiência do fsck não funcionar? Saudações a todos! Josir. --- Em oracle_br@yahoogrupos.com.br, jlchiappa jlchia...@... escreveu A msg é clara, o banco não conseguiu fazer I/O nos arquivos em questão : tipicamente isso é falha de hardware, que tanto pode ser discos, quanto controladora, placa-mãe, cabos... Ou até mesmo (com poucas chances, mas pode ocorrer) memória defeituosa corrompendo a informação aí dá pau na hora de ler/gravar... Não tem conversa, é fazer um check PROFUNDO no seu hardware (e não vale rodar um chkdsk/fschk ou quetais!), se vc não tiver programas apropriados verificar com o seu fornecedor de hardware se ele disponibiliza, ou contactar uma Empresa especializada se não souber como proceder. Há também a chance de falha no software (tanto no próprio banco quanto no Sistema Operacional, como drivers por exemplo), mas como hardware é mais comum (e mais fácil de verificar!) te sugiro começar a verificação por ele. []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Dalton Pereira dalton@ escreveu Pessoal, Alguém sabe porque o erro abaixo aconteceu? Obs: resolvi o problema com o problema fazendo uma recuperação, mas tenho medo deste erro voltar a acontecer. S.O Linux gi-ora-03 2.6.9-42.ELsmp #1 SMP Wed Jul 12 23:27:17 EDT 2006 i686 i686 i386 GNU/Linux Oracle Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Prod Segue log de alerta Sun Aug 2 00:26:13 2009 Thread 1 cannot allocate new log, sequence 734 Private strand flush not complete Current log# 2 seq# 733 mem# 0: /u02/oradata/prod02/redo/redoB02.rdo Current log# 2 seq# 733 mem# 1: /u02/oradata/prod02/redo/redoA02.rdo Sun Aug 2 00:26:13 2009 Thread 1 advanced to log sequence 734 (LGWR switch) Current log# 4 seq# 734 mem# 0: /u02/oradata/prod02/redo/redoA04.rdo Current log# 4 seq# 734 mem# 1: /u02/oradata/prod02/redo/redoB04.rdo Sun Aug 2 00:51:06 2009 Thread 1 cannot allocate new log, sequence 735 Private strand flush not complete Current log# 4 seq# 734 mem# 0: /u02/oradata/prod02/redo/redoA04.rdo Current log# 4 seq# 734 mem# 1: /u02/oradata/prod02/redo/redoB04.rdo Sun Aug 2 00:51:08 2009 Thread 1 advanced to log sequence 735 (LGWR switch) Current log# 3 seq# 735 mem# 0: /u02/oradata/prod02/redo/redoA03.rdo Current log# 3 seq# 735 mem# 1: /u02/oradata/prod02/redo/redoB03.rdo Sun Aug 2 04:35:31 2009 Errors in file /u01/app/oracle/admin/prod02/bdump/prod02_lgwr_20790.trc: ORA-00345: redo log write error block 29819 count 2 ORA-00312: online log 3 thread 1: '/u02/oradata/prod02/redo/redoA03.rdo' ORA-27072: File I/O error Linux Error: 5: Input/output error Additional information: 4 Additional information: 29819 Additional information: -1 ORA-00345: redo log write error block 29819 count 2 ORA-00312: online log 3 thread 1: '/u02/oradata/prod02/redo/redoB03.rdo' ORA-27072: File I/O error Linux Error: 5: Input/output error Additional information: 4 Additional information: 29819 Additional information: -1 Sun Aug 2 04:35:40 2009 Errors in file /u01/app/oracle/admin/prod02/bdump/prod02_lgwr_20790.trc: ORA-00340: IO error processing online log 3 of thread 1 ORA-00345: redo log write error block 29819 count 2 ORA-00312: online log 3 thread 1: '/u02/oradata/prod02/redo/redoA03.rdo' ORA-27072: File I/O error Linux Error: 5: Input/output error Additional information: 4 Additional information: 29819 Additional information: -1 ORA-00345: redo log write error block 29819 count 2 ORA-00312: online log 3 thread 1: '/u02/oradata/prod02/redo/redoB03.rdo' ORA-27072: File I/O error Linux Error: 5: Input/output error Additional information: 4 Additional information: 29819 Additional information: -1 Sun Aug 2 04:35:40 2009 LGWR: terminating instance due to error 340 Instance terminated by LGWR, pid = 20790 Atenciosamente, Dalton A Informação Confidencial deverá ser utilizada única e exclusivamente no âmbito da relação com a Glauco Informática e não poderá ser repassada, reproduzida de qualquer outra forma, e nem revelada a terceiros. La información confidencial se utilizará única y exclusivamente en relación con Glauco Informática, y no se puede pasar, reproduce en modo alguno, ni revelada
[oracle_br] Re: Linux e Oracle - Ubuntu
Olá Carlos, se vc não tem muita experiência com Linux, a melhor opção é instalar o Oracle XE no Ubuntu. A instalação é MUITO mais fácil que qualquer outra distribuição que eu conheço. http://www.vivaolinux.com.br/dicas/verDica.php?codigo=8536 http://www.oracle.com/technology/tech/linux/install/xe-on-kubuntu.html Boa Sorte, Josir. --- Em oracle_br@yahoogrupos.com.br, chsistemas2 [EMAIL PROTECTED] escreveu Bom dia pessoal . Gostaria de instalar uma versão de linux para trabalhar com Oracle. Alguém poderia me ajudar . Já tenho curso do oracle 9i, mas gostaria de atualizar meus conhecimentos. Qual a melhor distribuição Linux para o Oralce 9 ou 10 ? Atenciosamente, Carlos Henrique Analista de Sistemas
[oracle_br] Re: Essa é pra quem PERDEU ou NAO TEM a senha do SYS e SYSTEM - CUIDADO
Olá Anderson, Ao invés de ficar transtornado, vc podia aproveitar a dica e dar uma revisada no seu site. Talvez, vc nem saiba que o seu site está hackeado ou talvez seja apenas um cookie mal programado. Eu não odeio a Microsoft, nem amo o Linux porque eu sou um profissional com mais de 20 anos de mercado e a fase de ficar apaixonado por uma tecnologia já passou a muito tempo. Eu só uso o Firefox porque ele é mais seguro e me avise de problemas como esse que o seu site está tendo. Só enviei email para avisar aos usuários da lista para eles não se infectarem também. Mas eu não vou entrar em um bate-boca com vc sobre segurança porque aqui não é fórum apropriado. E, além disso, não vou perder o meu tempo para te explicar onde está o seu problema. Boa Sorte, Josir Gomes, M.Sc. Professor da FGV/RJ Moderador das listas delphi-br e java-br --- Em oracle_br@yahoogrupos.com.br, Anderson [EMAIL PROTECTED] escreveu Josir, eu uso o IE e não tenho problema nenhum com o site que estou fazendo, cujo o objetivo é apenas ajudar outros usuários. Também sou preocupado com segurança, uso antivirus firewall e o caramba no meu computador e garanto a todos que nao tem virus nem nada que instale ou chupinhe algo em seu computador. Firefox, nem uso amigo, uso o que a maioria usa e pronto. Conheço um monte de cara como você, deve usar linux e odiar a microsoft. Eu sou assim, sou DBA e instalo Oracle até em Mac, se a Oracle criar. O que importa é ganhar o salário digno. E te lanço um desafio, se conseguir provar que tem algum virus ou malware no site eu tiro ele do ar. --- Em oracle_br@yahoogrupos.com.br, Anderson Haertel Rodrigues anderson_hr_listas@ escreveu Conecte-se com oracle normalmente o owner do banco e digite: sqlplus / as sysdba já estará dentro do sqlplus com sys, depois: alter user sys identified by 'novasenha'; alter user system identified by 'novasenha'; Sucesso, Anderson --- Josir Gomes josir@ escreveu: Acho que vale a informação para quem quer se aventurar neste site. O site abaixo utiliza alguns scripts em Javascript que tentam acessar os cookies e explorar falhas no seu navegador. Assim se vc utiliza IE não atualizado, não acesse o site de forma alguma pois ele irá chupar todas as informações do browser (inclusive senhas armazenadas). Tente por exemplo acessar o site com o Firefox para ver a mensagem que ele informa sobre o site. Enfim, muito cuidado... Saudações, Josir Gomes --- Em oracle_br@yahoogrupos.com.br, Anderson anderson_santiago@ escreveu Galera, sei que tem DBA que vai querer me matar, mas um passo a passo.. Como mudar as senhas do sys e system se ter nenhuma das duas. www.ruevers.webs.com/senhas.htm _ Anderson DBA Sr. http://www.ruevers.webs.com O ENPO-BR 2008 (O maior evento de Profissionais de Oracle do Brasil!) será realizado no dia 29 de Março no auditório da FIAP - Faculdade de Administração e Informática Paulista em São Paulo. E tem total apoio deste Grupo. Veja mais em http://www.enpo-br.org/ -- 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/ -- O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/ Links do Yahoo! Grupos Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! http://br.mail.yahoo.com/
[oracle_br] Re: Essa é pra quem PERDEU ou NAO TEM a senha do SYS e SYSTEM - CUIDADO
Acho que vale a informação para quem quer se aventurar neste site. O site abaixo utiliza alguns scripts em Javascript que tentam acessar os cookies e explorar falhas no seu navegador. Assim se vc utiliza IE não atualizado, não acesse o site de forma alguma pois ele irá chupar todas as informações do browser (inclusive senhas armazenadas). Tente por exemplo acessar o site com o Firefox para ver a mensagem que ele informa sobre o site. Enfim, muito cuidado... Saudações, Josir Gomes --- Em oracle_br@yahoogrupos.com.br, Anderson [EMAIL PROTECTED] escreveu Galera, sei que tem DBA que vai querer me matar, mas um passo a passo.. Como mudar as senhas do sys e system se ter nenhuma das duas. www.ruevers.webs.com/senhas.htm _ Anderson DBA Sr. http://www.ruevers.webs.com
[oracle_br] Re: XML e Web Services
Olá diogenes, eu não uso o TISS/ANS mas tenho interesse em utilizar Web Services em PL/SQL - se possível, envie para a lista a formula que vc adotou. Obrigado, Josir. --- Em oracle_br@yahoogrupos.com.br, Diogenes Vitali [EMAIL PROTECTED] escreveu Sim, exatamente! É para o TISS da ANS! Voce conseguiu implementar em ORACLE - PL/SQL? Em 11/02/08, Rafael Martins [EMAIL PROTECTED] escreveu: Olá amigo. Trabalho com algo semelhante. Por acaso essa sua solução seria para o TISS da ANS ?? Trabalho com ele. Em 10/02/08, diogenesvit [EMAIL PROTECTED]diogenesvit%40hotmail.com escreveu: Bom dia amigos! Sou novo ao grupo e venho com uma duvida que tem me intrigado a algum tempo! Tenho a seguinte situação! 1ª Parte -- Preciso gerar um arquivo XML em um schema pré-determinado com os dados que tenho em minha base relacional! Nao consigo gerar esse arquivo diretamente com os dados de uma só consulta, como vi vários exemplos na internet (de gerar XML em uma consulta) A estrutura dela é bem complexa e meio independente portando preciso de varios selects separados para pegar o valores e atribuir aos nós do XML e ir montando o XML na sequencia do bloco de código! Eu vi alguns exemplos com o DBMS_XML, mas todos pareciam bem confusos! Li tambem a documentacao e achei ainda muito confuso! Criar nó a nó nao deixa o codigo flexivel para uma possivel alteracao do schema! Gostaria de saber a melhor maneira de fazer o XML dado a minha situação, schemas que podem mudar a versao e os dados reais estarem em um banco de dados relacional! 2ª Parte -- A partir do momento que um usuário fizer determinada ação no meu sistema tenho que gerar o XML e mandar via webservices para requisitar a autorização! A unica coisa que vi de web services no oracle foi o SOA Suite, é esta ferramenta que preciso utilizar para fazer essa implementação? É possivel essa integração sem o uso direto da linguagem JAVA? Gostaria que pudessem me ajudar! Dar uma luz e me indicar por favor o caminho das pedras! Rss Desde já agradeço, -- -- Rafael Martins Programador Java http://rafaelmartinsjava.blogspot.com 71-81893456 As pessoas que vencem nessa vida são aquelas que procuram as circunstâncias de que precisam e quando não as encontram, as criam [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
RES: [oracle_br] Tabela Mutante!
Olá pessoal, deixa eu deixar os meus 2 centavos na discussão: na GRANDE maioria das vezes que eu vi situações de mutating era uma falha na modelagem. Faça uma revisão na modelagem desta estrutura e veja se ela está nas formas normais, etc. Porque ao se alterar um registro, vc tem setar outros para nulo ?? Não conheço o seu modelo, estou apenas abrindo as possibilidades... Assumindo que o seu modelo está correto ou caso vc não tenha permissão ou não possa alterar o modelo: 1) Solução PRAGMA AUTONOMOUS_TRANSACTION na trigger Eu acho esta solução uma aberração e deveria ser banida do Oracle!!! :) Primeiro porque eu colocar COMMIT em uma trigger ou até mesmo em uma procedure/package é um tiro no pé. Só se deve colocar COMMIT no front-end ou em casos batch na rotina mais externa. Qualquer outra opção fora disso, é problema certo a longo prazo. No caso específico da sua trigger, imagine a situação: vc dá o update e chama a transação autonoma que seta nulo os campos. Mais a frente, o usuário dá rollback ou acontece um outro erro. Qual o resultado: os atributos ficaram com nulo e o resto dos registros envolvidos voltaram a posição inicial... A sua modelagem irá aceitar isso?? 2) Solução aceitável: - Crie uma tabela temporária CP_TEMP que conterá os registros que vc terá que alterar - Na trigger, apenas insira os registros que comandarão o SET NULL INSERT INTO CP_TEMP VALUES ( :NEW.cd_lancam, :NEW.nr_anolot, :NEW.cd_lote ); - Crie uma trigger AFTER STATEMENT que irá chamar a procedure MarcaNulo() - A procedure MarcaNulo() irá consultar a tabela e remover os registros desejados: begin for c1 in (SELECT * FROM CP_TEMP) loop UPDATE Cpbaidup SET Set cd_lancam = Null, nr_anolot = Null, cd_lote = null Where cd_lancam = c1.cd_lancam And nr_anolot = c1.nr_anolot And cd_lote = c1.cd_lote; end loop; end; O AFTER STATEMENT também poderá dar erro de mutating caso os registros alterados sejam os mesmos que vc acabou de alterar. Neste caso, vc terá que usar JOBS mas aí a solução é mais complexa Se não funcionar me fale. Boa Sorte, Josir. [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Re: Validação de XML x Schema
Olá André, vc poderia me indicar as instruções de como instalar o XML_DB ? Ou então me indicar um link de onde vc aprendeu como fazer? Nos links que eu googlei, nenhum foi muito didático... Obrigado, Josir Gomes --- Em oracle_br@yahoogrupos.com.br, André Castro [EMAIL PROTECTED] escreveu Bom dia! Estive pesquisando no arquivo de mensagens do grupo, mas não encontrei algo que pudesse me ajudar com uma dúvida. Fora toda a pesquisa na web, que não resultou em nada muito esclarecedor. A situação é: Devo receber centenas de arquivos XML com dados a serem importados para uma base. Preciso validar esses XML, de acordo com as definições descridas em um XSD. Instalei o XML_DB, criei a estrutura de diretórios (física e virtual), tenho inclusive o arquivo XSD registrado junto ao schema. Ocorre que agora não sei como o banco faz essa validação. Pelo que entendi, e me corrijam se eu estiver errado, uma vez registrada para um XSD, determinado schema só aceita os XML naquele formato. Porém, quando eu uso a CreateResource, por exemplo com um XML inválido, ele é inserido no diretório virtual e nenhuma mensagem de erro é exibida. Vi também que essa validação poderia ser feita por FTP, e que ao tentar dar o upload de um XML fora do formato especificado, o mesmo seria bloqueado para entrar na base. Enfim, se alguém no grupo já fez esse tipo de validação, seja por PL/SQL ou FTP, as duas soluções me servem e agradeço, de ante-mão, qualquer ajuda. Tudo isso acontece em um Oracle 10g em cima de SuSE 9.3. Forte abraço! []'s André Castro [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Limitando as portas do listener / acesso externo
Olá pessoal, eu já tinha postado essa dúvida a uns 3 anos atrás mas nunca consegui uma solução. Estou tentando acessar um Oracle 10g (c/Fedora 4) através da Internet. Entretanto, não dá para configurar o firewall pois a cada instante o Listener responde através de uma porta diferente. Eu sei que no NT/Win2000 tem o USE_SHARED_SOCKET mas no Linux, eu faço como?? Tem algum comando, software, parâmetro, ou algo do gênero que fixe quais as portas que o Listener irá utilizar? Saudações a todos, Josir.
Re: RES: RES: RES: [oracle_br] Conceder permissao a todos objetod de
Oi Chiappa, agora eu peguei o seu raciocínio - a forma de implementar isso dependeria de inúmeras parafernálias tipo SQL dinâmico. Sobre a queda de performance de SQLs dinâmicos, eu nem preciso ir no Asktom. Eu já fiz muitos testes e comprovo o que vc diz em número, genero e grau. Mas siga o meu raciocínio e cenário. GRANT SELECT tabela TO role Quando vc dá GRANT role TO USER usuario, o acesso a tabela pelo usuário é automático, correto? Vc não precisa ter SQL dinâmicos ou qq outra parafernália para que o usuário passe a enxergar a tabela. Porque não existir o mesmo automatismo para um GRANT SELECT ON ANY TABLE to role? Repare que no meu caso hipotético, o usuário só irá consultar as tabelas: imagine, por exemplo, um Dataware House. Em ambientes muito dinâmicos, o processo de criação de tabelas é constante e muitas vezes não existe um AD só para ficar controlando isso. Se houvesse algo automático, vc teria uma tarefa a menos para dar a ele. Isso me lembra uma visita em uma empresa em que o prazo para criar um campo em uma tabela era de 1 mês Quando chegamos e começamos a criar uma tabela por dia (com seus respectivas telas de manutenção), o usuário pirou e passou a nos amar eternamente :))) Antes que me crucifixem por estas afirmações, recomendo a todos o livro Refactoring Database do Scott Ambler (o das metodologias ágeis) http://www.agiledata.org/essays/databaseRefactoring.html Sobre o Metalink: esse é um tema polêmico!!! Eu até teria verba para comprar mas não concordo com os termos da Oracle. É uma questão de principio. Se vc compra um produto Oracle, vc deveria ter automaticamente acesso ao Metalink sem ter que pagar a mais por isso. Até a Microsoft e a Apple que são os piores casos de desrespeito ao consumidor tem seus equivalentes de Metalink abertos para quem compra os produtos deles. Por isso, eu pago R$10mil a um consultor mas não pago R$3mil pelo Metalink. Um abraço, Josir. O porquê de não ser a melhor opção, em primeiro lugar é por que pra implementar isso vc VAI TER QUE, como eu disse, criar triggers/jobs que criem SQLs dinâmicos com DDL, e há imposto de performance se houver abuso tanto para SQL dinâmico (parses extras) quanto para DDLs [As partes desta mensagem que não continham texto foram removidas]
Re: RES: RES: RES: [oracle_br] Conceder permissao a todos objetod de
Chiappa, me interessei pelo post :) 1) Vc podia dissertar sobre o porque não se deve administrar a segurança dessa forma. Se um grupo de usuários tiver sempre direito a SELECT em uma base, porque não utilizar o fictício: GRANT SELECT ON [schema] to [role] Acho que isso tá mais para uma limitação do Oracle (facilmente contornável, eu sei, mas ainda assim uma limitação). 2) Como eu não tenho acesso ao Metalink, vc poderia falar mais sobre esse artigo How to Automate Grant Operations When New Objects Are Created in a SCHEMA/DATABASE ? Um abraço, Josir. - Não, não tem GRANTs a nível de schema, não é assim que se deve administrar segurança num bd Oracle. Porém, apenas para complementar, o que ele em tese ** PODE ** sim fazer pra obter um automatismo do tipo, se for o caso, poderia ser: a) ter uma TRIGGER que após o DDL de criação do objeto faz o GRANT (como triggers de DDL tem restrições à SQL dinâmico, usar uma tabela de jobs cfrme mostrado na nota 210693.1 How to Automate Grant Operations When New Objects Are Created in a SCHEMA/DATABASE do Suporte Oracle/metalink
[oracle_br] Como corrigir um datafile corrompido?
Olá pessoal, tenho um banco de teste que corrompeu um datafile no File system. Eu tentei recover automatic; mas deu o mesmo erro. Como é undotbls tablespace, ou seja, não tem dados, qual seria o procedimento correto para apagá-la e criá-la de novo? Saudações a todos, Josir. SQL alter database open; alter database open * ERROR at line 1: ORA-01115: IO error reading block from file 2 (block # 73) ORA-01110: data file 2: '/u01/app/oracle/oradata/orcl/undotbs01.dbf' ORA-27072: File I/O error Linux Error: 5: Input/output error Additional information: 4 Additional information: 73 Additional information: -1 SQL recover automatic; ORA-00283: recovery session canceled due to errors ORA-01115: IO error reading block from file 2 (block # 73) ORA-01110: data file 2: '/u01/app/oracle/oradata/orcl/undotbs01.dbf' ORA-27072: File I/O error Linux Error: 5: Input/output error Additional information: 4 Additional information: 73 Additional information: -1
[oracle_br] Re: Como corrigir um datafile corrompido?
Obrigado pelo reply. Entretanto, essa solução não funciona pois eu não consigo dar CREATE ou DROP TABLESPACE já que não consigo abrir o banco (veja abaixo que eu não consigo dar OPEN). Acredito que tenha que ser algum comando para dropar o datafile ou algo do gênero. Se alguem soube como, fico agradecido. Josir. --- Em oracle_br@yahoogrupos.com.br, Zumba [EMAIL PROTECTED] escreveu Olá Josir, eu tenho um procedimento aqui que peguei do metalink uma vez: --Create a new UNDO tablespace (UNDOTBS2) and bring it online --no database users logged in to the database. --ALTER SYSTEM SET UNDO_TABLESPACE = UNDOTBS2; (new UNDO tablespace) --DROP TABLESPACE UNDOTBS (first and original undo tablspace) --Edit the init file and change undo_tablespace=UNDOTBS2 --Stop and restart the database --delete the datafile for the original undo tablepsace from the OS. Espero ter ajudado. Abrax --- Josir Gomes [EMAIL PROTECTED] escreveu: Olá pessoal, tenho um banco de teste que corrompeu um datafile no File system. Eu tentei recover automatic; mas deu o mesmo erro. Como é undotbls tablespace, ou seja, não tem dados, qual seria o procedimento correto para apagá-la e criá-la de novo? Saudações a todos, Josir. SQL alter database open; alter database open * ERROR at line 1: ORA-01115: IO error reading block from file 2 (block # 73) ORA-01110: data file 2: '/u01/app/oracle/oradata/orcl/undotbs01.dbf' ORA-27072: File I/O error Linux Error: 5: Input/output error Additional information: 4 Additional information: 73 Additional information: -1 SQL recover automatic; ORA-00283: recovery session canceled due to errors ORA-01115: IO error reading block from file 2 (block # 73) ORA-01110: data file 2: '/u01/app/oracle/oradata/orcl/undotbs01.dbf' ORA-27072: File I/O error Linux Error: 5: Input/output error Additional information: 4 Additional information: 73 Additional information: -1
[oracle_br] Res:Re: Oracle XE Pode ser usado Comercialmente???
Olá Gabriel, concordo com o Chiappa, vc tem que rodar primeiro a sua aplicação nele e fazer testes de stress com ele. Estável eu posso garantir que ele é. Eu uso OracleXE em um servidor com AMD 2Ghz e 1Gb RAM com 40 sessões simultaneas e o bicho roda que é uma beleza. É muito rápido e até agora não tive nenhum problema. O único problema é a limitação de 4Gb que realmente é muito pouco. Entretanto a minha aplicação é bem azeitada, ou seja, ela está sendo burilada a 5 anos e tem pouquíssimos problemas de performance (tabelas e foreign key sem índices, etc). Assim, se você pega uma aplicação que roda um SELECT * FROM TABELA com 5 milhoes de registros aí vc vai dançar (acho que, com esse meu exemplo, vc vai dançar até mesmo no Enterprise :) Minha sugestão: instale e experimente ! Boa Sorte, Josir. Enviado por: jlchiappa [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] jlchiappa http://profiles.yahoo.com/jlchiappa Quanto ao uso SIM, se vc consultar a FAQ e os papers em http://www.oracle.com/technology/products/database/xe/index.html http://www.oracle.com/technology/products/database/xe/index.html (página-mãe do sujeito) lá é citado sim que vc pode fazer o que quiser , estudo, produção, o que quiser, por quanto tempo quiser, com o database XE. Quanto à recomendação, eu diria que ele serve só mesmo pra sistemas realmente pequenos e triviais, quando se chega ao médio porte já há preocupações, não só pelo montão de features importantes que ele não te dá (na home-page elas são citadas) quanto pelas sérias limitações (ie, limite máximo de 4 gb de dados, 1 Gb de RAM e só usa um processador) , hoje em dia qquer servidor mais sério tem mais que isso e qquer aplicação acima do rotineiro/desktop manipula mais que isso... Afinal, hoje se vc for na Santa Efi o menor HD novo que vc vai achar é de 80 Gb, vc falar pro usuário que ele tem 80 Gb mas só vai poder enfiar 4 Gb de dados é de doer Então CONHEÇA e ANALISE DIREITINHO essas limitações antes de usar esse cara, ok ?? --- Em oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br, Gabriel Herdt [EMAIL PROTECTED] escreveu Pessoal Gostaria de saber se Posso Desenvolver aplicações basiados e oracleXE e comercializar? Ou se ele é só para fins de Estudo ou Testes. E se vocês recomendam o oracle xe? Sim São aplicações de pequeno/medio porte. Tem Como eu fazer instalçãodo OracleXE(BD) silicosamente passar parametros? Tipo Utilizar um: NSIS ou Setup2go da vida? Para que o cliente instale o sistema sozinho? [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] RE: DUVIDA - Update em LOTE
Olá agpcardoso, pelo que eu entendi, a tabela 1 tem poucos registros enquanto a tabela 3 tem muitos, correto? UPDATE TAB3 SET TAB3.DSC = (SELECT DSC FROM TAB1 WHERE TAB1.ID = TAB3.ID) WHERE TAB3.ID in (SELET ID FROM TAB1); ou uma solução mais trabalhosa mas acredito que seja mais rápida (?) begin for c1 in (SELECT ID, DSC FROM TAB1) loop update TAB3 set DSC = c1.DSC where ID = c1.ID; end loop; end; Boa Sorte, Josir. --- Estou alterando uma rotina de carga onde preciso fazer um update em 1 campo da tabela 3 de acordo c/ os dados q tiverem na tabela 1. Na rotina ORIGINAL para cada registro da tabela 3 está sendo feito um select na tabela 1 e atualizando a tabela 3 de acordo com o q vier na tabela 1, porém devido a quantidade grande de registros existentes nas 2 tabelas, essa rotina está MUITO LENTA. NO SQL SERVER eu resolveria esse problema utilizando a query descrita abaixo, porem no Oracle essa query não funciona. Alguém saberia me dizer como posso fazer no oracle a mesma coisa q a query abaixo faz no sql server??? Obrigado. QUERY ## UPDATE TAB3 SET TAB3.DSC = TAB1.DSC FROM TAB1, TAB3 WHERE TAB1.ID = TAB3.ID [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Re: Reflexões sobre a política de p reços da Oracle
Olá Chiapa. Josir, primeiro de tudo lembre que há as EDIÇõES do banco Oracle - a Enterprise (que é a Oracle, é completinha, que efetivamente possui as features que fazem do bd Oracle o bd Oracle), a Personal (que só não tem Replicação e correlatos, mas o resto tem, perfeita portanto para soft-houses e pessoal que vai gerar aplicativo), e as mais No nosso caso, a Standard é mais do que suficiente para as nossas necessidades. O QUERY_REWRITE (que não tem no Standard) até seria útil mas não é fundamental... área Assim, se é principalmente patches que te preocupam, vc TRANQUILAMENTE poderia ter um contrato de Suporte apenas, para o produto Oracle mais barato (digamos, um Standard One, ou mesmo um produto não-bd como o Oracle Collaboration Suite), e com esse acesso vc baixa QUAISQUER patches, lista de bugs e notas de QUAISQUER outros produtos...Isso NÂO É algo que vc vê muito frequentemente pelaí... Eu acredito que não se vê muito isso pois as empresas que antes compraram Oracle, não têm que enxugar o orçamento pois o investimento de R$50.000 (supondo 100 usuários) é porcaria para uma grande empresa. Entretanto, como as pequenas empresas estão começando a utilizar Oracle, a questão de preço começa a ficar evidente. Em tese, sim, a estratégia que vc propõe funcionaria, e está prevista pela licença (já que o XE vc pode fazer o que quiser com ele,com dados reais inclusive, e que o Standard não tem restrições a conectar com XE), obviamente isso IMPLICARIA em : a. RISCOS não pequenos : já que o XE não tem suporte algum, se ele ir pro beleléu amanhã, ou se vc cair num bug feroz dele, vc estria TOTAL e COMPLETAMENTE por sua conta, com produção parada, etc Sabe Chiappa, em 10 anos usando Oracle, eu já perdi o banco apenas 4 vezes. Todas as vezes, foram problemas de hardware, nunca do Oracle. Sempre que tive um ORA-600, consegui contornar recriando o banco ou realizando outras artimanhas. Dessas 4 vezes, em apenas uma ocasião, eu perdi dados de produção que foram recuperados em apenas 2h (com 2 pessoas trabalhando). E isso utilizando apenas formas de backup primárias (com IMPORT e EXPORT). Ainda não tive tempo de aprender como usar o ARCHIVELOG. Atualmente, utilizando virtualização, eu coloco uma instância do SO com Oracle no ar em 10 minutos e gasto +20 minutos para recuperar o backup. Assim, na pior das hipóteses (quando o SYSTEM vai para o espaço), eu recupero tudo zero em 30 minutos. Com certeza, a forma com que as minhas aplicações funcionam e a quantidade de usuários, facilitam a recuperação de dados e entendo que outros tipos de aplicações não tem facilidades implícitas no meu tipo de negócio e por isso o DBA tem que ser mais precavido. Enfim, o ponto em que quero chegar é que o Oracle, como software, é muito estável e o risco é bem pequeno. Já estou utilizando o XE desde o seu lançamento e ele tem apresentado a mesma robustez da versão Standard. A Enterprise eu não posso falar pois só a usei como programador e nunca como DBA (se é que posso me considerar um). b. custos de administração : ie, vc teria MAIS coisas a administrar/monitorar, teria MAIS processos (os de integração aí no caso) a controlar/verificar, os dados provavelmente NÂO ESTARIAM real- time no banco final Com certeza teremos um custo de administração mas já fizemos as contas: sai mais barato que comprar todas as licenças. Existia até uma 3a opção de continuar apenas com o XE mas aí o custo de administração sairia mais caro. E finalmente, em outra msg outro colega falou sobre a esperança dele de que os avanços dos outros bancos de dados (principalmente os freewares) influencie a política da Oracle : eu digo, todos nós esperamos que coisas do tipo aconteçam, MAS não vou prender a respiração por isso, em se analisando a situação da tecnologia Concordo que os bancos opensource ainda estarão bem longe do Oracle por um bom tempo. Principalmente, na parte da programação server-side que não tem igual em nenhum banco. Entretanto, é uma boa opção para pequenas/médias empresas. Obrigado pelo reply! Suas considerações sempre abrem a mente para boas idéias! Boa semana para todos. Josir.
Re: [oracle_br] URGENTE - data block corrupted
Obrigado pelo reply Igor. Eu não estou usando o RMAN nesse servidor - eu só usava IMPORT/EXPORT pois ele funcionou por 5 anos sem dar nenhum pau ... Era muito estável. Dava umas travadas de vez de 2 em 2 dias mas quando voltava, ele se auto recuperava O problema era que eu não conseguia nem fazer um EXPORT. Qual foi a solução ? 1) Copiei todos os registro visíveis do SEQ$ para uma outra tabela (utilizando SELECT * FROM SEQ$ WHERE ROWNUM 95) 2) Dei um RENAME na tabela SEQ$ 3) Recriei ela. 4) Trouxe os dados de volta e tentei dar um drop em uma das sequences. Não funcionou: deu ORA-600 5) Fiz um OUTER JOIN com o OBJ$ para ver quais as sequences que tinham se perdido. Inseri os registros na SEQ$ 6) Também não funcionou - deu ORA-600 Mas, pelo menos, quando eu recriei a SEQ$, eu consegui fazer o EXPORT das bases de dados. Exportei os dados para outro servidor e vou reformatar a máquina com um Oracle XE. Nessa brincadeira fiquei até as 2 da manhã para deixar o banco pronto para os usuários... Saudações a todos e bom fim de semana! Voce utiliza RMAM como backup?se sim com o RMAM você pode voltar backup a nível de block. Em 17/05/07, Josir Gomes [EMAIL PROTECTED] mailto:josir%40jsk.com.br escreveu: Olá pessoal, venho pedir auxílio novamente a lista para um novo problema no meu banco de dados: ORA-01578: ORACLE data block corrupted (file # 1, block # 8714) ORA-01110: data file 1: '/u01/app/oracle/oradata/msystems/system01.dbf' Como tentei resolver: primeiro eu fui achar qual o data block: SELECT SEGMENT_TYPE,OWNER||'.'||SEGMENT_NAME FROM DBA_EXTENTS WHERE 1 = FILE_ID AND 8714 BETWEEN BLOCK_ID AND BLOCK_ID+BLOCKS -1; Foi na tabela de SEQUENCE SYS.SEQ$ SELECT data_object_id FROM dba_objects WHERE object_name = 'SEQ$' AND owner = 'SYS'; Tentei consertar a tabela - geralmente isso funciona mas dessa vez não funcionou... begin dbms_repair.admin_tables( table_name = 'REPAIR_TABLE', table_type = dbms_repair.repair_table, action = dbms_repair.create_action, tablespace = 'USER3' ); end; declare contador pls_integer; begin SYS.DBMS_REPAIR.CHECK_OBJECT( SCHEMA_NAME = 'SYS',OBJECT_NAME = 'SEQ$', REPAIR_TABLE_NAME = 'REPAIR_TABLE', CORRUPT_COUNT = contador ); dbms_output.put_line('Value of ='||TO_CHAR(contador)); end; Tentei também sem sucesso declare contador pls_integer; begin DBMS_REPAIR.FIX_CORRUPT_BLOCKS( 'SYS','SEQ$', NULL,1, 'REPAIR_TABLE', NULL,contador); dbms_output.put_line('Value of ='||TO_CHAR(contador)); end; Enfim, novamente estou com o banco parado! Qualquer ajuda será de grande valia. Josir Gomes [As partes desta mensagem que não continham texto foram removidas] -- [ ]'s Igor Laguardia [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] URGENTE - data block corrupted
Olá pessoal, venho pedir auxílio novamente a lista para um novo problema no meu banco de dados: ORA-01578: ORACLE data block corrupted (file # 1, block # 8714) ORA-01110: data file 1: '/u01/app/oracle/oradata/msystems/system01.dbf' Como tentei resolver: primeiro eu fui achar qual o data block: SELECT SEGMENT_TYPE,OWNER||'.'||SEGMENT_NAME FROM DBA_EXTENTS WHERE 1 = FILE_ID AND 8714 BETWEEN BLOCK_ID AND BLOCK_ID+BLOCKS -1; Foi na tabela de SEQUENCE SYS.SEQ$ SELECT data_object_id FROM dba_objects WHERE object_name = 'SEQ$' AND owner = 'SYS'; Tentei consertar a tabela - geralmente isso funciona mas dessa vez não funcionou... begin dbms_repair.admin_tables( table_name = 'REPAIR_TABLE', table_type = dbms_repair.repair_table, action = dbms_repair.create_action, tablespace = 'USER3' ); end; declare contador pls_integer; begin SYS.DBMS_REPAIR.CHECK_OBJECT( SCHEMA_NAME = 'SYS',OBJECT_NAME = 'SEQ$', REPAIR_TABLE_NAME = 'REPAIR_TABLE',CORRUPT_COUNT = contador ); dbms_output.put_line('Value of ='||TO_CHAR(contador)); end; Tentei também sem sucesso declare contador pls_integer; begin DBMS_REPAIR.FIX_CORRUPT_BLOCKS( 'SYS','SEQ$', NULL,1, 'REPAIR_TABLE', NULL,contador); dbms_output.put_line('Value of ='||TO_CHAR(contador)); end; Enfim, novamente estou com o banco parado! Qualquer ajuda será de grande valia. Josir Gomes [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] RE: URGENTE - Banco parado... RESOLVIDO
Olá pessoal, estou enviando essa só para ficar registrada a resolução do problema. O Erro: alter database open; ORA-00354: corrupt redo log block header ORA-00353: log corruption near block 408 change 88526508 time ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/msystems/redo02.log' Solução: 1) SHUTDOWN IMMEDIATE; 2) Alterar o parâmetro _allow_resetlogs_corruption=TRUE no init.ora (no meu caso que é oracle8i) 3) STARTUP NOMOUNT; 4) RECOVER DATABASE UNTIL CANCEL; Vai dar erro porque o redo está bichado - escolha a opção CANCEL 5) alter database open resetlogs; A solução está melhor detalhada em: http://www.eygle.com/archives/2005/10/oracle_hidden_allow_resetlogs_corruption.html Saudações a todos, Josir. [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] REDO corrompido - banco parado... complementando
Olá pessoal, complementando, antes de dar alter database open resetlogs; recover database until cancel; Só então eu dei alter database open resetlogs; E deu erro: ORA-01194: file 1 needs more recovery to be consistent ORA-01110: data file 1: '/u01/app/oracle/oradata/msystems/system01.dbf' Tem jeito ainda de recuperar o banco?? Para completar, o último backup está corrompido... Só tenho intacto os dumps dos schemas. Se alguem puder ajudar, ficarei imensamente grato Josir. [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] RE: Banco Remoto e Constraints - Materialized Views
Olá Reginaldo, obrigado pelo reply. Essa idéia de Materialized View não é má... Eu tentei seguir por ela mas esbarrei nos seguintes problemas: CREATE MATERIALIZED VIEW MST_PROGRAMA ENABLE QUERY REWRITE AS SELECT * FROM [EMAIL PROTECTED]; Dá que ORA-00439: feature not enabled: Materialized view rewrite Dando uma pesquisada na Net, eu vi que não dá para fazer isso com o Oracle Standard http://www.oracle.com/database/product_editions.html Daí eu tentei algo mais simples: CREATE MATERIALIZED VIEW MST_PROGRAMA AS SELECT * FROM [EMAIL PROTECTED]; Quando eu tento fazer isso, dá ORA-03113: end-of-file on communication channel Não sei se isso ocorre porque o chamador é 10g e a master table está em um 8i.. Por fim, o que funcionou: -- logado como SYS no bd MEDIASYS3: create materialized view log on PROGRAMA; -- logado como cliente create materialized view MASTER_PROGRAMA build immediate refresh on demand with primary key as (select * from [EMAIL PROTECTED]); Como o seguro morreu de velho, eu fui no MEDIASYS3, dei um update na tabela e depois fui ver no snapshot se ele tinha atualizado. Não tinha Dando mais uma pesquisada na Net, eu vi que era necessário dar um: declare n number; begin dbms_snapshot.REFRESH_ALL_MVIEWS( n ); end; Pelo que eu entendi, a clausula ON DEMAND não funciona... Ou seja, se eu quiser tem sempre a tabela atualizada, eu terei que dar um dbms_snapshot.refresh?? Alguem teria algum comentário a respeito ? Saudações Josir. Enviado por: rflribeiro [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] rflribeiro http://profiles.yahoo.com/rflribeiro Voc¦ê pode fazer numa materialized view. Os artigos que localizei não recomendam esta prática. http://oraclesponge.wordpress.com/2006/04/05/bad-advice-on-materialized-view-deferrable-constraints/ http://oraclesponge.wordpress.com/2006/04/05/bad-advice-on-materialized-view-deferrable-constraints/ http://www.databasedesign-resource.com/constraints-on-views.html http://www.databasedesign-resource.com/constraints-on-views.html Boa sorte. Reginaldo Ribeiro Administrador de Bancos de Dados Oracle Certified Associated 10g OlEUR ¦á pessoal, estou precisando habilitar umas constraints sobre tabelas remotas. Algo do tipo: ALTER TABLE ACRES_PERMITIDO ADD CONSTRAINT FK_ACRES_MG17VIGE FOREIGN KEY (FORCOD, VIGENCIA, MODCOMP) REFERENCES [EMAIL PROTECTED] O ENABLE NOVALIDATE; E obviamente dEUR ¦á erro: ORA-02021: DDL operations are not allowed on a remote database. Tem alguma forma de ter FOREIGN KEY para uma tabela remota ? Eu estou pensando em escrever triggers BEFORE INSERT, UPDATE e DELETE para testar a tabela remota mas vai dar um trabalheira danada SEUR ¦ão muitas constraints! AlguEUR ¦ém poderia sugerir uma arquitetura alternativa para a questEUR ¦ão? PS: Os servidores estEUR ¦ão na mesma rede interna, ou seja, nEUR ¦ão haveria problemas de performance ou de queda do link. Bom fim de semana a todos! Josir. [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Fixed Size na inicialização do banco.
Olá pessoal, eu tenho um banco de produção que tem apresentado inúmeros problemas em função da aumento do número de conexões. Muitos end-of-file - lost communication, etc. A partir disso, tenho estudado inúmeras causas que podem ocasionar esse erro. Uma coisa que eu nunca tinha notado é o Fixed Size que aparece quando a instância é iniciada. Tentei achar alguma coisa na Internet mas não tive muito sucesso. Esse valor quer dizer o que? Como aumentá-lo, se é que isso tem algum impacto na estabilidade/performance do banco? Saudações a todos, Josir Gomes Red Hat Linux release 7.2 (Enigma) Kernel 2.4.7-10 on an i686 RAM 1.5Gb - Não existem qq outros serviços no Linux (exceto FTP e SSH) habilitados. Oracle8i Enterprise Edition Release 8.1.7.0.1 - Production With the Partitioning option JServer Release 8.1.7.0.1 - Production SVRMGR Connected. SVRMGR ORACLE instance started. Total System Global Area620.544.160 bytes Fixed Size 73.888 bytes Variable Size99.721.216 bytes Database Buffers514.187.264 bytes Redo Buffers 6.561.792 bytes Database mounted. Database opened. SVRMGRServer Manager complete. [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Banco Remoto e Constraints
Olá pessoal, estou precisando habilitar umas constraints sobre tabelas remotas. Algo do tipo: ALTER TABLE ACRES_PERMITIDO ADD CONSTRAINT FK_ACRES_MG17VIGE FOREIGN KEY (FORCOD, VIGENCIA, MODCOMP) REFERENCES [EMAIL PROTECTED] ENABLE NOVALIDATE; E obviamente dá erro: ORA-02021: DDL operations are not allowed on a remote database. Tem alguma forma de ter FOREIGN KEY para uma tabela remota ? Eu estou pensando em escrever triggers BEFORE INSERT, UPDATE e DELETE para testar a tabela remota mas vai dar um trabalheira danada São muitas constraints! Alguém poderia sugerir uma arquitetura alternativa para a questão? PS: Os servidores estão na mesma rede interna, ou seja, não haveria problemas de performance ou de queda do link. Bom fim de semana a todos! Josir. [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Re: Erro ao abrir o banco: ORA-16 014 archived no available - estratégia d e backup
Olá Rafael, obrigado pelas dicas. Como precisava colocar o banco no ar, eu simplesmente desabilitei o archivelog com: ALTER SYSTEM ARCHIVE LOG STOP Mas antes de tentar voltar com a sua dica queria levantar 2 questões: 1) Atualmente, como as minhas bases são pequenas (de 1 a 3G) eu faço backup com EXPORT, ou seja, eu não utilizo RMAN. Eu imagino que o RMAN informa ao ORACLE que o archive pode ser zerado pois o backup foi realizado. Assim, como eu indicaria para o Oracle que o ARCHIVE pode ser reinicializado pois o backup já foi feito? 2) Também nunca utilizei o archive pois eu utilizo outro método para gravar as alterações no banco. Na época em que o sistema foi feito, nós não tinhamos muitas informações nem tempo de analisar o logminer. Em contrapartida, se o backup limpa o archive como poderia consultar atualizações feitas antes do backup? Bom Ano Novo a todos! Josir. SQL show parameter file_dest_size 9i ou + se usar spfile SQLALTER SYSTEM SET DB_RECOVERY_ FILE_DEST_SIZE= novo tamanho SCOPE=BOTH; [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Erro ao abrir o banco: ORA-16014 archived no available destinations
Olá pessoal, estou com um banco parado devido ao erro: ORA-16014: log 2 sequence# 93 archived, no available destinations Inicialmente, tinha dado erro: ORA-16038: log 2 sequence# 195 cannot be archived ORA-19809: limit exceeded for recovery files Para tentar resolver, eu entrei no pfile e aumentei o tamanho do parametro: db_recovery_file_dest_size de 4294967296 para 5294967296 mas parece que isso nao é uma boa solução Se tiver alguma alma ainda trabalhando que puder me dar uma ajuda eu agradeço ! Feliz ano novo para todos! Josir.
[oracle_br] Re: Function retornando String em PL/SQL
Perfeito pessoal. O problema era realmente da biblioteca de acesso a Oracle: Delphi / ODAC Muito obrigado pelas explicações. Agora eu já tenho elementos para pertubar os russos para eles corrigirem isso :))) Saudações a todos, Josir. -- Colega, só pra demonstrar que é isso mesmo, o culpado aqui é a tool, vou fazer a função retornar um valor fixo : [EMAIL PROTECTED]:SQLed Gravou arquivo afiedt.buf 1 create or replace function GETNAME(P_DEPTNO in INTEGER) return DEPT.DNAME%TYPE is 2 vRESULT DEPT.DNAME%TYPE; 3 begin 4 SELECT DNAME into vRESULT FROM DEPT WHERE DEPTNO = P_DEPTNO; 5 return vRESULT; 6* end; [EMAIL PROTECTED]:SQL/ Função criada. [EMAIL PROTECTED]:SQL@desc GETNAME FUNCTION GETNAME RETURNS VARCHAR2(14) === FIXO !!! Nome do Argumento Tipo In/Out Default? [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Erro bravo ORA-03113 em SQL único
Olá pessoal, estou tomando um ORA-03113 sempre ao executar um SQL. Eu já olhei o trace e não consegui entender xongas (consegui entretanto isolar qual é o SQL que dá erro). Dando uma olhada nas mensagens antigas, eu vi uma dica do Chiappa para tentar isolar o problema rodando o SQL pelo sqlplus diretamente no servidor. E o erro persiste... Rodei também um EXPLAIN PLAN para ver se tinha algum Full Table Scan a SQL é bem comportando utilizando os índices. Eu não sei se tem a ver mas ontem eu removi um ROLLBACK TABLESPACE e recriei-o em uma outra tablespace. Alguém tem alguma luz ? Oracle8i / RedHat 7 Josir.
[oracle_br] Tentando remover um datafile de uma tablespace
Olá pessoal, estou tentando pela primeira vez remover um datafile de uma tablespace e não estou conseguindo. A sequencia foi a seguinte: 1. Removi todos os rollback segments do tablespace 2. Dei um SELECT * FROM DBA_SEGMENTS WHERE TABLESPACE_NAME = 'RBS' para me certificar que não havia nenhum outro segmento. 3. ALTER TABLESPACE RBS OFFLINE; 4. ALTER DATABASE DATAFILE '/u01/app/oracle/oradata/msystems/rbs01.dbf' OFFLINE DROP; 5. ALTER TABLESPACE RBS ONLINE; Entretanto quando eu vou ver a lista de datafiles do tablespace, o rbs01.dbf ainda está lá! O que eu estou fazendo de errado? Oracle8i / RedHat 7. Saudações a todos, Josir.
[oracle_br] Preços aproximados de Oracle Standard
Olá pessoal, tenho um cliente novo que já está utilizando o OracleXE e está avaliando a compra de uma licença do Oracle Standar para uma CPU com 1 processador (30 usuários). Alguem tem uma idéia de quanto custa atualmente? Tem algum link que mostre preços ou algo assim ? Mas a última vez que comprei um foi a 3 anos atrás... Naquela época, os preços eram guardados a 7 sete chaves, só depois de falar com uns 5 consultores é que vc conseguia um preço... Assim estou recorrendo à lista antes de entrar nessa via-crucis. Saudações a todos, Josir. -- Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ --__ OPORTUNIDADES DE TRABALHO, VAGAS, EMPREGOS PARA PROFISSIONAIS ORACLE VISITE: http://www.oraclebr.com.br/ __ Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html