Re: [oracle_br] Re: duvida role dba
Paulo, essa base que você se refere, é de produção ou treinamento? Pois a maioria das bases de treinamento os usuários tem permissão de DBA, ou pelo menos quase isso, se for uma base de produção aí realmente deve ser revisto, você deve gerar um relatório com todos os usuários que você acha que possuem permissões de risco, e levar para o seu coordenador e também passar um e-mail para que qualquer dano futuro isso não vá explodir na sua mão. De: Paulo Couto paulopcto2...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br oracle_br@yahoogrupos.com.br Enviadas: Quarta-feira, 27 de Junho de 2012 9:50 Assunto: Re: [oracle_br] Re: duvida role dba Ederson, estou com um problema, tenho um base oracle que comecei a gerenciar e percebi vários users com está role, sei que é perigoso, mas precisava entender melhor antes de remover. Meu receio é remover a role e alguém chiar de problema no sistema. Será que se o login já tiver os grants de select, insert, update OU for o owner dos objetos teria algum problema em retirar a role DBA ?? Att, De: ederson2001br ederson200...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br Enviadas: Quarta-feira, 27 de Junho de 2012 9:37 Assunto: [oracle_br] Re: duvida role dba Alô Paulo, A role DBA tem diversos direitos no banco, veja os principais (não consigo guardar tudo de cabeça): -Gerenciar espaço: pode criar tablespaces, bem como removê-las -Pode colocar tablespaces em modo apenas-leitura -Pode mudar a senha de usuários -Pode bloquear usuários -Pode criar novos usuários -Pode dropar (remover) um usuário com todos os seus dados -Pode alterar dados nas tabelas dos usuários -Pode manipular objetos dos usuários (criar, remover, alterar) -Pode visualizar objetos do dicionário de dados, como as views DBA_% -Pode fazer backup -Pode restaurar backup -Pode conceder privilégios de sistema a outros usuários -Pode remover privilégios de usuários -Pode criar novos conjuntos de privilégios (create role + grant) -Pode remover conjuntos de privilégios (drop role) -Pode gerenciar estatísticas -Pode gerenciar jobs (tarefas agendadas) -etc Enfim, pode muito mesmo. Já pensou um usuário curioso com este poder na mão? É metralhadora carregada na mão de símios. Veja todos os direitos (rodar no SQLPLUS), respondendo DBA à pergunta do script, depois compare com os direitos de um usuário comum (ex: SCOTT): SET echo OFF SET verify OFF SET pages column granted_role form a25 column owner form a15 column table_name form a33 column privilege form a33 ACCEPT username prompt 'Enter Username : ' PROMPT Roles granted to user SELECT granted_role, admin_option, default_role FROM dba_role_privs WHERE grantee=UPPER('username') ORDER BY 1; PROMPT Table Privileges granted to a user through roles SELECT granted_role, owner, table_name, privilege FROM ( SELECT granted_role FROM dba_role_privs WHERE grantee=UPPER('username') UNION SELECT granted_role FROM role_role_privs WHERE role IN (SELECT granted_role FROM dba_role_privs WHERE grantee=UPPER('username') ) ) roles, dba_tab_privs WHERE granted_role=grantee ORDER BY 1,2,3,4; PROMPT System Privileges assigned to a user through roles SELECT granted_role, privilege FROM ( SELECT granted_role FROM dba_role_privs WHERE grantee=UPPER('username') UNION SELECT granted_role FROM role_role_privs WHERE role IN (SELECT granted_role FROM dba_role_privs WHERE grantee=UPPER('username') ) ) roles, dba_sys_privs WHERE granted_role=grantee ORDER BY 1,2; PROMPT Table privileges assigned directly to a user SELECT owner, table_name, privilege FROM dba_tab_privs WHERE grantee=UPPER('username') ORDER BY 1,2,3; PROMPT System privileges assigned directly to a user SELECT privilege, admin_option FROM dba_sys_privs WHERE grantee=UPPER('username'); undefine username; Ederson Elias DBA Oracle http://br.linkedin.com/pub/ederson-elias/24/8b/8b0 --- Em mailto:oracle_br%40yahoogrupos.com.br, Paulo Couto paulopcto2002@... escreveu Amigos, desculpem a pergunta meio de iniciante, mas até o momento não consegui captar o risco e quais permissões um login com a role DBA pode ter ? Já pesquisei bastante na net mas nunca acho nada que me diga realmente o que está role é e quais os riscos. Gostaria de vossos comentarios ou material sobre estas permissões no oracle ( o meu é versão 10 ). Att, [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: Seção idle
Jefferson, bom dia. A coluna LAST_CALL_ET é bem parecida com o que você quer, ela te dá o tempo que o usuário está executando uma determinada ação. Por exemplo: O cara executa um insert into select * from que dura uns 6 minutos, nessa coluna vai te mostrar o tempo em que o usuário está esperando a resposta do banco em segundos. Quando o processo acabar a coluna LAST_CALL_ET volta a ficar 0, e irá acrescentar um segundo por cada momento também que ele esteja Idle. Quando este usuário executar uma outra tarefa a coluna voltar a ficar zerada eo tempo começa. De: Jefferson Clyton jeff_programa...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br Enviadas: Sexta-feira, 22 de Junho de 2012 10:38 Assunto: Re: [oracle_br] Re: Seção idle Primeiramente agradeço as respostas... Rafael, executei sua querie e fiquei com dúvida no siguinificado da coluna: LAST_CALL_ET (até desconfio). João , pelo o que entendi ele utilizaram o EM para obter essa informação, porém isto ocorreu no início do ano, mas, estou com esse chamado na mão agora (aff). Como vejo a quanto tempo uma seção está logada?? Sem, Jefferson Silva. Em 21 de junho de 2012 18:03, J. Laurindo Chiappa jlchia...@yahoo.com.brescreveu: ** Jefferson, vc não nos dá a informação MAIS importante (ie, QUAL ferramenta, QUAL query, enfim, QUAL método que estava te dizendo que haviam sessões idle/inativas Isso é importante porque talvez a ferramenta/query/whatever esteja (por exemplo) só olhando há quanto tempo uma sessão se logou, ou que está esperando receber comandos do cliente para fechar o cursor que abriu, ou sessões cujo último SQL foi recebido há x minutos, ou que estão conectadas há y horas == Vc está tecnicamente correto, se não há sessões com status=INACTIVE na coluna da V$SESSION, então não há sessões que não estejam executando SQLs no banco no momento, todas estão processando algo O que vc tem que fazer é DESCOBRIR com a sua fonte exatamente o que a tal tool/query/whatever chama de IDLE, qual consulta ela está fazendo, onde que ela está indo, etc, para poder checar Exatamente o que as tais sessões estão fazendo, e se for falso alarme (pelo jeito é) pedir para alterar a tal query/tool/fonte , ou ao menos Ignorar esse tipo de aviso []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Jefferson Clyton jeff_programador@... escreveu Prezados amigos, Recebi a informação de que algumas seções estavam ficando com o status 'idle' e executei a querie: Oracle 10G select status, username from v$session; e não achei nada de idle... achei ativo, waiting Estou fazendo da forma correta?? Aguardo, Jefferson Silva DBA - Junior [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]
Re: [oracle_br] Re: Seção idle
Jefferson, é isso mesmo, mas a sessão ativa não só se resume a uma operação DML, pode ser DDL ou qualquer outra operação que o usuário requisitou ao banco e esteja esperando a respota do sgbd. De: Jefferson Clyton jeff_programa...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br Enviadas: Sexta-feira, 22 de Junho de 2012 14:03 Assunto: Re: [oracle_br] Re: Seção idle Obrigado Rafael... Eu imaginei algo parecido ... Então prosseguindo... Quando o status estiver INACTIVE significa o tempo que o 'cara' está inativo pelo 'tempo de LAST_CALL_ET e se eu mudar o status para ACTIVE significa que é o tempo em q ele está executando uma DML? Jefferson Silva, Em 22 de junho de 2012 11:10, Rafael Vieira vieira.rafae...@yahoo.com.brescreveu: ** Jefferson, bom dia. A coluna LAST_CALL_ET é bem parecida com o que você quer, ela te dá o tempo que o usuário está executando uma determinada ação. Por exemplo: O cara executa um insert into select * from que dura uns 6 minutos, nessa coluna vai te mostrar o tempo em que o usuário está esperando a resposta do banco em segundos. Quando o processo acabar a coluna LAST_CALL_ET volta a ficar 0, e irá acrescentar um segundo por cada momento também que ele esteja Idle. Quando este usuário executar uma outra tarefa a coluna voltar a ficar zerada eo tempo começa. De: Jefferson Clyton jeff_programa...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br Enviadas: Sexta-feira, 22 de Junho de 2012 10:38 Assunto: Re: [oracle_br] Re: Seção idle Primeiramente agradeço as respostas... Rafael, executei sua querie e fiquei com dúvida no siguinificado da coluna: LAST_CALL_ET (até desconfio). João , pelo o que entendi ele utilizaram o EM para obter essa informação, porém isto ocorreu no início do ano, mas, estou com esse chamado na mão agora (aff). Como vejo a quanto tempo uma seção está logada?? Sem, Jefferson Silva. Em 21 de junho de 2012 18:03, J. Laurindo Chiappa jlchia...@yahoo.com.brescreveu: ** Jefferson, vc não nos dá a informação MAIS importante (ie, QUAL ferramenta, QUAL query, enfim, QUAL método que estava te dizendo que haviam sessões idle/inativas Isso é importante porque talvez a ferramenta/query/whatever esteja (por exemplo) só olhando há quanto tempo uma sessão se logou, ou que está esperando receber comandos do cliente para fechar o cursor que abriu, ou sessões cujo último SQL foi recebido há x minutos, ou que estão conectadas há y horas == Vc está tecnicamente correto, se não há sessões com status=INACTIVE na coluna da V$SESSION, então não há sessões que não estejam executando SQLs no banco no momento, todas estão processando algo O que vc tem que fazer é DESCOBRIR com a sua fonte exatamente o que a tal tool/query/whatever chama de IDLE, qual consulta ela está fazendo, onde que ela está indo, etc, para poder checar Exatamente o que as tais sessões estão fazendo, e se for falso alarme (pelo jeito é) pedir para alterar a tal query/tool/fonte , ou ao menos Ignorar esse tipo de aviso []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Jefferson Clyton jeff_programador@ ... escreveu Prezados amigos, Recebi a informação de que algumas seções estavam ficando com o status 'idle' e executei a querie: Oracle 10G select status, username from v$session; e não achei nada de idle... achei ativo, waiting Estou fazendo da forma correta?? Aguardo, Jefferson Silva DBA - Junior [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] -- 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
Re: [oracle_br] Re: Problema perfomance SQL
André e Chiappa, obrigado pela ajuda, problema resolvido. De: J. Laurindo Chiappa jlchia...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br Enviadas: Segunda-feira, 18 de Junho de 2012 19:07 Assunto: [oracle_br] Re: Problema perfomance SQL Tá, mas além do índice Existir, ele está sendo usado no Plano de Execução ** real **, que vc tirou das V$ (e não o chute dado por alguma tool cliente) ?? Qual é a chave Completa do índice ?? Mais que isso, é Esperado que o índice seja usado ?? Afinal, cfrme nós sabemos, um índice é útil e deve ser usado SE, e apenas SE, a qtdade de linhas a recuperar for comparativamente MUITO MENOR do que o total da tabela e/ou SE o índice pode ser mais rapidamente scaneado via fast full index scan do que um full table scan. Isso nos leva à questão de cardinalidades : qual o tamanho total das tabelas envolvidas, E quantas linhas são esperadas nesse antijoin (que é o que eu imagino ser o trecho aonde vc quer saber quem NÃO está no conjunto, que vc codificou com um NOT EXISTS) ??? E o ponto mais importante : será que o que vc está obtendo com o NOT EXISTS é, logicamente falando, um nested loop, ie, CADA linha da query principal é procurada na tabela de lookup, que no seu exemplo seria a arrecadacao.pagamento pagto ? Se for isso, se a tabela de lookup for grande é Claro que operação linha-a-linha é Intrisecamente mais lenta para qtdades não-triviais, vc Tentou materializar isso de modo que possa ser feita uma busca geral, talvez com a cláusula WITH, talvez simplesmente se criando uma tabela temporária com os dados ? Numa próxima msg, se vc ainda estiver tendo o problema, mostra pra gente uma versão *** MENOR *** do SELECT em que ainda ocorra o problema (tem que ser uma versão CUSTOMIZADA, aonde vc tirou tudo o desnecessário, ninguém tem tempo pra ficar analisando uma query real de produção com meia dúzia de tabelas), mostra o plano de Execução ** real ** para nós e dê Todos os detalhes de acesso, índices e Cardinalidades, que a gente pode tentar palpitar em cima... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Rafael Vieira vieira.rafael44@... escreveu André, obrigado pelo retorno. Respondendo a sua pergunta, tem sim. De: Andre Santos andre.psantos.ti@... Para: oracle_br@yahoogrupos.com.br Enviadas: Segunda-feira, 18 de Junho de 2012 17:35 Assunto: Re: [oracle_br] Problema perfomance SQL Rafael Uma primeira pergunta: na tabela pagamento há um índice por cnta_id? [ ] André 2012/6/18 vieira.rafael44 vieira.rafael44@... ** Amigos, boa tarde. Venho aqui pedir uma ajuda de vocês, estou com um probleminha de performance na query abaixo: Obs: O grande problema, é a última condição AND, onde se usa o NOT EXISTS, sem o NOT EXISTS a query roda em 01 min e 36seg. Quanto a questão de estatísticas e índice está ok. SELECT Count(conta.imov_id) AS idImovel FROM faturamento.conta conta INNER JOIN cadastro.imovel imov ON imov.imov_id = conta.imov_id INNER JOIN cadastro.localidade loca ON loca.loca_id = imov.loca_id INNER JOIN cadastro.setor_comercial stcm ON stcm.stcm_id = imov.stcm_id INNER JOIN cadastro.quadra qdra ON qdra.qdra_id = imov.qdra_id LEFT OUTER JOIN cobranca.cobranca_situacao cbst ON cbst.cbst_id = imov.cbst_id WHERE ( imov.cbst_id IS NULL OR cbst.cbst_icnaocobranca 1 ) AND imov.imov_id NOT IN (SELECT cbsh.imov_id FROM cobranca.cobranca_situacao_hist cbsh WHERE cbsh.imov_id = imov.imov_id AND cbsh.cbsh_amcobrancaretirada IS NULL) AND imov.imov_icexclusao 1 AND imov.imov_idcategoriaprincipal IN ( 1, 2, 3 ) AND conta.dcst_idatual IN ( 0, 1, 2 ) AND loca.greg_id = 44 AND imov.iper_id IN ( 1, 3, 4, 5 ) AND imov.last_id IN ( 5, 3 ) AND conta.cnta_amreferenciaconta BETWEEN 200203 AND 201203 AND NOT EXISTS (SELECT pagto.pgmt_id FROM arrecadacao.pagamento pagto WHERE pagto.cnta_id = conta.cnta_id) [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]
Re: [oracle_br] Re: Como identificar versão para compra de um cliente
Ok, obrigado ao Milton e a você Chiappa, obrigado pela atenção. De: J. Laurindo Chiappa jlchia...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br Enviadas: Terça-feira, 19 de Junho de 2012 11:24 Assunto: [oracle_br] Re: Como identificar versão para compra de um cliente É isso mesmo, Milton : inclusive, Rafael, concordo que REALMENTE a pessoa que vai fazer uma indicação de tecnologia REALMENTE tem que não só conhecer bem o ambiente do cliente, saber o que ele usa e o que não usa, mas também tem que conhecer a tecnologia Oracle - facilmente pode acontecer de tecnologias normalmente recomendadas para um ambiente possam ser aplicadas com extremo sucesso e benefício em outro, um exemplo é o Particionamento, que a documentação Oracle etiqueta como pertinente a DWs/Batch, mas pode se usado com MUITO sucesso em ambientes OLTP na hora de arquivar dados, por exemplo, permitindo que seja feito um simples e rápido TRUNCATE ou DROP na partição a ser eliminada, ao invés de ter que se fazer FULL TABLE SCAN caçando os dados a eliminar/arquivar... Então, sendo assim, eu REALMENTE indicaria que vc acionasse alguém mais experiente, se hoje vc não se sente seguro o suficiente, para Evitar que vc indique uma edição/política de licenciamento com itens que o Cliente não pode usar ou uma que não contemple itens Extremamente úteis e importantes para o Cliente Caso REALMENTE seja absolutamente, totalmente impossível que alguém mais experiente atue, SEM esquecer os cruciais pontos de orçamento e adequação que o Milton levantou, aí é vc que vai ter que aprender/conhecer o que existe em cada possibilidade de licenciamento e avaliar o que é bom e útil e necessário ao seu cliente ou não : as fontes de informação vão ser o paper http://www.oracle.com/us/products/database/039449.pdf , o manual de Licenciamento e o de Concepts , os papers em http://www.oracle.com/technetwork/database/enterprise-edition/overview/index.html e os bons livros de referência, que mostrem casos práticos de aplicação das funcionalidades / opções do database Oracle, que aí vc os contrasta com a situação do seu cliente : o autor Tom Kyte tem alguns excelentes livros para isso ... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Milton Bastos Henriquis Jr. miltonbastos@... escreveu Preços: https://shop.oracle.com http://www.oracle.com/us/corporate/pricing/technology-price-list-070617.pdf (essa lista acima é de Abril, portanto podem haver preços desatualizados... mas é só procurar a mais atualizada no site) Não vou conseguir te explicar por e-mail TODOS os fatores e todas as perguntas que vc tem que fazer pro cliente. O certo é você aprender as diferenças de uma versão pra outra e daí sim saber encaixar. Primeira coisa é verificar quais Features e Options o cliente necessita. Exemplo: o cliente precisa da option de Compression, pois vai ter um volume muito grande de dados. Neste caso, obrigatoriamente vai precisar da versão Enterprise MAIS a option de compressão. Outra coisa é orçamento: se o cliente tem pouco pra gastar, já fica bem complicado indicar a versão Enterprise, daí tem que ver se uma versão Standard serve pra necessidade dele. Mais coisas importantes: ONDE vai rodar? a versão Standard One é no máximo 2 sockets por servidor. A Standard, no máximo 4 sockets. No Enterprise, o número de sockets é ilimitado, porém o licenciamento é feito por core (e aí tem que pegar a tabela de fatores pra ver qual a arquitetura do servidor do cliente). Como calcular o licenciamento para Enterprise: http://www.oraclelicensestore.com/en/licensing/tutorial/licensing-tutorial Importante também saber quantos USUÁRIOS o cliente vai ter. Em caso de poucos usuários, fica viável fazer o licenciemento por usuário ao invés de licenciar pro processador. Enfim... tem vários fatores, fica complicado explicar tudo aqui por e-mail. Acho difícil aprender isso em poucos minutos, é necessário tempo de experiência na área e ter um pouco de feeling para fazer as perguntas corretas pro cliente. 2012/6/19 vieira.rafael44 vieira.rafael44@... ** Amigos, bom dia. Gostaria de saber como posso identificar qual versão do Oracle(Express Edition,Standard One, Standard Edition ou Enterprise Edition) poderia ser fornecida para um determinado cliente. Em outras palavras, gostaria de saber se existe algum material, ou algum artigo, que explique qual versão do Oracle seja mais indicada para uma determinada empresa. Preciso indicar uma versão do Oracle, mas tenho pouco tempo de experiência na área e muita dificuldade nesse aspecto. Teria também alguma tabela de preços? Obrigado pela atenção. -- Att, [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] Problema perfomance SQL
André, obrigado pelo retorno. Respondendo a sua pergunta, tem sim. De: Andre Santos andre.psantos...@gmail.com Para: oracle_br@yahoogrupos.com.br Enviadas: Segunda-feira, 18 de Junho de 2012 17:35 Assunto: Re: [oracle_br] Problema perfomance SQL Rafael Uma primeira pergunta: na tabela pagamento há um índice por cnta_id? [ ] André 2012/6/18 vieira.rafael44 vieira.rafae...@yahoo.com.br ** Amigos, boa tarde. Venho aqui pedir uma ajuda de vocês, estou com um probleminha de performance na query abaixo: Obs: O grande problema, é a última condição AND, onde se usa o NOT EXISTS, sem o NOT EXISTS a query roda em 01 min e 36seg. Quanto a questão de estatísticas e índice está ok. SELECT Count(conta.imov_id) AS idImovel FROM faturamento.conta conta INNER JOIN cadastro.imovel imov ON imov.imov_id = conta.imov_id INNER JOIN cadastro.localidade loca ON loca.loca_id = imov.loca_id INNER JOIN cadastro.setor_comercial stcm ON stcm.stcm_id = imov.stcm_id INNER JOIN cadastro.quadra qdra ON qdra.qdra_id = imov.qdra_id LEFT OUTER JOIN cobranca.cobranca_situacao cbst ON cbst.cbst_id = imov.cbst_id WHERE ( imov.cbst_id IS NULL OR cbst.cbst_icnaocobranca 1 ) AND imov.imov_id NOT IN (SELECT cbsh.imov_id FROM cobranca.cobranca_situacao_hist cbsh WHERE cbsh.imov_id = imov.imov_id AND cbsh.cbsh_amcobrancaretirada IS NULL) AND imov.imov_icexclusao 1 AND imov.imov_idcategoriaprincipal IN ( 1, 2, 3 ) AND conta.dcst_idatual IN ( 0, 1, 2 ) AND loca.greg_id = 44 AND imov.iper_id IN ( 1, 3, 4, 5 ) AND imov.last_id IN ( 5, 3 ) AND conta.cnta_amreferenciaconta BETWEEN 200203 AND 201203 AND NOT EXISTS (SELECT pagto.pgmt_id FROM arrecadacao.pagamento pagto WHERE pagto.cnta_id = conta.cnta_id) [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] TABLE ACCESS FULL
Paulo, muito obrigado pela ajuda. Verifiquei que existe um nested Loops que possui um custo de 193.748, na ferramenta sql tools que estou ele nao me diz qual é a tabela, irei realizar o plano cartesionao no sql plus e irei mostrar aqui, o APPEND realmente é uma boa, hoje a noite quando colocar pra rodar novamente o insert, eu irei acrescentar o hint sim. Outra coisa, quando mudei para o padrão Oracle normal acontece o seguinte: from faturamento.conta cnta, cadastro.imovel imo, cadastro.localidade loc, cadastro.localidade elo, cadastro.quadra qua, micromedicao.rota rot, cadastro.setor_comercial stc, cadastro.gerencia_regional ger, cadastro.unidade_negocio uni, ( select coalesce( esf.epod_id, 0 ) as epod_id, cim.imov_id, cli.cltp_id from cadastro.cliente_imovel cim, cadastro.cliente cli, cadastro.cliente_tipo ctp, cadastro.esfera_poder esf, cadastro.cliente_relacao_tipo crt where cli.clie_id = cim.clie_id AND cli.cltp_id = ctp.cltp_id AND ctp.epod_id = esf.epod_id AND cim.crtp_id = crt.crtp_id AND crt.crtp_id = 2 AND( cim.clim_dtrelacaofim is null ) ) esferaPoder, atendimentopublico.ligacao_agua lag, atendimentopublico.ligacao_agua_perfil lap, atendimentopublico.ligacao_esgoto leg, atendimentopublico.ligacao_esgoto_perfil lep, cadastro.SISTEMA_PARAMETROS sp -- essa tabela nao tem join, soh possui uma linha where cnta.imov_id = imo.imov_id and loc.loca_id = imo.loca_id and elo.loca_id = loc.loca_cdelo and qua.qdra_id = imo.qdra_id and rot.rota_id = qua.rota_id and stc.stcm_id = qua.stcm_id and ger.greg_id = loc.greg_id and uni.uneg_id = loc.uneg_id AND esferaPoder.imov_id = imo.imov_id (+) AND lagu_id = imo.imov_id (+) AND lap.lapf_id = lag.lapf_id (+) AND leg.lesg_id = imo.imov_id (+) AND lep.lepf_id = leg.lepf_id (+) ORA-01417: uma tabela só pode ser externamente unida a uma outra tabela no máximo De: Paulo A. Petruzalek ppetruza...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br Enviadas: Quinta-feira, 31 de Maio de 2012 12:50 Assunto: Re: [oracle_br] TABLE ACCESS FULL Olha, sem ter acesso ao seu ambiente não ajuda muito ter a query. Um table acess full no seu caso provavelmente é o que você precisa mesmo, isso por si só não quer dizer que é um plano ruim, apenas que em ambos os casos você está acessando mais de 20% das linhas das tabelas, e portanto, é mais barato para o banco fazer o full table scan. Além disso, 3 milhões de um lado e 30 milhões do outro não é considerado um volume de dados muito grande para os bancos atuais e se for só isso deveria resolver em pouco tempo. Eu particularmente estaria procurando no seu plano falhas na condição de join (ex: merge join cartesian) e nested loops (para milhões de linhas é ruim fazer nested loops). Outra coisa, eu vi que você está usando ANSI JOINS, pela minha experiência o Oracle não lida bem com essa sintaxe quando há muitas tabelas envolvidas, então sugiro reescrever usando a sintaxe Oracle. Finalmente, você não mostra o insert, mas sendo uma carga massiva de dados sugiro que você use a hint APPEND para agilizar a carga dos dados e consumir menos recursos do banco. Vocẽ não fala a sua versão, o que limita bastante as opções, mas se estiver num banco enterprise pode usar paralelismo na query para tentar resolvê-la mais rapidamente. []'s Paulo On Thu, 31 May 2012 14:07:16 - vieira.rafael44 vieira.rafae...@yahoo.com.br wrote: Pessoal, bom dia. Estou com uma query que é usada em um insert que está demorando em torno de 18 horas. Fiz uma análise e limpei alguns lixos, mas continua lenta, não irei colar o plano de execução aqui, pois é muito grande. Obs: O servidor está livre apenas para rodar esse script, só quem tem acesso sou eu. Tabela faturamento.conta possui 30 milhões de registro e está dando ACCESS FULL na tabela tabela cadastro.imovel possui 3 milhoes registro e tb ocorre ACCESS FULL. Segue query para análise: SELECT CASE WHEN (substr(sp.parm_amreferenciaarrecadacao,5, 2) = '01') THEN To_Number(substr(sp.parm_amreferenciaarrecadacao,1, 4) - 1||'12') ELSE sp.parm_amreferenciaarrecadacao - 1 END as rpen_amreferencia, -- Ano mês de referência ger.greg_id, -- Gerência imo.iper_id, -- Perfil do imovel imo.last_id, -- Ligacao de Agua Situacao elo.loca_id as elo, -- Elo
Re: [oracle_br] Re: TABLE ACCESS FULL
Ederson, muito obrigado pela ajuda amigo, vai servir de mais, não só para essa, mas para todas as outras query's. Obrigado amigo. De: ederson2001br ederson200...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br Enviadas: Quinta-feira, 31 de Maio de 2012 16:04 Assunto: [oracle_br] Re: TABLE ACCESS FULL Alô Rafael, Minhas sugestões: - Usando o dbms_sqltune.create_tuning_task, você poderá usar o analisador do Oracle para te dar aquela mão. Para quem não conhece este segredinho, lá vai: - Abra o SQLPLUSW, edite um arquivo chamado P1.SQL e coloque nele: --P1.sql DECLARE my_task_name VARCHAR2 (30); my_sqltext CLOB; BEGIN my_sqltext := ' coloque o seu SQL aqui sem ponto-e-virgula-final '; my_task_name := dbms_sqltune.create_tuning_task (sql_text= my_sqltext, --bind_list = sql_binds (anydata.convertnumber (9)), -- se ORA-01008, comente esta linha user_name = 'NM', scope = 'COMPREHENSIVE', time_limit= 60, task_name = 'TASK_TEST', description = 'Tuning Task' ); END; / Dica: coloque somente um atributo no select, o importante é a clausula WHERE. Não será retornado nenhuma linha, somente a análise do plano de execução. Não pode usar ASPAS-SIMPLES e nem ASPAS-DUPLAS, pois a atribuição de MY_SQLTEXT é feita com o sql no formato de uma string. Pode usar variável BIND, não precisa atribuir valores. - Outros arquivos: --P2.sql BEGIN dbms_sqltune.execute_tuning_task (task_name = 'TASK_TEST'); END; / --P3.sql column task_name format a20; SELECT status FROM USER_ADVISOR_TASKS WHERE task_name = 'TASK_TEST'; --P4.sql SET LONG 2 SET LONGCHUNKSIZE 1000 SET LINESIZE 150 set pagesize 1000 column status format a15 SELECT DBMS_SQLTUNE.REPORT_TUNING_TASK( 'TASK_TEST') FROM DUAL; --P5.sql SELECT DBMS_SQLTUNE.SCRIPT_TUNING_TASK('TASK_TEST') RECOMMENTATION FROM DUAL; --P6.sql BEGIN DBMS_SQLTUNE.DROP_TUNING_TASK(task_name = 'TASK_TEST'); END; / -- Como usar: -Coloque o seu sql na variável my_sqltext em P1.SQL -No Sqlplus, rode @p1, @p2, @p3, @P4, @p5 na sequencia -O P4.sql vai te dar o resumo da melhoria, como criação de índices, verificação de tabelas sem join, etc -Despreze recomendação de aplicar o sql_profile -O P4.sql também simula a criação de indices e mostra como ficaria o plano, se eles existissem. -O P5.sql dá os comandos de criação dos indices sugeridos -O P6.sql apaga a transação criada em P1, para você rodar novamente ou com outro SQL. Faça bom uso, o recurso é um show! Ederson Elias DBA Oracle http://br.linkedin.com/pub/ederson-elias/24/8b/8b0 --- Em oracle_br@yahoogrupos.com.br, vieira.rafael44 vieira.rafael44@... escreveu Pessoal, bom dia. Estou com uma query que é usada em um insert que está demorando em torno de 18 horas. Fiz uma análise e limpei alguns lixos, mas continua lenta, não irei colar o plano de execução aqui, pois é muito grande. Obs: O servidor está livre apenas para rodar esse script, só quem tem acesso sou eu. Tabela faturamento.conta possui 30 milhões de registro e está dando ACCESS FULL na tabela tabela cadastro.imovel possui 3 milhoes registro e tb ocorre ACCESS FULL. Segue query para análise: SELECT CASE WHEN (substr(sp.parm_amreferenciaarrecadacao,5, 2) = '01') THEN To_Number(substr(sp.parm_amreferenciaarrecadacao,1, 4) - 1||'12') ELSE sp.parm_amreferenciaarrecadacao - 1 END as rpen_amreferencia, -- Ano mês de referência ger.greg_id, -- Gerência imo.iper_id, -- Perfil do imovel imo.last_id, -- Ligacao de Agua Situacao elo.loca_id as elo, -- Elo imo.lest_id, -- Ligacao de Esgoto Situacao imo.imov_idcategoriaprincipal, ---imo.idcatg_pricipal, imo.imov_idsubcategoriaprincipal, ---imo.idscat_id, esferaPoder.epod_id, cltp_id, ---cli.cltp_id, Nvl(lap.lapf_id,0), Nvl(lep.lepf_id,0), stc.stcm_cdsetorcomercial, -- Codigo do Setor Comercial qua.qdra_nnquadra, -- Numero da quadra uni.uneg_id, -- Unidade qua.rota_id, -- Rota loc.loca_id, -- Localidade stc.stcm_id, -- Setor Comercial qua.qdra_id, -- Quadra case when ( lag.lagu_nnconsumominimoagua 0 ) then 1 else 2 end, -- Volume fixado de agua case when ( leg.lesg_nnconsumominimoesgoto 0 ) then 1 else 2 end, -- Volume fixado de Esgoto 1, --- dotp_id cnta.cnta_amreferenciaconta, -- Ano mes de referencia da conta case when ( imo.last_id in ( 3, 5 ) and lag.hidi_id is not null ) or -- Medido de Agua ( imo.lest_id = 3 and imo.hidi_id is not null ) then -- Medido de Esgoto
Re: [oracle_br] ERROR: UGA memory leak detected ---- Alert.Log
Boa tarde Alisson. Esse tal erro ora 600 novamente... Eu mesmo já abri um tópico sobre isso, e a maioria das respostas que você vai encontrar sobre isso é abrir um SR, tem que abrir um chamado pra Oracle. No meu caso era um bug mesmo, no Datapump, quando fazia o impdp aparecia esse erro ora600 e descobriram que a placa mãe, as configurações de ambiente do SO não estavam batendo... Nós trocamos a máquina e funcionou, mas seu caso deve ser outro, vamos esperar alguém se pronunciar. De: alisson alisson...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br Enviadas: Quarta-feira, 30 de Maio de 2012 14:39 Assunto: [oracle_br] ERROR: UGA memory leak detected Alert.Log Olá amigos ... Estou com um log de alerta no meu servidor... Configuração: S.O : Windows Server 2008 R2 Entreprise 64 - Service pack 1 12gb RAM Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production OS logs de alertas começaram ontem e vi em alguns forum oracle que é um erro que pode ser ignorando e em alguns falou sobre reiniciar que deve ser resolvido o problema. Pelo que observei é um vasamento de memoria e isso acontece quando o datadump é executado por scripts rman.. Ontem dei um shutdown na base de dados e o mesmo parou de gerar o erro e hoje as 12:12 retornou o alerta. Bom segue o erro no alert. ## Wed May 30 12:12:00 2012 Errors in file c:\app\administrator\diag\rdbms\bdeducar\bdeducar\trace\bdeducar_j000_5872.trc (incident=108282): ORA-00600: código de erro interno, argumentos: [729], [17064], [space leak], [], [], [], [], [], [], [], [], [] Incident details in: c:\app\administrator\diag\rdbms\bdeducar\bdeducar\incident\incdir_108282\bdeducar_j000_5872_i108282.trc Errors in file c:\app\administrator\diag\rdbms\bdeducar\bdeducar\trace\bdeducar_j000_5872.trc: ORA-00600: código de erro interno, argumentos: [729], [17064], [space leak], [], [], [], [], [], [], [], [], [] Wed May 30 12:12:01 2012 Trace dumping is performing id=[cdmp_20120530121201] Wed May 30 12:12:11 2012 Sweep Incident[108282]: completed Wed May 30 12:33:07 2012 Thread 1 advanced to log sequence 6025 (LGWR switch) Current log# 1 seq# 6025 mem# 0: C:\APP\ADMINISTRATOR\ORADATA\BDEDUCAR\REDO01.LOG Wed May 30 13:00:16 2012 Thread 1 advanced to log sequence 6026 (LGWR switch) Current log# 2 seq# 6026 mem# 0: C:\APP\ADMINISTRATOR\ORADATA\BDEDUCAR\REDO02.LOG Wed May 30 13:00:53 2012 Thread 1 advanced to log sequence 6027 (LGWR switch) Current log# 4 seq# 6027 mem# 0: C:\APP\ADMINISTRATOR\ORADATA\BDEDUCAR\REDO04.LOG Wed May 30 13:31:43 2012 Errors in file c:\app\administrator\diag\rdbms\bdeducar\bdeducar\trace\bdeducar_j000_2296.trc (incident=108010): ORA-00600: código de erro interno, argumentos: [729], [17064], [space leak], [], [], [], [], [], [], [], [], [] Incident details in: c:\app\administrator\diag\rdbms\bdeducar\bdeducar\incident\incdir_108010\bdeducar_j000_2296_i108010.trc Errors in file c:\app\administrator\diag\rdbms\bdeducar\bdeducar\trace\bdeducar_j000_2296.trc: ORA-00600: código de erro interno, argumentos: [729], [17064], [space leak], [], [], [], [], [], [], [], [], [] Wed May 30 13:31:46 2012 Trace dumping is performing id=[cdmp_20120530133146] Wed May 30 13:31:48 2012 Sweep Incident[108010]: completed Wed May 30 14:01:42 2012 Errors in file c:\app\administrator\diag\rdbms\bdeducar\bdeducar\trace\bdeducar_j000_5204.trc (incident=107802): ORA-00600: código de erro interno, argumentos: [729], [9144], [space leak], [], [], [], [], [], [], [], [], [] Incident details in: c:\app\administrator\diag\rdbms\bdeducar\bdeducar\incident\incdir_107802\bdeducar_j000_5204_i107802.trc Errors in file c:\app\administrator\diag\rdbms\bdeducar\bdeducar\trace\bdeducar_j000_5204.trc: ORA-00600: código de erro interno, argumentos: [729], [9144], [space leak], [], [], [], [], [], [], [], [], [] Wed May 30 14:01:43 2012 Trace dumping is performing id=[cdmp_20120530140143] Wed May 30 14:01:47 2012 Sweep Incident[107802]: completed ** Segue o arquivo bdeducar_j000_5872.trc ## Trace file c:\app\administrator\diag\rdbms\bdeducar\bdeducar\trace\bdeducar_j000_2296.trc Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options Windows NT Version V6.1 Service Pack 1 CPU : 6 - type 8664, 6 Physical Cores Process Affinity: 0x Memory (Avail/Total): Ph:6733M/12227M, Ph+PgF:18799M/24453M Instance name: bdeducar Redo thread mounted by this instance: 1 Oracle process number: 53 Windows thread id: 2296, image: ORACLE.EXE (J000) *** 2012-05-30 13:31:43.381 *** SESSION ID:(336.5490) 2012-05-30 13:31:43.381 *** CLIENT ID:() 2012-05-30 13:31:43.381 *** SERVICE
Re: [oracle_br] Help no Script
Tenta colocar a cláusula having fazendo uma condição data = max(data), pq o having aceita um filtro com agrupamento, ou então, faria uma gamb,order by data desc e colocaria um rownum = 1 De: Bruno Banfi bruno.ba...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br oracle_br@yahoogrupos.com.br Enviadas: Quarta-feira, 23 de Maio de 2012 14:56 Assunto: [oracle_br] Help no Script Boa tarde a todos, Tenho o seguinte script: SELECT MAX(I.EST_DATA_ENTRADA) as 'DATA_ENTRADA', I.EST_FK_EPI,I.EST_CUST_UND from ESTOQUE as I, EPI as H INNER JOIN ESTOQUE ON EST_FK_EPI = H.EPI_ID Group by I.EST_FK_EPI, I.EST_CUST_UND ORDER BY I.EST_FK_EPI Que da o seguinte resultado: EST_DATA_ENTRADA EST_FK_EPI EST_CUST_UND 2012-03-28 NULL 23.00 2011-09-28 2 0.65 2012-05-16 2 0.69 2012-05-16 4 1.55 2011-09-28 59 3.05 2011-10-27 77 3.75 2012-02-17 77 3.05 2011-09-30 79 2.25 2012-02-17 97 2.25 2011-09-30 99 22.14 2011-09-30 121 7.56 2011-09-30 139 46.00 2012-02-17 140 16.50 2012-02-17 144 3.71 2011-09-30 144 6.55 2012-05-16 161 3.71 2011-09-30 161 3.70 O resultado que preciso trazer é o valor (EST_CUST_UND) com a data (EST_DATA_ENTRADA) mais recente. Muito obrigado, Bruno [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] Help no Script
SELECT max(I.EST_DATA_ENTRADA) as 'DATA_ENTRADA', I.EST_FK_EPI,I.EST_CUST_UND from ESTOQUE as I, EPI as H INNER JOIN ESTOQUE ON EST_FK_EPI = H.EPI_ID Group by I.EST_FK_EPI, I.EST_CUST_UND having I.EST_DATA_ENTRADA = ( Select max(ESTOQUE .EST_DATA_ENTRADA) from ESTOQUE) ORDER BY I.EST_FK_EPI tenta assim bruno. De: Bruno Banfi bruno.ba...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br oracle_br@yahoogrupos.com.br Enviadas: Quarta-feira, 23 de Maio de 2012 16:15 Assunto: Re: [oracle_br] Help no Script Milton, fiz dessa maneira porque não é possivel dar um Select na coluna e não colocar no group by. Não posso fazer isso, da erro: SELECT MAX(I.EST_DATA_ENTRADA) DATA_ENTRADA, I.EST_FK_EPI, I.EST_CUST_UND from ESTOQUE as I Group by I.EST_FK_EPI De: Milton Bastos Henriquis Jr. miltonbas...@gmail.com Para: oracle_br@yahoogrupos.com.br Enviadas: Quarta-feira, 23 de Maio de 2012 15:53 Assunto: Re: [oracle_br] Help no Script Sim, vc fez errado! Vc colorou o campo VALOR no group by. É por isso que aparecem dois valores diferentes pro mesmo produto - foi vc mesmo que mandou que ficasse assim. Eu já imaginei que tivesse esse erro, por isso coloquei aquele comentário. Se vc quer apenas da data mais recente, mande agrupas apenas pelo produto, daí pegue a data mais recente usando o MAX, e por fim pegue o valor do produto naquela data. 2012/5/23 Bruno Banfi bruno.ba...@yahoo.com.br ** Milton, Veja que no resultado aparece dois valores para o mesmo produto mas com datas diferentes: 2011-09-28 2 0.65 2012-05-16 2 0.69 Na minha consulta precisa aparecer o valor do produto com a data mais recente. Nesse caso acima era para aparecer somente: 2012-05-16 2 0.69 Não deu certo o que o Rafael sugeriu. Vou revisar para ver se estou fazendo alguma coisa errada. Obrigado pelo retorno. Bruno De: Milton Bastos Henriquis Jr. miltonbas...@gmail.com Para: oracle_br@yahoogrupos.com.br Enviadas: Quarta-feira, 23 de Maio de 2012 15:27 Assunto: Re: [oracle_br] Help no Script Sobre a sugestão do Rafael, importante lembrar que: Se for usar rownum, tem que usar subselect também. Bruno: tenho quase certeza que vc não explicou corretamente o que vc realmente deseja. Essa query que vc passou, ela está CORRETA e vc deseja extrair essa informação dela? Ou ela está ERRADA e vc deseja corrigi-la? Se ela estiver correta, pra extrair exatamente o que vc descreveu, é fácil... Sem fazer muita alteração e usando a dica do Rafael: Select DATA_ENTRADA, EST_CUST_UND from ( SELECT MAX(I.EST_DATA_ENTRADA) DATA_ENTRADA, I.EST_FK_EPI,I.EST_CUST_UND from ESTOQUE as I, EPI as H INNER JOIN ESTOQUE ON EST_FK_EPI = H.EPI_ID Group by I.EST_FK_EPI, I.EST_CUST_UND order by MAX(I.EST_DATA_ENTRADA)) where rownum = 1; Mas tenho o leve pressentimento que não é isso que vc quer... que talvez vc queira refazer a query, mudar esse agrupamento, mas nesse caso só dá pra te ajudar se vc realmente explicar melhor. 2012/5/23 Rafael Vieira vieira.rafae...@yahoo.com.br ** Tenta colocar a cláusula having fazendo uma condição data = max(data), pq o having aceita um filtro com agrupamento, ou então, faria uma gamb,order by data desc e colocaria um rownum = 1 De: Bruno Banfi bruno.ba...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br oracle_br@yahoogrupos.com.br Enviadas: Quarta-feira, 23 de Maio de 2012 14:56 Assunto: [oracle_br] Help no Script Boa tarde a todos, Tenho o seguinte script: SELECT MAX(I.EST_DATA_ENTRADA) as 'DATA_ENTRADA', I.EST_FK_EPI,I.EST_CUST_UND from ESTOQUE as I, EPI as H INNER JOIN ESTOQUE ON EST_FK_EPI = H.EPI_ID Group by I.EST_FK_EPI, I.EST_CUST_UND ORDER BY I.EST_FK_EPI Que da o seguinte resultado: EST_DATA_ENTRADA EST_FK_EPI EST_CUST_UND 2012-03-28 NULL 23.00 2011-09-28 2 0.65 2012-05-16 2 0.69 2012-05-16 4 1.55 2011-09-28 59 3.05 2011-10-27 77 3.75 2012-02-17 77 3.05 2011-09-30 79 2.25 2012-02-17 97 2.25 2011-09-30 99 22.14 2011-09-30 121 7.56 2011-09-30
Re: [oracle_br] Re: Carreira DBA
Amigo, bom dia. Posso dá como exemplo o que aconteceu comigo, assim como você, também estava querendo uma vaga de DBA Jr. e não encontrava oportuniadade, creio eu, que o primeiro emprego realmente é o mais difícil de se conseguir, por não ter experiência etc.. Consegui uma vaga para desenvolvedor Oracle, fiquei 2 anos nessa empresa desenvolvendo e adquirir uma boa experiência, fiz a prova de SQL e passei. Assim, comecei os meus estudos para a área Administrativa, depois de algum tempo estudando, surgiu na mesma empresa uma vaga para DBA Jr. a qual não foi me dada a oportunidade, mesmo o pessoal sabendo que vinha desempenhando um bom trabalho, eles me disseram que a tal da certificação era obrigatória. Minha prova já está marcada, é exatamente daqui a 8 dias, e no decorrer dos estudos surgiu uma oportunidade para ingressar na área em outra empresa, e estou aqui a 3 meses, estude, cole a cara nos livros que oportunidades aparecem pra quem se esforça, isso é fato. Att, Rafael Mendonça De: J. Laurindo Chiappa jlchia...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br Enviadas: Terça-feira, 15 de Maio de 2012 22:28 Assunto: [oracle_br] Re: Carreira DBA Colega, seguinte : vc até pode achar alguma coisa de DBA iniciante, por exemplo júnior, mas nunca vai haver muitas vagas - em http://www.indeed.com.br , que é um site concentrador de vagas, se vc procurar por DBA JR ORACLE vc vai achar coisa de 2 ou 3, só ... O que pega é que DBA mesmo novato tem uma responsa danada, um comandinho furado e o banco pode ir pro saco, e além disso normalmente as Empresas querem alguém que já usou o banco na prática, que se não administrou pelo menos presenciou alguns desafios do dia a dia, então pra quem quer começar normalmente é mais fácil começar pela área de programação - via de regra há muito mais ofertas em Programação, e vc ganha experiência na utilização do database na prática do dia a dia, que vai ser algo utilíssimo mais tarde, quando vc entrar para a área de DBA ... E essa experiência realmente conta para as Empresas , normalmente... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, carlos silva carlos_nsilva@... escreveu Andei procurando por esses programas mas no momento não encontrei nada. Mas de qualquer forma obrigado pela dica.. Abçs!!! De: Rodrigo Gallacci rodrigo.gallacci@... Para: oracle_br@yahoogrupos.com.br Enviadas: Terça-feira, 15 de Maio de 2012 20:54 Assunto: Re: [oracle_br] Carreira DBA Procure por programas de trainee, sei que não pagam bem, mas é um bom caminho de entrada. Bem vindo à área dos que não dormem, não almoçam, etc...hehheheh Att Rodrigo Gustavo Gallacci DBA Oracle ATG 2012/5/15 carlos silva carlos_nsilva@... ** Boa noite Pessoal, Meu nome é Carlos e gostaria da opinião de profissionais da área de banco de dados Oracle sobre o início da carreira. Me formei na Fiap há aproximadamente 1 ano atrás e conclui o curso de Especialização de banco de dados Oracle (Pós-Graduação). Durante esse tempo venho tentando migrar para área de banco mais está sendo difícil devido ao fato de eu não ter experiência. Sempre trabalhei na área de Produção e meus conhecimentos abrangem Unix, Shell Script, SQL, Automatização de processos, Linguagem SQL, porém a experiência como Administrador de banco de dados eu ainda não tenho. Gostei muito de Oracle e no momento estou estudando para tirar a certificação OCA e gostaria de saber quais passos além desses devo seguir para conseguir uma oportunidade na área. Caso saibam de alguma vaga para Júnior é só falar também.. Obrigado! [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]
Re: [oracle_br] Re: Carreira DBA
Não sei se você conhece, mas o site do nosso amigo Milton e do Victor também tem uma série de informações importantes sobre certificação, o nome do site já diz tudo, segue: http://certificacaobd.com.br/ De: carlos silva carlos_nsi...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br oracle_br@yahoogrupos.com.br Enviadas: Quarta-feira, 16 de Maio de 2012 8:41 Assunto: Re: [oracle_br] Re: Carreira DBA Obrigado pessoal pelas dicas... Já aconteceu isso comigo também Rafael.. Na empresa onde trabalho as vezes surgem vaga para DBA Oracle Jr. mais as vagas são sempre através de outras consultorias e aqui existe uma burocracia muito grande para você passar para outra consultoria, sabe como é né... Estou estudando bastante sobre Oracle e pretendo logo obter a certificação também para ver se pelo menos tenho uma oportunidade para ser chamado para uma entrevista.. rs.. Obrigado e tenham um bom dia. Att, Carlos De: Rafael Vieira vieira.rafae...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br oracle_br@yahoogrupos.com.br Enviadas: Quarta-feira, 16 de Maio de 2012 8:27 Assunto: Re: [oracle_br] Re: Carreira DBA Amigo, bom dia. Posso dá como exemplo o que aconteceu comigo, assim como você, também estava querendo uma vaga de DBA Jr. e não encontrava oportuniadade, creio eu, que o primeiro emprego realmente é o mais difícil de se conseguir, por não ter experiência etc.. Consegui uma vaga para desenvolvedor Oracle, fiquei 2 anos nessa empresa desenvolvendo e adquirir uma boa experiência, fiz a prova de SQL e passei. Assim, comecei os meus estudos para a área Administrativa, depois de algum tempo estudando, surgiu na mesma empresa uma vaga para DBA Jr. a qual não foi me dada a oportunidade, mesmo o pessoal sabendo que vinha desempenhando um bom trabalho, eles me disseram que a tal da certificação era obrigatória. Minha prova já está marcada, é exatamente daqui a 8 dias, e no decorrer dos estudos surgiu uma oportunidade para ingressar na área em outra empresa, e estou aqui a 3 meses, estude, cole a cara nos livros que oportunidades aparecem pra quem se esforça, isso é fato. Att, Rafael Mendonça De: J. Laurindo Chiappa jlchia...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br Enviadas: Terça-feira, 15 de Maio de 2012 22:28 Assunto: [oracle_br] Re: Carreira DBA Colega, seguinte : vc até pode achar alguma coisa de DBA iniciante, por exemplo júnior, mas nunca vai haver muitas vagas - em http://www.indeed.com.br , que é um site concentrador de vagas, se vc procurar por DBA JR ORACLE vc vai achar coisa de 2 ou 3, só ... O que pega é que DBA mesmo novato tem uma responsa danada, um comandinho furado e o banco pode ir pro saco, e além disso normalmente as Empresas querem alguém que já usou o banco na prática, que se não administrou pelo menos presenciou alguns desafios do dia a dia, então pra quem quer começar normalmente é mais fácil começar pela área de programação - via de regra há muito mais ofertas em Programação, e vc ganha experiência na utilização do database na prática do dia a dia, que vai ser algo utilíssimo mais tarde, quando vc entrar para a área de DBA ... E essa experiência realmente conta para as Empresas , normalmente... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, carlos silva carlos_nsilva@... escreveu Andei procurando por esses programas mas no momento não encontrei nada. Mas de qualquer forma obrigado pela dica.. Abçs!!! De: Rodrigo Gallacci rodrigo.gallacci@... Para: oracle_br@yahoogrupos.com.br Enviadas: Terça-feira, 15 de Maio de 2012 20:54 Assunto: Re: [oracle_br] Carreira DBA Procure por programas de trainee, sei que não pagam bem, mas é um bom caminho de entrada. Bem vindo à área dos que não dormem, não almoçam, etc...hehheheh Att Rodrigo Gustavo Gallacci DBA Oracle ATG 2012/5/15 carlos silva carlos_nsilva@... ** Boa noite Pessoal, Meu nome é Carlos e gostaria da opinião de profissionais da área de banco de dados Oracle sobre o início da carreira. Me formei na Fiap há aproximadamente 1 ano atrás e conclui o curso de Especialização de banco de dados Oracle (Pós-Graduação). Durante esse tempo venho tentando migrar para área de banco mais está sendo difícil devido ao fato de eu não ter experiência. Sempre trabalhei na área de Produção e meus conhecimentos abrangem Unix, Shell Script, SQL, Automatização de processos, Linguagem SQL, porém a experiência como Administrador de banco de dados eu ainda não tenho. Gostei muito de Oracle e no momento estou estudando para tirar a certificação OCA e gostaria de saber quais passos além desses devo seguir para conseguir uma oportunidade na área. Caso saibam de alguma vaga para Júnior é só falar também.. Obrigado! [As partes desta mensagem que não continham texto foram
Re: [oracle_br] Re: Eventos em espera
de consulta/relatório, a hora de verificar é durante a execução. Pontos a considerar: - tunning da query: vc conhece TUNNING_TASK (dbms_sqltune.create_tuning_task)? Isto pode te ajudar bastante, a analizar sua query, sugerindo indices ou melhor escolha do plano de execução criando um profile otimizado do sql. - Verificar LOCK durante a execução (tem o script UTLLOCKT.sql na área de rdbms/admin). Se está havendo lock entre sessões, uma delas ficará aguardando com a execução parada ... - Verificar V$SESSION_LONGOPS (monitorar query´s demoradas): SELECT TO_CHAR(s.sid) sid, TO_CHAR(s.serial#) serial, s.username, SUBSTR(DECODE(target_desc,NULL,DECODE(target,NULL,opname, concat(opname, concat (' - ',target))), DECODE(target,NULL,concat(opname, concat (' : ',target_desc)), concat(opname, concat (' : ',concat(target_desc, concat (' - ',target)),1,25) Processo , TO_CHAR(start_time,'dd/mm/ hh24:mi:ss') Inicio, TO_CHAR(elapsed_seconds,'999') Tempo(s) , DECODE(sofar, 0, 0, ROUND(elapsed_seconds*(totalwork-sofar)/sofar)) Blocos Processados FROM v$session_longops l, v$session s WHERE sofar totalWork AND s.sid =l.sid; Espero ter ajudado, sei que esta situação é complicadíssima pois já senti na pele. Forte abraço. Ederson Elias DBA Oracle http://br.linkedin.com/pub/ederson-elias/24/8b/8b0 --- Em oracle_br@yahoogrupos.com.br, Rafael Vieira vieira.rafael44@ escreveu Chiappa, gostaria de mais uma ajuda sua... Esse batch rodou ontem pela manhã durante 40 minutos, e a tarde rodou em 8 horas, o pessoal veio argumentar que a aplicação não mudou absolutamente nada, e que queria uma explicação por conta desse tempo, está todo mundo colocando a culpa no database, mas eu não mudei absolutamente nada, não foi feita nenhuma alteração e nenhum ajuste foi feito no database, o argumento do pessoal é que o o mesmo batch que rodou em 40 minutos e a tarde foi colocado novamente em execução e acabou em 8 horas. O meu argumento está sendo que o problema é a query que detectei mal escrita que está dando o problema e que eh executada dezenas de vezes, mas eles voltam a argumentar o tempo que foi rodado antes em 40 minutos, teria algo a acrescentar em defesa do database? Preciso de uma justificativa à dar sobre isso, eu sei que é difícil pra uma pessoa que está de fora e não tem nem noção da infra-estrutura, nem idéia do modelo e de como é o processo, mas se tiver algo a acrescentar, eu agradeceria e MUITO, pois isso vai pra diretoria e preciso de algo para me justificar. O grande problema é que não tenho à quem recorrer além do Blog e dos amigos. De: Rafael Vieira vieira.rafael44@ Para: oracle_br@yahoogrupos.com.br oracle_br@yahoogrupos.com.br Enviadas: Quinta-feira, 10 de Maio de 2012 9:35 Assunto: Re: [oracle_br] Re: Eventos em espera Chiappa, muito obrigado pela ajuda. Realmente, achei muito interessante essa criação da view materializada, realmente essae query busca milhões de linhas todas as vezes que é consultada, e como falei anteriormente ela é rodada centenas de vezes( que segundo o pessoal realmente é necessário). Irei fazer sim esse teste junto com os desenvolvedores, tomara que dê certo, pelo que li sobre o que vc escreveu no prórpio grupo sobre MV's é uma excelente alternativa. Quanto ao paralelismo em tabelas não existe, existe sim paralelismo em índices onde a maioria está setada para 8 que é o total de processadores que nós temos, como esse banco é expecífico para esse BATCH, quando o processo inicia ninguém mais se conecta no banco por questão de concorrência etc... No caso para aumentar a memória para SORT's e HASH's vc se refere a PGA? Eu sou muito novo na área e estou aprendendo aos poucos, eu me encontro em uma situação dificil pois não tem outro DBA para me auxiliar. Então alguns termos as vezes não fica claro para mim. As estatísticas, todas estão sim atualizadas. De: J. Laurindo Chiappa jlchiappa@ Para: oracle_br@yahoogrupos.com.br Enviadas: Quarta-feira, 9 de Maio de 2012 18:10 Assunto: [oracle_br] Re: Eventos em espera Colega, lamento ser o desmancha-prazeres, mas é um Fato que : - não existe um parâmetro, um setting que vc aplique e faça qquer tarefa no banco de dados ficar rápida - como qquer software, se vc mandar o banco de dados fazer uma asneira (exemplo, ler a mesma informação vezes e vezes sem conta, repetidas vezes, ou não usar o melhor construto SQL para uma solicitação, ou acessar um modelo falho, etc ), ele VAI burramente fazer, não tem por onde == Então, a partir do momento que vc identificou um processamento que de cara não parece ser bem-feito E ainda por cima é repetido N vezes, pouco vc tem fazer no banco de dados em si - com certeza, algum tipo de Tuning
Re: [oracle_br] *** Instancia não conecta **
e de repente, novas conexões nãopassaram mais a serem aceitas, nem SQL Plus, nem aplicação, nada. A princípio eu desconfiaria do Listener ou do parameter processes, esse erro apareceu semana passada para mim, e o erro ORA infelizmente não foi tão claro, pois a quantidade de processos v$process estava com o máximo de acordo com o parameter processes. De: Fernando Franquini 'capin' fernando.franqu...@gmail.com Para: oracle_br@yahoogrupos.com.br Enviadas: Quinta-feira, 10 de Maio de 2012 11:17 Assunto: Re: [oracle_br] *** Instancia não conecta ** Qual o status do listener? Veja se o tamanho do log do listener não estourou! 2012/5/10 Robson Muniz (Terra) rmunizso...@terra.com.br Bom dia pessoal. Estamos com um problema em uma base de dados Oracle 10.2.0.4.0 (Windows 2008), que estava funcionando normalmente e de repente, novas conexões não passaram mais a serem aceitas, nem SQL Plus, nem aplicação, nada. As conexões que já estavam ativas, continuam sem problemas. Abaixo o erro apresentado no momento da conexão nova. SQL conn sys as sysdba Enter password: ERROR: ORA-12560: TNS:protocol adapter error Alguém consegue me ajudar com alguma idéia ? Obrigado a todos, Robson. [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 -- Fernando Franquini - Capin Graduado Bacharel em Ciencias da Computação - UFSC Analista de Sistemas e de Banco de Dados / DBA Contatos: 048.9902.4047 - Florianópolis - SC - Brasil http://franquini.wordpress.com/ http://franquini.wordpress.com/ http://br.linkedin.com/in/capin http://wf5.com.br/ [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: Eventos em espera
Milton, obrigado pelo retorno. 1 - OLTP 2 - É manual, não tem um horário certo, mas o pessoal costuma a rodar pela manhã e a tarde, às vezes deixam a noite também. 3 - Nos dois horários apenas um usuário estava conectado pela aplicação rodando o BATCH. 4 - Creio que não, eu não acompanhei o processo inteiro, pois tinha outros fazeres, mas o tempo que acompanhei, não tinha ninguém concorrendo com o BATCH, apenas ele estava sendo executado. De: Milton Bastos Henriquis Jr. miltonbas...@gmail.com Para: oracle_br@yahoogrupos.com.br Enviadas: Quinta-feira, 10 de Maio de 2012 11:35 Assunto: Re: [oracle_br] Re: Eventos em espera 1 - Essa base é OLTP ou OLAP? 2 - Essa Batch roda de quanto em quanto tempo? É automático ou manual? 3 - Quantos usuários tinham conectados e trabalhando ontem de manhã, quando rodou em 40 minutos? E quantos tinham a tarde, quando rodou em 8 horas? 4 - Haviam OUTROS processos concorrentes dessa batch a tarde que não tinham de manhã? 2012/5/10 Rafael Vieira vieira.rafae...@yahoo.com.br ** Chiappa, gostaria de mais uma ajuda sua... Esse batch rodou ontem pela manhã durante 40 minutos, e a tarde rodou em 8 horas, o pessoal veio argumentar que a aplicação não mudou absolutamente nada, e que queria uma explicação por conta desse tempo, está todo mundo colocando a culpa no database, mas eu não mudei absolutamente nada, não foi feita nenhuma alteração e nenhum ajuste foi feito no database, o argumento do pessoal é que o o mesmo batch que rodou em 40 minutos e a tarde foi colocado novamente em execução e acabou em 8 horas. O meu argumento está sendo que o problema é a query que detectei mal escrita que está dando o problema e que eh executada dezenas de vezes, mas eles voltam a argumentar o tempo que foi rodado antes em 40 minutos, teria algo a acrescentar em defesa do database? Preciso de uma justificativa à dar sobre isso, eu sei que é difícil pra uma pessoa que está de fora e não tem nem noção da infra-estrutura, nem idéia do modelo e de como é o processo, mas se tiver algo a acrescentar, eu agradeceria e MUITO, pois isso vai pra diretoria e preciso de algo para me justificar. O grande problema é que não tenho à quem recorrer além do Blog e dos amigos. De: Rafael Vieira vieira.rafae...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br oracle_br@yahoogrupos.com.br Enviadas: Quinta-feira, 10 de Maio de 2012 9:35 Assunto: Re: [oracle_br] Re: Eventos em espera Chiappa, muito obrigado pela ajuda. Realmente, achei muito interessante essa criação da view materializada, realmente essae query busca milhões de linhas todas as vezes que é consultada, e como falei anteriormente ela é rodada centenas de vezes( que segundo o pessoal realmente é necessário). Irei fazer sim esse teste junto com os desenvolvedores, tomara que dê certo, pelo que li sobre o que vc escreveu no prórpio grupo sobre MV's é uma excelente alternativa. Quanto ao paralelismo em tabelas não existe, existe sim paralelismo em índices onde a maioria está setada para 8 que é o total de processadores que nós temos, como esse banco é expecífico para esse BATCH, quando o processo inicia ninguém mais se conecta no banco por questão de concorrência etc... No caso para aumentar a memória para SORT's e HASH's vc se refere a PGA? Eu sou muito novo na área e estou aprendendo aos poucos, eu me encontro em uma situação dificil pois não tem outro DBA para me auxiliar. Então alguns termos as vezes não fica claro para mim. As estatísticas, todas estão sim atualizadas. De: J. Laurindo Chiappa jlchia...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br Enviadas: Quarta-feira, 9 de Maio de 2012 18:10 Assunto: [oracle_br] Re: Eventos em espera Colega, lamento ser o desmancha-prazeres, mas é um Fato que : - não existe um parâmetro, um setting que vc aplique e faça qquer tarefa no banco de dados ficar rápida - como qquer software, se vc mandar o banco de dados fazer uma asneira (exemplo, ler a mesma informação vezes e vezes sem conta, repetidas vezes, ou não usar o melhor construto SQL para uma solicitação, ou acessar um modelo falho, etc ), ele VAI burramente fazer, não tem por onde == Então, a partir do momento que vc identificou um processamento que de cara não parece ser bem-feito E ainda por cima é repetido N vezes, pouco vc tem fazer no banco de dados em si - com certeza, algum tipo de Tuning no processo vai ser inescapável E que fique Claro, esse Tuning tanto pode envolver alterações no SQL envolvido (o que é comum), quanto também pode envolver no modelo (por exemplo, de-normalizando alguns pontos, criando/removendo índices, utilizando GTT sendo inseridas em APPEND-MODE para separar os dados, etc), quanto pode também envolver uso dos recursos do banco de dados para diminuir o I/O sendo feito (exemplo, particionamento da informação, uso de View
Re: [oracle_br] Re: Tablespace TEMP Problema Aplicação
Bem, aqui usamos um servidor de aplicação separado mesmo, todo mundo conecta no server de aplicação através da aplicação para então se conectar ao sgbd. Usamos aqui o drive Oracle Thin. Diminuímos o pool de conexões e colocamos o mínimo 1 e o máximo 5, e o usuário continua com várias sessões abertas, hoje pela manhã ao rodar a aplicação uma usuária estava com 100 sessões abertas e das 100 em torno de 35 ativas. SELECT ||TO_CHAR(s.sid)||','||to_char(s.serial#)|| SID,SERIAL#, p.spid, s.username, s.osuser, s.server, NVL(s.module,s.program) program, NVL(s.machine,s.terminal) machine, s.last_call_et FROM v$session s, v$process p WHERE s.paddr = p.addr AND s.username IS NOT NULL AND s.status = 'ACTIVE' ORDER BY s.last_call_et DESC '226,3393' 20500 SYSTEM xuxa DEDICATED JDBC Thin Client Gsan240 10 '7,2247' 20502 SYSTEM xuxa DEDICATED JDBC Thin Client Gsan240 3 '81,3397' 20580 SYSTEM xuxa DEDICATED JDBC Thin Client Gsan240 3 ... Quanto ao SQL Developer, um usuário, estava com várias sessões abertas pelo SQL Developer fui na máquina dele e ele estava com apenas um worksheet. O caso do SQL Developer é raro de acontecer, mas pela aplicação acontece todos os dias, todas as horas. O outro amigo, me perguntou do Alert.log, está tudo perfeito, nada consta no Alert.log sobre o ocorrido. Att, De: J. Laurindo Chiappa jlchia...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br Enviadas: Segunda-feira, 7 de Maio de 2012 18:29 Assunto: [oracle_br] Re: Tablespace TEMP Problema Aplicação Acho que vale a pena se estender um pouco : sim, tipicamente, numa aplicação WEB, realmente os usuários finais ** nunca ** se conectam diretamente ao banco de dados, há a figura do POOL DE CONEXÕES , o qual é um software que faz uma ponte entre o banco de dados e os usuários finais... Normalmente o pool de conexões quando startado vai até o banco de dados , abre N sessões no banco de dados, e as mantém abertas, aí quando um usuário final pede para acessar o database, na verdade ele o pede para o pool de conexões, e aí sim é o pool de conexões que internamente marca uma dessas sessões de banco como em uso e manda os comandos que recebeu do usuário final para o database, recebe a resposta do database, e é o pool ainda que desmarca a sessão internamente em seus controles como liberada a manda a resposta para o usuário final Ou seja, nesse caso o banco de dados só enxerga até o pool de conexões, para o database é o pool que é o cliente, o database nesse cenário comum NUNCA enxerga o usuário final, pois esse está escondido atrás do pool, nunca fisicamente esse usuário final conecta/chega até o servidor de database, é sempre o homem no meio (o connection pool) que fica entre o usuário final e o database... SE não é isso que está acontecendo, tá bem patente que a aplicação web lá da pessoa que perguntou não está usando o cenário comum acima descrito : PODE ser que ela não tenha pool de conexão (de repente é uma intranet, com usuários já pré-definidos, nada impede, a gente não sabe)... OU ainda ela está usando o pool de conexões nativo do database 11g, que NÂO demanda software externo... Quanto à questão de servidor de Aplicação, sim, o comum é este ser uma máquina externa, mas nada impede de vc ter o mesmo servidor do banco como app server, E até mesmo vc tem a opção de ter um app server INTERNO, entro do próprio database : o APEX, por exemplo, é uma tool de programação que pode funcionar assim, com o database atuando como app server, aí o browser do usuário final sim, conectaria diretamente no computador servidor de banco de dados... Vamos ver o que o colega lá responde/confirma, mas Provavelmente deve ser alguma coisa nesta linha... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Milton Bastos Henriquis Jr. miltonbastos@... escreveu Meu e-mail abaixo me remete à pergunta: - A v$session eu consigo ver a conexão do usuário FINAL? Pois eu pensava que apareceria conexões somente do servidor de aplicação, e que não aparecesse o client final. 2012/5/7 Milton Bastos Henriquis Jr. miltonbastos@... Eu não consegui entender uma coisa. O Rafael me mandou um print screen aqui em PVT, com o resultado da query mostrando o número de sessões e disse que é uma aplicação WEB. Rafael: aplicação Web deveria ter servidor de aplicação. Servidor de aplicação abre várias conexões com banco de dados (todas conexões partem da mesma máquina, que é a máquina onde está o servidor de aplicações, obviamente). No campo OSUSER está com o nome: lizandra Barreto. Essa Lizandra está conectada na MESMA máquina do servidor de aplicação então? Esse é o OSUSER usado pelo servidor de aplicação? Pois nunca vi uma aplicação WEB abrir conexão
Re: [oracle_br] Re: Tablespace TEMP Problema Aplicação
Bom dia a todos. Vitor, peguei um caso excelente para fazer o que você me pediu. Detectei uma sessão ativa pelo SQL Developer com o mesmo usuário, foram 14 sessões ativas '99,24807' 21229 SYSTEM Xuxa DEDICATED SQL Developer Xuxa-PC 2028 '44,25417' 21209 SYSTEM Xuxa DEDICATED SQL Developer Xuxa-PC 2028 ... Fui na máquina do usuário Xuxa e peguei a query que estava sendo rodada, fiz o select em na view DBA_INDEXES, pegando as tabelas que estavam sendo executadas nessa query e me deparei com a seguinte situação: SELECT DEGREE, index_name, table_name FROM DBA_INDEXES WHERE OWNER IN (...,...,...) AND TABLE_NAME IN (...,..,..) O resultado me trouxe na coluna DEGREE o valor de 16 para 90% dos índices que foram retornados na consulta, na view DBA_TABLES segui o mesmo raciocínio e cada valor do DEGREE só me mostrou 1. Então concluimos que o paralelismo está sendo causado por conta dos índices? O que fazer para solucionar esse problema? Aumento o valor do parâmetro process para mais usuários que necessitam da conexão se conectarem? Ou podemos diminuir essa quantidade de paralelismo? Vocês poderiam me dá alguma alternativa? Pois aqui na empresa o único DBA Oracle sou eu, e comecei a poucos meses esse novo desafio, obrigado. De: J. Laurindo Chiappa jlchia...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br Enviadas: Terça-feira, 8 de Maio de 2012 10:55 Assunto: [oracle_br] Re: Tablespace TEMP Problema Aplicação Mais que isso, de repente pode ser paralelismo via HINT de PARALLEL, aí o grau de paralelismo definido nos objetos pode ser bypassado... Acho que o ponto primeiro que o colega lá tem que responder pra gente é o que eu já tinha pedido na minha primeira msg, ie, IDENTIFICAR o que são essas sessões sendo abertas E rodar a consulta que mostra quais os parallel slaves presentes, já mostrada... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Andre Santos andre.psantos.ti@... escreveu Rafael Você viu se tem algo de paralelismo nessas operações (via hint ou definido nas tabelas)? [ ] André Em 8 de maio de 2012 09:32, Rafael Vieira vieira.rafael44@...escreveu: ** Bem, aqui usamos um servidor de aplicação separado mesmo, todo mundo conecta no server de aplicação através da aplicação para então se conectar ao sgbd. Usamos aqui o drive Oracle Thin. Diminuímos o pool de conexões e colocamos o mínimo 1 e o máximo 5, e o usuário continua com várias sessões abertas, hoje pela manhã ao rodar a aplicação uma usuária estava com 100 sessões abertas e das 100 em torno de 35 ativas. SELECT ||TO_CHAR(s.sid)||','||to_char(s.serial#)|| SID,SERIAL#, p.spid, s.username, s.osuser, s.server, NVL(s.module,s.program) program, NVL(s.machine,s.terminal) machine, s.last_call_et FROM v$session s, v$process p WHERE s.paddr = p.addr AND s.usernameIS NOT NULL AND s.status = 'ACTIVE' ORDER BY s.last_call_et DESC '226,3393' 20500 SYSTEM xuxaDEDICATED JDBC Thin Client Gsan240 10 '7,2247'20502 SYSTEM xuxaDEDICATED JDBC Thin Client Gsan240 3 '81,3397' 20580 SYSTEM xuxaDEDICATED JDBC Thin Client Gsan240 3 ... Quanto ao SQL Developer, um usuário, estava com várias sessões abertas pelo SQL Developer fui na máquina dele e ele estava com apenas um worksheet. O caso do SQL Developer é raro de acontecer, mas pela aplicação acontece todos os dias, todas as horas. O outro amigo, me perguntou do Alert.log, está tudo perfeito, nada consta no Alert.log sobre o ocorrido. Att, De: J. Laurindo Chiappa jlchiappa@... Para: oracle_br@yahoogrupos.com.br Enviadas: Segunda-feira, 7 de Maio de 2012 18:29 Assunto: [oracle_br] Re: Tablespace TEMP Problema Aplicação Acho que vale a pena se estender um pouco : sim, tipicamente, numa aplicação WEB, realmente os usuários finais ** nunca ** se conectam diretamente ao banco de dados, há a figura do POOL DE CONEXÕES , o qual é um software que faz uma ponte entre o banco de dados e os usuários finais... Normalmente o pool de conexões quando startado vai até o banco de dados , abre N sessões no banco de dados, e as mantém abertas, aí quando um usuário final pede para acessar o database, na verdade ele o pede para o pool de conexões, e aí sim é o pool de conexões que internamente marca uma dessas sessões de banco como em uso e manda os comandos que recebeu do usuário final para o database, recebe a resposta do database, e é o pool ainda que desmarca a sessão internamente em seus controles como liberada a manda a resposta para o usuário final Ou seja, nesse caso o banco de dados só enxerga até o pool de conexões, para o database é o pool que é o cliente, o database nesse cenário comum NUNCA enxerga o
Re: [oracle_br] Permissao sobre tabela
Rapha, seguinte... O usuário B não sabe que a TAB1 está no schema A, quem sabe disso é o sgbd beleza? Ou seja, se vc for executar o comando, ele vai dizer que essa tabela não existe. Ou seja, ele não sabe. Pois se você estiver com o usuário B executando a trigger o Oralce irá acreditar que essa tabela por não ter o schema na frente, pertence ao usuário B, quando ele pesquisar e vê que essa tabela não tem no schema logado, ele verifica se existe algum sinonimo público, ou privado para o usuário B, caso não exista irá dá erro. De: Raphael Franco pha...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br oracle_br@yahoogrupos.com.br Enviadas: Quinta-feira, 3 de Maio de 2012 12:17 Assunto: Re: [oracle_br] Permissao sobre tabela Reformulando, Como que o usuário B que tem a trigger sabe que a tabela TAB1 está no schema A, se não existe sinonimo e nem referencia do usuário A na trigger ? O que estou tentando entender é que na trigger deveria estar A.TAB1 e está TAB1. att. Raphael De: Rafael Vieira vieira.rafae...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br oracle_br@yahoogrupos.com.br Enviadas: Quinta-feira, 3 de Maio de 2012 12:05 Assunto: Re: [oracle_br] Permissao sobre tabela Como que o Oracle sabe que esse objeto pertence ao schema A ??? Consultei a dba_synonyms e nada de TAB1, consultei a dba_objects e somente tem 1 objetos com o nome TAB1 owner A. Você mesmo respondeu sua pergunta. De: Raphael Franco pha...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br oracle_br@yahoogrupos.com.br Enviadas: Quinta-feira, 3 de Maio de 2012 11:04 Assunto: [oracle_br] Permissao sobre tabela Senhores, Tenho um schema A que tem a tabela TAB1 e o schema B que tem a trigger TRIG1. Essa é a parte da trigger que tenho uma duvida: TRIGGER B.TRIG1 BEFORE INSERT ON TAB1 REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW ... Pelo que eu sei eu teria que referenciar o nome do schema na tabela TAB1, por exemplo: A.TAB1. Acontece que não esta referenciado (confome mostrei acima), não existe sinonimo como nome TAB1 e a trigger está VALID. Como que o Oracle sabe que esse objeto pertence ao schema A ??? Consultei a dba_synonyms e nada de TAB1, consultei a dba_objects e somente tem 1 objetos com o nome TAB1 owner A. att. Raphael [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] [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Update com caracteres especiais
HAhaha, realmente não li a parte da trigger que ele possui, se a trigger for pequena, cole aqui pra gente analisar. Valeu. De: Milton Bastos Henriquis Jr. miltonbas...@gmail.com Para: oracle_br@yahoogrupos.com.br Enviadas: Quinta-feira, 26 de Abril de 2012 9:55 Assunto: Re: [oracle_br] Update com caracteres especiais Rafael, como é que vc testou na sua base se vc não tem o código da trigger dele?? rs On Thu, Apr 26, 2012 at 9:44 AM, Rafael Vieira vieira.rafae...@yahoo.com.br wrote: ** Amigo, eu fiz o mesmo teste em minha base e funcionou normalmente, já realizou o teste pelo sql plus? Acontece o mesmo problema? De: Jales Jose Moraes malphig...@yahoo.com.br Para: grupo_oracle oracle_br@yahoogrupos.com.br Enviadas: Quinta-feira, 26 de Abril de 2012 9:26 Assunto: [oracle_br] Update com caracteres especiais Bom dia, Pessoal quando executo um update em um campo texto colocando algum caracteres especial, há uma trigger (after) em que remove estes caracteres, porém se executo novamente, o caractere ja é inserido. Alguém conhece a explicação para isso? Segue o exemplo. 1. UPDATE sms.s_incorpora SET DS_social = 'TESTE' WHERE S_STATUS = 'N' AND nu_seq_INCORP = '00058' ; 2. SELECT * FROM sms.s_incorpora WHERE S_STATUS = 'N' AND nu_seq_INCORP = '00058'; 3. UPDATE sms.s_incorpora SET DS_social = = 'TESTE.VERIFICAR O PONTO' WHERE S_STATUS = 'N' AND nu_seq_INCORP = '00058'; 4. SELECT * FROM sms.s_incorpora WHERE S_STATUS = 'N' AND nu_seq_INCORP = '00058'; 5. UPDATE sms.s_incorpora SET DS_social = 'TESTE.VERIFICAR O PONTO' WHERE S_STATUS = 'N' AND nu_seq_INCORP = '00058'; 6. SELECT * FROM sms.s_incorpora WHERE S_STATUS = 'N' AND nu_seq_INCORP = '00058'; No passo 3 é inserido o 'ponto', depois ao fazer o select ele é removido, ja no passo 5 efetuo novamente o 'ponto' e depois faço o select novamente o 'ponto' ja consta. Não sei se a explicação seria porque está na mesma sessão (via Navigator); Abraços... [As partes desta mensagem que não continham texto foram removidas] [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: RES: [oracle_br] Ajuda básica.
Retira o segundo BEGIN De: Ulisses usl...@gmail.com Para: oracle_br@yahoogrupos.com.br Enviadas: Quinta-feira, 26 de Abril de 2012 11:40 Assunto: RES: [oracle_br] Ajuda básica. Prezado Thiago, bom dia! Agora a mensagem mudou. :) CREATE TRIGGER TG_TBTAREFA_NEW BEFORE INSERT ON TBTAREFA FOR EACH ROW BEGIN SELECT MAX(CONTROLE) INTO :NEW.ID_ATIVIDADE FROM TBPADRAO_ATIVIDADE WHERE ATIVIDADE = :NEW.ATIVIDADE; IF :NEW.ID_ATIVIDADE IS NULL THEN BEGIN INSERT INTO TBPADRAO_ATIVIDADE (ATIVIDADE,CLASSE) VALUES (:NEW.ATIVIDADE,:NEW.CLASSE); SELECT MAX(CONTROLE) INTO :NEW.ID_ATIVIDADE FROM TBPADRAO_ATIVIDADE WHERE ATIVIDADE = :NEW.ATIVIDADE; END IF; END; Erro(15,7): PLS-00103: Encontrado o símbolo IF quando um dos seguintes símbolos era esperado: ; um identificadorum identificador delimitado por aspas duplas Estou usando a versão 10g. Obrigado pela ajuda. Ulisses -Mensagem original- De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em nome de Thiago Sgobe Enviada em: quinta-feira, 26 de abril de 2012 11:16 Para: oracle_br@yahoogrupos.com.br Assunto: Re: [oracle_br] Ajuda básica. Bom dia Ulisses, faltou voce fechar a clausula IF. IF (...) END IF; []`s 2012/4/26 Ulisses usl...@gmail.com ** Bom dia! Alguém poderia informar o que posso estar fazendo de errado nesse Trigger, visto que ele funciona no Firebird, porém apresenta erro no Oracle. CREATE TRIGGER TG_TBTAREFA_NEW BEFORE INSERT ON TBTAREFA FOR EACH ROW BEGIN SELECT MAX(CONTROLE) INTO :NEW.ID_ATIVIDADE FROM TBPADRAO_ATIVIDADE WHERE ATIVIDADE = :NEW.ATIVIDADE; IF :NEW.ID_ATIVIDADE IS NULL THEN BEGIN INSERT INTO TBPADRAO_ATIVIDADE (ATIVIDADE,CLASSE) VALUES (:NEW.ATIVIDADE,:NEW.CLASSE); SELECT MAX(CONTROLE) INTO :NEW.ID_ATIVIDADE FROM TBPADRAO_ATIVIDADE WHERE ATIVIDADE = :NEW.ATIVIDADE; END; END; PLS-00103: Encontrado o símbolo ; quando um dos seguintes símbolos era esperado: if Obrigado. Ulisses -- *Thiago Sgobe *DBA - Certified Oracle/ITIL [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] Material para certificação
Eu te indicaria os livros Primeira prova: ORACLE DATABASE 11G SQL DOMINE SQL E PL/SQL NO BANCO DE DADOS ORACLE ou OCA ORACLE DATABASE 11G - FUNDAMENTOS I SQL MANUAL DO EXAME (1ZO-051) OCA ORACLE DATABASE 11G - ADMINISTRAÇAO I (GUIA DO EXAME 1Z0-052) ele tem alguns erros de tradução, mas são poucos, tem um que é um absurdo que fala que o DBWn grava de 3 em 3 segundos, enquanto é o LGWr que faz isso, então se desconfiar de algo, use o CD que vem com ele com o livro em inglês para tirar a dúvida... Estou estudando por ele, e minha prova já está marcada... Quanto a prova, a primeira de SQL tem em português sim, mas o restante não, a maioria das pessoas falam que a tradução da prova é mal feita e que não vale apena, eu não posso te dizer pq nunca vi. De: Milton Bastos Henriquis Jr. miltonbas...@gmail.com Para: oracle_br@yahoogrupos.com.br Enviadas: Quinta-feira, 26 de Abril de 2012 14:46 Assunto: Re: [oracle_br] Material para certificação Todas informações sobre Certificação Oracle: http://certificacaobd.com.br Abraço! On Thu, Apr 26, 2012 at 2:44 PM, José Aparecido Fazolin Ferres joseapfer...@hotmail.com wrote: ** Onde acho bons materiais em português para a certificação DBA OCA?gostaria de saber se as provas são em português ou inglês. alguém já fez? [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]
Re: [oracle_br] Material para certificação
Verdade Miltão, depois que personvue entrou, retirou provas em inglês De: Milton Bastos Henriquis Jr. miltonbas...@gmail.com Para: oracle_br@yahoogrupos.com.br Enviadas: Quinta-feira, 26 de Abril de 2012 15:40 Assunto: Re: [oracle_br] Material para certificação Se não me engano não tem mais a prova de SQL em português. Todas as provas somente em inglês (até tem outros idiomas, mas bem longe de português e espanhol). A não ser que conheça Mandarim rs On Thu, Apr 26, 2012 at 3:31 PM, Rafael Vieira vieira.rafae...@yahoo.com.br wrote: ** Eu te indicaria os livros Primeira prova: ORACLE DATABASE 11G SQL DOMINE SQL E PL/SQL NO BANCO DE DADOS ORACLE ou OCA ORACLE DATABASE 11G - FUNDAMENTOS I SQL MANUAL DO EXAME (1ZO-051) OCA ORACLE DATABASE 11G - ADMINISTRAÇAO I (GUIA DO EXAME 1Z0-052) ele tem alguns erros de tradução, mas são poucos, tem um que é um absurdo que fala que o DBWn grava de 3 em 3 segundos, enquanto é o LGWr que faz isso, então se desconfiar de algo, use o CD que vem com ele com o livro em inglês para tirar a dúvida... Estou estudando por ele, e minha prova já está marcada... Quanto a prova, a primeira de SQL tem em português sim, mas o restante não, a maioria das pessoas falam que a tradução da prova é mal feita e que não vale apena, eu não posso te dizer pq nunca vi. De: Milton Bastos Henriquis Jr. miltonbas...@gmail.com Para: oracle_br@yahoogrupos.com.br Enviadas: Quinta-feira, 26 de Abril de 2012 14:46 Assunto: Re: [oracle_br] Material para certificação Todas informações sobre Certificação Oracle: http://certificacaobd.com.br Abraço! On Thu, Apr 26, 2012 at 2:44 PM, José Aparecido Fazolin Ferres joseapfer...@hotmail.com wrote: ** Onde acho bons materiais em português para a certificação DBA OCA?gostaria de saber se as provas são em português ou inglês. alguém já fez? [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] -- 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] Re: Imp / Exp somente da estrutura da tabela
Eu particulamente não gosto de exportar dados via SQL DEVELOPER, pois no começo me gerou uma grande dor de cabeça com campos do tipo number. Números quebrados separados por vírgula fazia com que o INSERT percebesse a separação de casas, dando erro, inserindo mais colunas que a tabela possuia, até achar o comando alter session set nls_numeric_characters = '.,'; trocando assim a vírgula pelo ponto. MAs isso vai de cada um, o Oracle te dá uma grande variedade de opção nesse quesito. De: J. Laurindo Chiappa jlchia...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br Enviadas: Quarta-feira, 25 de Abril de 2012 10:51 Assunto: [oracle_br] Re: Imp / Exp somente da estrutura da tabela Sim, verdade verdadeira Ederson : como eu tinha colocado na minha última resposta sim, se vc tiver a permissão de instalar e usar, diversas tools (tanto grátis, como da própria Oracle o SQL Developer) e pagas (como TOAD, PL/SQL Developer e outras) te dão a opção de gerar exportar DDLs via interface gráfica, o que talvez seja mais simples se a pessoa tem pouca experiência... Normalmente essas tools não tem muitas opções de personalização do script gerado, mas mesmo que a pessoa tenha que editar um pouquinho o script gerado, pode ser mais fácil do que as outras opções, sim... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, ederson2001br ederson2001br@... escreveu Bom dia a todos, Permitam-me colaborar com mais uma opção. Márcio, para você que está iniciando, uma forma bem simples de fazer o que deseja é usando o ORACLE SQLDEVELOPER, uma ferramenta gratuita da Oracle que você baixa em http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html?ssSourceSiteId=ocomen O SqlDeveloper é em JAVA e pode ser rodado tanto em Windows quanto Linux. Com ela, você pode fazer facilmente a operação de gerar um script SQL contendo o que você precisa, usando a interface gráfica. Veja no exemplo deste site, didático e direto ao ponto: http://perumal.org/sql-developer-database-export-wizard-to-export-ddl-and-data-as-dml/ Ederson Elias DBA Oracle http://br.linkedin.com/pub/ederson-elias/24/8b/8b0 --- Em oracle_br@yahoogrupos.com.br, Marcio MM marcio@ escreveu Bom dia, Sou novo no ramo e gostaria de importar a estrutura de uma base de dados, sem os dados de um banco Oracle 10, para testes em um Oracle 10 XE, só que resulta em um erro de restrição de tamanho. A pergunta é, seria possível exportar somente as estruturas e importar as tabelas com o tamanho mínimo para que a base suporte a criação das mesmas ? Essa base conta hoje com 856 tabelas e o tamanho da Tablespace 42gb, existem algumas tabelas com mais de 100 milhões de registros, mais não quero os dados, somente a estrutura (tabelas/triggers/procedures/functions/packages/view). Marcio Massaki [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 ora-00600
Obrigado a todos pela ajuda. Vou colocar algumas características do meu ambiente para ficar mais claro para vocês. SO: OEL 6.1, versão do Oracle 11.2.0.2.0 Comando feito pelo impdp por mim: impdp dbaxuxa/ schemas=XUXA1,XUXA2,XUXA3,XUXA4,XUXA5,XUXA6,XUXA7,XUXA8,XUXA9,XUXA10,XUXA11,XUXA12 ,XUXA13 ,XUXA14 ,XUXA15 directory=BACKUP_RESTORE_XUXA dumpfile=arquivo_dump_xuxa.dmp logfile=arquivo_log_xuxa.log STATUS=120 PARALLEL=3 CASUALMENTE no seu primeiro banco em y havia dados das tabelas TABELA_XUXA, TABELA_XUXA2, TABELA_XUXA3 (que por isso se corromperam) , enquanto no seu segundo banco de teste em y havida um dado da tabela TABELA_XUXA_LOUCA , que por isso se corrompeu ... Não é impossível cenário do tipo quando vc tem corrupção num dump file... Claro que você deu uma alternativa do que poderia ter acontecido, mas como eu não havia dito, o meu banco y estava limpo, tinha acabado de criar, ou seja, não havia dados nessa tabela. O que vou tentar fazer é pegar o comando do expdp gerado pelo DBA da empresa pra qual prestamos serviços e pedir o comando executado, pois é difícil conseguir alguma coisa dessa pessoa, mas agradeço a vocês pela ajuda, eu estou meio que perdido, pois no momento presente não temos como abrir chamado para Oracle. Valeu pessoal. De: José Laurindo jlchia...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br Enviadas: Quinta-feira, 19 de Abril de 2012 18:03 Assunto: [oracle_br] Re: Erro ora-00600 Colega, até pode acontecer que o arquivo esteja corrompido e que (digamos) a corrupção seja nos bytes de indicação de gravação de dados, aí ao invés dele estar (digamos) colocando os dados na posição x correta do bloco esteja colocando num a posição y errada, e CASUALMENTE no seu primeiro banco em y havia dados das tabelas TABELA_XUXA, TABELA_XUXA2, TABELA_XUXA3 (que por isso se corromperam) , enquanto no seu segundo banco de teste em y havida um dado da tabela TABELA_XUXA_LOUCA , que por isso se corrompeu ... Não é impossível cenário do tipo quando vc tem corrupção num dump file... A grande questão que eu vejo aí é realmente ** CONFIRMAR ** se essa corrupção está vindo do banco-origem lá do seu cliente OU se está sendo introduzida nos seus binários, OU se está sendo introduzida por manipulação errada Começando do fim , COMO vc está transferindo o dump file pra sua máquina , vc está fazendo FTP ou sftp ou algo similar ? Se sim, caso vc NÂO esteja usando modo binário, vc CERTAMENTE está corrompendo esse arquivo, os dump files NECESSARIAMENTE TEM QUE SER transferidos como binários Se não foi isso, provar fica mais difícil : pra provar ou desprovar que a origem é lá, isso vai envolver o teu cliente fazer um exp com a opção de log E verificar que no log não apareceu nada, ele mesmo tentar um imp desse dump pra outro schema/database dele, novamente com log... Apenas se realmente não houve manipulação errada de sua parte, E lá no banco-origem dele nada de errado apareceu logado nem no exp nem no imp do dump gerado. aí chega-se à conclusão que o problema é no seu binário, e há sim diversas possibilidades de ser : por exemplo, a nota metalink ORA-600 [Klaprs_11] On Impdp Using Dumpfile Exported with COMPRESSION=ALL [ID 739849.1] mostra um bug presente até o 11.1.0.6 que causava isto ao importar dados comprimidos, mas outros bugs são possíveis E no caso, como o erro é GENÉRICO (ORA-600), não tem muito jeito, se vc desprovou que a corrupção seja de lá, vc Vai Ter Que abrir um chamado no SUporte Oracle para checar as possibilidades todas... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, vieira.rafael44 vieira.rafael44@... escreveu Antes de criar esse tópico, vi que um cidadão passou pelo mesmo problema que eu, e o chippa disse que era questão de arquivo corrompido, ou coisa parecida, beleza, até aí tudo bem, mas segue a meu cenário e o problema: Toda semana vem um dump(expdp) de uma empresa que o DBA de LÁ manda para nós( por um HD Externo) atualizarmos a nossa base aqui, esse dump está ocorrendo o seguinte problema: ORA-31693: Table data object SCHEMA_XUXA.TABELA_XUXA failed to load/unload and is being skipped due to error: ORA-02354: error in exporting/importing data ORA-39776: fatal Direct Path API error loading table SCHEMA_XUXA.TABELA_XUXA ORA-00600: internal error code, arguments: [klaprs_11], [60], [2], [4883623], [], [], [], [], [], [], [], [] BELEZA (Y), até aí tudo bem, ocorreu esse tipo de erro em 3 tabelas: TABELA_XUXA, TABELA_XUXA2, TABELA_XUXA3 no mesmo schema SCHEMA_XUXA O DBA de lá, jogou o problema aqui, dizendo que meu .dbf estava corrompido etc, dizendo que a versao nao era a mesma, e verifiquei que a versao de lá 11g é igual a minha inclusive mesmo patch. O que aconteceu foi o seguinte, eu em OUTRO servidor, criei outro banco, outra instancia e rodei o dump novamente para ver o que acontecia, e aí me deu o seguinte erro:
Re: [oracle_br] Duvida Tablespace BigFile x SmallFile
Bruno, o ideal seria vc usar realmente vários datafiles em um tablespace, vc deveria pelo menos limitar o tamanho do seu datafile, para um número muito menor que 32GB, já imaginou fazer um backup de um datafile de 32GB? Recomenda-se usar datafiles menores para uma possivel manutençao, isso ira te ajudar a ser mais proativo. Abs. De: Emerson Martins emersonmarti...@gmail.com Para: oracle_br@yahoogrupos.com.br Enviadas: Sexta-feira, 20 de Abril de 2012 13:20 Assunto: Re: [oracle_br] Duvida Tablespace BigFile x SmallFile Pois é Milton e Marcio. Ele não especificou se era espaço em disco ou o espaço do próprio datafile que estava acabando.Realmente podemos ter n datafiles para uma tablespace. Emerson Martins DBA Jr Em 20 de abril de 2012 13:15, Milton Bastos Henriquis Jr. miltonbas...@gmail.com escreveu: Bruno, vc pode ter até 1022 Datafiles por Tablespace. Vc disse que está com problema de falta de espaço, pois o datafile está quase atingindo 32GB. Mas quantos datafiles vc tem nessa tablespace? Vc já tem todos esses 1022 datafiles com 32GB cada um? On Fri, Apr 20, 2012 at 12:44 PM, Bruno Ambrosio brunoambro...@yahoo.com.br wrote: ** Pessoal, Alguem poderia por favor me esclarecer uma duvida pertinente que estamos aqui onde trabalho? Temos um Oracle 10g, com tablespace smallfile e blocos de 8k, sabemos que o tamanho maximo dos datafiles é de 32Gb e este espaço esta acabando, como podemos aumentar o espaço? Consigo trabalhar com bigfile e smallfile em um mesmo BD? Posso simplesmente criar uma tablespace BIGFILE e apontar os datafiles para esta nova tablespace? Abs., Bruno Ambrosio [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] [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Atualização Patch
PEssoal, instalei o patch e passei da versão 11.1 para a versão 11.2. Ao executar o comando abaixo, para verificar se tudo ocorreu bem, me deparei com o seguinte erro: /u01/app/oracle/product/11.2.0/dbhome_1/OPatch/opatch query -all |more versão do Installer Temporário Oracle 11.2.0.3.0 Copyright (c) 2012, Oracle Corporation. Todos os direitos reservados. Oracle Home : /u01/app/oracle/product/11.2.0/dbhome_1 Central Inventory : /u01/app/oraInventory from : /u01/app/oracle/product/11.2.0/dbhome_1/oraInst.loc OPatch version : 11.2.0.3.0 OUI version : 11.2.0.1.0 Log file location : /u01/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/opatch2012-04-13_11-26-04AM_1.log Falha ao carregar o objeto de patch. As possÃveis causas são: O caminho especificado não é um shiphome de Patch temporário Os arquivos de metadados não foram encontrados na área de patch Local do patch = /home/oracle Detalhes = Input metadata files are missing. Patch Location /home/oracle doesn't point to a valid patch area. OPatch failed with error code 75 Alguém pode ajudar com uma possível solução para sanar esse erro? De: Milton Bastos Henriquis Jr. miltonbas...@gmail.com Para: oracle_br@yahoogrupos.com.br Enviadas: Sexta-feira, 13 de Abril de 2012 9:46 Assunto: Re: [oracle_br] Atualização Patch http://nervinformatica.com.br/blog/2012/04/01/instalando-o-patch-13343438-11-2-0-3-1-patch-set-update/ On Fri, Apr 13, 2012 at 9:38 AM, vieira.rafael44 vieira.rafae...@yahoo.com.br wrote: ** Pessoal, bom dia. Estou pela primeira vez atualizando o opatch do Oracle, acabei de isntalar o Oracle 11g release 2 em um novo servidor aonde não possui nenhuma instância e nenhum banco criado, servidor linux OEL 6.1. Gostaria de alguma documentação que me ajudasse a atualizar, gostaria de saber qual comando no linux que faço para saber qual é a versão do meu patch do Oracle e qual a última versão do patch que hoje o Oracle possui. -- 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] Re: Atualização Patch
Chippa, Milton e aos demais obrigado pela ajuda... Todas as variáveis estão corretas, descobri porque o caminho /home/oracle estava aparecendo, é porque estava executando o comando do linux no /home, então me direcionei ao diretório $ORACLE_HOME para executar o seguinte comando novamente. ( O que fiz até agora foi pegar a pasta OPatch 11.2 (p6880880_112000_Linux-x86-64.zip) e descompactar a pasta OPatch dentro do meu diretório $ORACLE_HOME e o OPatch antigo 11.1 renomeei para a pasta OPatchBackup). Depois disso executei o comando novamente: [oracle@gsan238 dbhome_1]$ /u01/app/oracle/product/11.2.0/dbhome_1/OPatch/opatch query -all |more versão do Installer Temporário Oracle 11.2.0.3.0 Copyright (c) 2012, Oracle Corporation. Todos os direitos reservados. Oracle Home : /u01/app/oracle/product/11.2.0/dbhome_1 Central Inventory : /u01/app/oraInventory from : /u01/app/oracle/product/11.2.0/dbhome_1/oraInst.loc OPatch version : 11.2.0.3.0 OUI version : 11.2.0.1.0 Log file location : /u01/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/opatch2012-04-13_11-50-10AM_1.log Falha ao carregar o objeto de patch. As possÃveis causas são: O caminho especificado não é um shiphome de Patch temporário Os arquivos de metadados não foram encontrados na área de patch Local do patch = /u01/app/oracle/product/11.2.0/dbhome_1 Detalhes = Input metadata files are missing. Patch Location /u01/app/oracle/product/11.2.0/dbhome_1 doesn't point to a valid patch area. OPatch failed with error code 75 De: José Laurindo jlchia...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br Enviadas: Sexta-feira, 13 de Abril de 2012 11:37 Assunto: [oracle_br] Re: Atualização Patch Local do patch como /home/oracle ??? Me parece que vc não tem as variáveis ORACLE_SID, ORACLE_HOME e PATH setadas corretamente para o ambiente, plz corrija-as ... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Rafael Vieira vieira.rafael44@... escreveu PEssoal, instalei o patch e passei da versão 11.1 para a versão 11.2. Ao executar o comando abaixo, para verificar se tudo ocorreu bem, me deparei com o seguinte erro: /u01/app/oracle/product/11.2.0/dbhome_1/OPatch/opatch query -all |more versão do Installer Temporário Oracle 11.2.0.3.0 Copyright (c) 2012, Oracle Corporation. Todos os direitos reservados. Oracle Home : /u01/app/oracle/product/11.2.0/dbhome_1 Central Inventory : /u01/app/oraInventory from : /u01/app/oracle/product/11.2.0/dbhome_1/oraInst.loc OPatch version : 11.2.0.3.0 OUI version : 11.2.0.1.0 Log file location : /u01/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/opatch2012-04-13_11-26-04AM_1.log Falha ao carregar o objeto de patch. As possÃveis causas são: O caminho especificado não é um shiphome de Patch temporário Os arquivos de metadados não foram encontrados na área de patch Local do patch = /home/oracle Detalhes = Input metadata files are missing. Patch Location /home/oracle doesn't point to a valid patch area. OPatch failed with error code 75 Alguém pode ajudar com uma possível solução para sanar esse erro? De: Milton Bastos Henriquis Jr. miltonbastos@... Para: oracle_br@yahoogrupos.com.br Enviadas: Sexta-feira, 13 de Abril de 2012 9:46 Assunto: Re: [oracle_br] Atualização Patch http://nervinformatica.com.br/blog/2012/04/01/instalando-o-patch-13343438-11-2-0-3-1-patch-set-update/ On Fri, Apr 13, 2012 at 9:38 AM, vieira.rafael44 vieira.rafael44@... wrote: ** Pessoal, bom dia. Estou pela primeira vez atualizando o opatch do Oracle, acabei de isntalar o Oracle 11g release 2 em um novo servidor aonde não possui nenhuma instância e nenhum banco criado, servidor linux OEL 6.1. Gostaria de alguma documentação que me ajudasse a atualizar, gostaria de saber qual comando no linux que faço para saber qual é a versão do meu patch do Oracle e qual a última versão do patch que hoje o Oracle possui. -- 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] [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Re: Atualização Patch
Lá vai. [oracle@gsan238 opatch]$ /u01/app/oracle/product/11.2.0/dbhome_1/OPatch/opatch lsinventory versão do Installer Temporário Oracle 11.2.0.3.0 Copyright (c) 2012, Oracle Corporation. Todos os direitos reservados. Oracle Home : /u01/app/oracle/product/11.2.0/dbhome_1 Central Inventory : /u01/app/oraInventory from : /u01/app/oracle/product/11.2.0/dbhome_1/oraInst.loc OPatch version : 11.2.0.3.0 OUI version : 11.2.0.1.0 Log file location : /u01/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/opatch2012-04-13_14-30-49PM_1.log Lsinventory Output file location : /u01/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/lsinv/lsinventory2012-04-13_14-30-49PM.txt Produtos Instalados em NÃvel Superior (1): Oracle Database 11g 11.2.0.1.0 Há 1 produtos instalados neste Oracle Home. Não há patches temporários instalados neste Oracle Home. OPatch succeeded. De: José Laurindo jlchia...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br Enviadas: Sexta-feira, 13 de Abril de 2012 14:18 Assunto: [oracle_br] Re: Atualização Patch Peça um : /u01/app/oracle/product/11.2.0/dbhome_1/OPatch/opatch lsinventory ao invés de query, e nos mostre o resultado []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Rafael Vieira vieira.rafael44@... escreveu Chippa, Milton e aos demais obrigado pela ajuda... Todas as variáveis estão corretas, descobri porque o caminho /home/oracle estava aparecendo, é porque estava executando o comando do linux no /home, então me direcionei ao diretório $ORACLE_HOME para executar o seguinte comando novamente. ( O que fiz até agora foi pegar a pasta OPatch 11.2 (p6880880_112000_Linux-x86-64.zip) e descompactar a pasta OPatch dentro do meu diretório $ORACLE_HOME e o OPatch antigo 11.1 renomeei para a pasta OPatchBackup). Depois disso executei o comando novamente: [oracle@gsan238 dbhome_1]$ /u01/app/oracle/product/11.2.0/dbhome_1/OPatch/opatch query -all |more versão do Installer Temporário Oracle 11.2.0.3.0 Copyright (c) 2012, Oracle Corporation. Todos os direitos reservados. Oracle Home : /u01/app/oracle/product/11.2.0/dbhome_1 Central Inventory : /u01/app/oraInventory from : /u01/app/oracle/product/11.2.0/dbhome_1/oraInst.loc OPatch version : 11.2.0.3.0 OUI version : 11.2.0.1.0 Log file location : /u01/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/opatch2012-04-13_11-50-10AM_1.log Falha ao carregar o objeto de patch. As possÃveis causas são: O caminho especificado não é um shiphome de Patch temporário Os arquivos de metadados não foram encontrados na área de patch Local do patch = /u01/app/oracle/product/11.2.0/dbhome_1 Detalhes = Input metadata files are missing. Patch Location /u01/app/oracle/product/11.2.0/dbhome_1 doesn't point to a valid patch area. OPatch failed with error code 75 De: José Laurindo jlchiappa@... Para: oracle_br@yahoogrupos.com.br Enviadas: Sexta-feira, 13 de Abril de 2012 11:37 Assunto: [oracle_br] Re: Atualização Patch Local do patch como /home/oracle ??? Me parece que vc não tem as variáveis ORACLE_SID, ORACLE_HOME e PATH setadas corretamente para o ambiente, plz corrija-as ... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Rafael Vieira vieira.rafael44@ escreveu PEssoal, instalei o patch e passei da versão 11.1 para a versão 11.2. Ao executar o comando abaixo, para verificar se tudo ocorreu bem, me deparei com o seguinte erro: /u01/app/oracle/product/11.2.0/dbhome_1/OPatch/opatch query -all |more versão do Installer Temporário Oracle 11.2.0.3.0 Copyright (c) 2012, Oracle Corporation. Todos os direitos reservados. Oracle Home : /u01/app/oracle/product/11.2.0/dbhome_1 Central Inventory : /u01/app/oraInventory from : /u01/app/oracle/product/11.2.0/dbhome_1/oraInst.loc OPatch version : 11.2.0.3.0 OUI version : 11.2.0.1.0 Log file location : /u01/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/opatch2012-04-13_11-26-04AM_1.log Falha ao carregar o objeto de patch. As possÃveis causas são: O caminho especificado não é um shiphome de Patch temporário Os arquivos de metadados não foram encontrados na área de patch Local do patch = /home/oracle Detalhes = Input metadata files are missing. Patch Location /home/oracle doesn't point to a valid patch area. OPatch failed with error code 75 Alguém pode ajudar com uma possível solução para sanar esse erro? De: Milton Bastos Henriquis Jr. miltonbastos@ Para: oracle_br@yahoogrupos.com.br
Re: [oracle_br] Re: Atualização Patch
Chippa, eu não migrei da 10g, para 11g, no início do tópico falei que a minha versão era a 11g release 2. Que só queria mudar a versão do patch 11.1 para 11.2, pois o nosso cliente irá colocar em produção, e precisamos colocar aqui para homologação. Como falei anteriormente, só peguei a pasta do Opatch 11.2 e joguei no $ORACLE_HOME e a antiga 11.1 renomeei para backup. Não posso fazer a atualização do Patch mais atual, pois vai contra as recomendações da Oracle como segue abaixo: 2.1 OPatch Utility You must use the OPatch utility version 11.2.0.1.3 or later to apply this patch. Oracle recommends that you use the latest released OPatch 11.2, which is available for download from My Oracle Support patch 6880880 by selecting the 11.2.0.0.0 release. De: José Laurindo jlchia...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br Enviadas: Sexta-feira, 13 de Abril de 2012 15:03 Assunto: [oracle_br] Re: Atualização Patch Tá claro então : vc estava recebendo a msg anterior porque estava usando a syntax de QUERY mas não tem NENHUM patch aplicado nos seus binários de RDBMS, que estão na versão-base 11.2.0.1 - e by the way, só pra usar a Nomenclatura correta e precisa, se vc estava na 10g e foi pra 11, vc mudou de versão, então NÃO foi patch que vc aplicou (patch NÂO aumenta o release nem a versão, só o sub-release number), e sim um Patchset... No caso, pra ir pro ponto geral mais atual : aplique o patchset mais recente (11.2.0.3) , e depois o CPU (Critical Patch Update, conjunto de patches críticos, liberados trimestralmente pela Oracle) mais recente - vale a pena esperar uns dias mais e já instalar o de Abril/2012, que já sai dia 17 , iirc, mas se não quiser/puder por enquanto aplica o CPU de JAN/2012 Com isso, vc estará Atualizado com os patches gerais, aí só eventualmente se vc encontrar/cair nalguma situação particular de bug local e específico do seu ambinete que vc vai precisar aplicar algum one-off patch via OPatch... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Rafael Vieira vieira.rafael44@... escreveu Lá vai. [oracle@gsan238 opatch]$ /u01/app/oracle/product/11.2.0/dbhome_1/OPatch/opatch lsinventory versão do Installer Temporário Oracle 11.2.0.3.0 Copyright (c) 2012, Oracle Corporation. Todos os direitos reservados. Oracle Home : /u01/app/oracle/product/11.2.0/dbhome_1 Central Inventory : /u01/app/oraInventory from : /u01/app/oracle/product/11.2.0/dbhome_1/oraInst.loc OPatch version : 11.2.0.3.0 OUI version : 11.2.0.1.0 Log file location : /u01/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/opatch2012-04-13_14-30-49PM_1.log Lsinventory Output file location : /u01/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/lsinv/lsinventory2012-04-13_14-30-49PM.txt -- Produtos Instalados em NÃvel Superior (1): Oracle Database 11g 11.2.0.1.0 Há 1 produtos instalados neste Oracle Home. Não há patches temporários instalados neste Oracle Home. -- OPatch succeeded. De: José Laurindo jlchiappa@... Para: oracle_br@yahoogrupos.com.br Enviadas: Sexta-feira, 13 de Abril de 2012 14:18 Assunto: [oracle_br] Re: Atualização Patch Peça um : /u01/app/oracle/product/11.2.0/dbhome_1/OPatch/opatch lsinventory ao invés de query, e nos mostre o resultado []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Rafael Vieira vieira.rafael44@ escreveu Chippa, Milton e aos demais obrigado pela ajuda... Todas as variáveis estão corretas, descobri porque o caminho /home/oracle estava aparecendo, é porque estava executando o comando do linux no /home, então me direcionei ao diretório $ORACLE_HOME para executar o seguinte comando novamente. ( O que fiz até agora foi pegar a pasta OPatch 11.2 (p6880880_112000_Linux-x86-64.zip) e descompactar a pasta OPatch dentro do meu diretório $ORACLE_HOME e o OPatch antigo 11.1 renomeei para a pasta OPatchBackup). Depois disso executei o comando novamente: [oracle@gsan238 dbhome_1]$ /u01/app/oracle/product/11.2.0/dbhome_1/OPatch/opatch query -all |more versão do Installer Temporário Oracle 11.2.0.3.0 Copyright (c) 2012, Oracle Corporation. Todos os direitos reservados. Oracle Home : /u01/app/oracle/product/11.2.0/dbhome_1 Central Inventory : /u01/app/oraInventory from : /u01/app/oracle/product/11.2.0/dbhome_1/oraInst.loc OPatch version : 11.2.0.3.0 OUI version : 11.2.0.1.0 Log file location : /u01/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/opatch2012-04-13_11-50-10AM_1.log Falha ao carregar o objeto de patch. As possÃveis causas são: O caminho especificado não é um shiphome de Patch temporário
Re: RES: [oracle_br] Erro procedure
Chippa, é exatamente o que o Milton falou, FATURAMENTO é o schema e não o nome da tabela. Eu logado como SYSTEM consigo fazer o Select faturamento.seq_res_fat_anal.nextval from dual, então eu possuo acesso a sequence correto? Outra coisa estranha, eu fiz o que o Loiro me falou e funcionou, mas para minha aplicação não vai adiantar de nada, pq esse insert, ele insere várias linhas e consequentemente irá duplicar a sequence, o que fiz para resolver foi o seguinte: BEGIN INSERT INTO faturamento.res_fat_anal SELECT faturamento.seq_res_fat_anal.NEXTVAL, sub.* FROM (SELECT sp.parm_amreferenciafaturamento, loca.greg_id, loca.uneg_id, loca.loca_id, imov.stcm_id, . AND contaCat.ctcg_vlagua 0) sub; COMMIT; Obrigado a todos pela atenção, é isso que faz esse grupo oracle_br um dos melhores grupos sobre Oracle. De: Milton Bastos Henriquis Jr. miltonbas...@gmail.com Para: oracle_br@yahoogrupos.com.br Enviadas: Quarta-feira, 11 de Abril de 2012 13:58 Assunto: Re: RES: [oracle_br] Erro procedure Acredito que o FATURAMENTO é o nome do SCHEMA, e não da tabela. Pois ele está executando como SYSTEM, então tem que especificar o SCHEMA tanto da sequence quanto das tabelas! On Wed, Apr 11, 2012 at 1:44 PM, José Laurindo jlchia...@yahoo.com.brwrote: ** Na verdade, a sintaxe de nomedasequence.nextval dentro de um SQL qualquer (seja o INSERT ou outro) é Absolutamente, Totalmente, Completamente aceita e válida, então não vejo lá necessidade de fazer um acesso extra ao database só pra carregar o valor da sequence numa variável, acho que a questão aqui deve ser outra... Alguns pontos a ser verificar, Rafael : a) NÃO é verdade que o usuário SYSTEM por padrão faz tudo, tem acesso á tudo, tal conceito de super-usuário que faz TUDO e Qualquer Coisa nativamente, bypassando as regras de acesso (como o root no unix), não existe no RDBMS Oracle, entçao se vc está usando SYSTEM querendo obter isso, pare e cesse, vc não vai conseguir... Via de regra o SYSTEM tem diversos privilégios poderosos (como SELECT ANY TABLE, por exemplo) mas NÂO FAZ TUDO... Use então um usuário corretamente criado E QUE recebeu os privilégios necessários... b) nós sabemos que dentro de um stored PL/SQL (Procedure, Function, Package, Trigger, o que for) os privilégios recebidos implicitamente (via ROLE) ** não *** são Ativados por default, então se assegure que o usuário recebeu os privilégios (de selecionar as tabelas, de fazer INSERT, de usar SEQUENCEs que não lhe pertence, enfim todo o necessário) Diretamente, via GRANT c) o principal aqui que parece apontar para alguma alhada : na cláusula do FROM vc escreveu : FROM faturamento.conta conta ... ou seja, esse FATURAMENTE parece ser o nome de uma tabela, e na linha de valores do INSERT vc escreveu : faturamento.seq_res_fat_anal.nextval, == isso não faz sentido se FATUTAMENTO for o nome de uma tabela : no RDBMS Oracle, as sequences são INDEPENDENTES das tabelas, então nomedatabela.nomedasequence Não Faz o Menor sentido []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Loiro loiro_2001@... escreveu Broder, Boa tarde! Mande o erro para agregar na pergunta e na resolução do problema. Quanto a solução um dica que dou é coloque o resultado da sequence em uma variável e coloque-a dentro do comando. De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em nome de vieira.rafael44 Enviada em: quarta-feira, 11 de abril de 2012 12:01 Para: oracle_br@yahoogrupos.com.br Assunto: [oracle_br] Erro procedure Pessoal, crio a procedure, mas dá erro na segunda linha do INSERT onde possui o nextval da sequence, dizendo que nao tenho privilegios suficientes, estou Logado com usuário SYSTEM ( isso eh banco de teste, por isso estou conectado com esse usuario). ALguem pode ajudar? CREATE OR REPLACE PROCEDURE SP1_GERAR_RES_FAT_ANAL IS BEGIN -- Sequência = 100 INSERT INTO faturamento.res_fat_anal SELECT faturamento.seq_res_fat_anal.nextval, sp.parm_amreferenciafaturamento, loca.greg_id, loca.uneg_id, loca.loca_id, imov.stcm_id, imov.qdra_id, imov.iper_id, imov.last_id, imov.lest_id, contaCat.catg_id, conta.imov_id, NULL AS clie_id, conta.cnta_id, NULL AS dbac_id, NULL AS crar_id, NULL AS gpag_id, NULL AS gdev_id, 1 AS lctp_id, 1 AS lcit_id, NULL AS lict_id, 100 AS rfaa_nnsequenciatipolancamento, 0 AS rfaa_nnseqitemtplanc, sysdate AS rfaa_tmultimaalteracao, contaCat.ctcg_vlagua AS rfaa_vlitemfaturamento FROM faturamento.conta conta INNER JOIN cadastro.imovel imov ON conta.imov_id = imov.imov_id INNER JOIN faturamento.conta_categoria contaCat ON conta.cnta_id = contaCat.cnta_id INNER JOIN cadastro.localidade loca ON conta.loca_id = loca.loca_id INNER JOIN cadastro.sistema_parametros sp ON 1 = 1 WHERE
Re: RES: [oracle_br] Query
Alguém pode ajudar? Está dando erro no group by aonde o CASE possui uma sub-query... versão 11g ORA-22818: expressões de subconsulta não permitidas aqui SELECT loca.greg_id AS idGerencia, loca.uneg_id AS idUnidadeNegocio, loca.loca_id AS idLocalidade, ( CASE WHEN conta.iper_id IS NOT NULL THEN conta.iper_id ELSE 5 END) AS idImovelPerfil, ( CASE WHEN cltp.epod_id IS NOT NULL THEN cltp.epod_id ELSE 4 END) AS idEsferaPoder, ( CASE WHEN (SELECT ctcg.catg_id FROM faturamento.conta_categoria ctcg WHERE ctcg.cnta_id = conta.cnta_id ) IS NOT NULL THEN (SELECT Min(ctcg.catg_id) FROM faturamento.conta_categoria ctcg WHERE ctcg.ctcg_qteconomia = ( SELECT Max(ctcg2.ctcg_qteconomia) FROM faturamento.conta_categoria ctcg2, faturamento.conta conta2 WHERE ctcg2.cnta_id = conta2.cnta_id ) ) ELSE 1 END) AS idCategoria, 1 AS idDocumentoTipo, conta.cnta_dtvencimentoconta AS dataVencimento, COUNT(conta.cnta_id) AS quantidadeDocumentos, SUM(COALESCE(conta.cnta_vlagua,0)) AS valorAguaCategoria, SUM(COALESCE(conta.cnta_vlesgoto,0)) AS valorEsgotoCategoria, SUM(COALESCE(conta.cnta_vldebitos,0)) AS valorDebitoCategoria, SUM(COALESCE(conta.cnta_vlcreditos,0)) AS valorCreditoCategoria, SUM(COALESCE(conta.cnta_vlimpostos,0)) AS valorImpostos, fdrc.fdrc_id AS idFaixa FROM cadastro.localidade loca INNER JOIN faturamento.conta conta ON loca.loca_id = conta.loca_id LEFT JOIN cadastro.cliente_conta clct ON conta.cnta_id = clct.cnta_id AND clct.crtp_id = 3 LEFT JOIN cadastro.cliente resp ON clct.clie_id = resp.clie_id LEFT JOIN cadastro.cliente_tipo cltp ON resp.cltp_id = cltp.cltp_id LEFT JOIN financeiro.faixa_docs_a_receber fdrc ON (fdrc.fdrc_vlfaixainicial = (nvl(conta.cnta_vlagua,0) + nvl(conta.cnta_vlesgoto,0) + nvl(conta.cnta_vldebitos,0) - (nvl(conta.cnta_vlcreditos,0) + nvl(conta.cnta_vlimpostos,0))) AND fdrc.fdrc_vlfaixafinal = (nvl(conta.cnta_vlagua,0) + nvl(conta.cnta_vlesgoto,0) + nvl(conta.cnta_vldebitos,0) - (nvl(conta.cnta_vlcreditos,0) + nvl(conta.cnta_vlimpostos,0 WHERE loca.loca_id = 339 AND ( ( conta.cnta_amreferenciacontabil = 201203 AND conta.dcst_idatual IN ( 1, 2, 3 ) ) OR ( conta.cnta_amreferenciacontabil 201203 AND conta.dcst_idatual IN ( 1, 2, 3, 4 ) AND ( conta.dcst_idanterior IS NULL OR ( conta.cnta_amreferenciaconta = 201203 AND conta.dcst_idanterior 0 ) ) ) ) GROUP BY loca.greg_id, loca.uneg_id, loca.loca_id, ( CASE WHEN conta.iper_id IS NOT NULL THEN conta.iper_id ELSE 5 END), ( CASE WHEN cltp.epod_id IS NOT NULL THEN cltp.epod_id ELSE 4 END), ( CASE WHEN (SELECT ctcg.catg_id FROM faturamento.conta_categoria ctcg WHERE ctcg.cnta_id = conta.cnta_id AND ROWNUM = 1 ) IS NOT NULL THEN (SELECT Min(ctcg.catg_id) FROM faturamento.conta_categoria ctcg WHERE ctcg.ctcg_qteconomia = ( SELECT Max(ctcg2.ctcg_qteconomia) FROM faturamento.conta_categoria ctcg2, faturamento.conta conta2 WHERE ctcg2.cnta_id = conta2.cnta_id ) ) ELSE 1 END ), 1, conta.cnta_dtvencimentoconta, fdrc.fdrc_id ORDER BY loca.greg_id, loca.uneg_id, loca.loca_id, (CASE WHEN conta.iper_id IS NOT NULL THEN conta.iper_id ELSE 5 END) , ( CASE WHEN cltp.epod_id IS NOT NULL THEN cltp.epod_id ELSE 4 END), ( CASE WHEN (SELECT ctcg.catg_id FROM faturamento.conta_categoria ctcg WHERE ctcg.cnta_id = conta.cnta_id ) IS NOT NULL THEN (SELECT Min(ctcg.catg_id) FROM faturamento.conta_categoria ctcg WHERE ctcg.ctcg_qteconomia = ( SELECT Max(ctcg2.ctcg_qteconomia) FROM faturamento.conta_categoria ctcg2, faturamento.conta conta2 WHERE ctcg2.cnta_id = conta2.cnta_id ) ) ELSE 1 END), 1, conta.cnta_dtvencimentoconta, fdrc.fdrc_id De: Márcio - IG mpela...@ig.com.br Para: vieira.rafae...@yahoo.com.br Enviadas: Terça-feira, 10 de Abril de 2012 11:49 Assunto: RES: [oracle_br] Query Brother, Envia a query toda e
Re: [oracle_br] OCM - Entrevista
Parabéns ao Victor e ao Milton. De: Rodrigo Mufalani rodr...@mufalani.com.br Para: oracle_br@yahoogrupos.com.br Cc: dba10...@googlegroups.com; dba_oracle_...@googlegroups.com; José Henrique Zandoná jhzhenri...@gmail.com Enviadas: Quarta-feira, 28 de Março de 2012 10:35 Assunto: Re: [oracle_br] OCM - Entrevista Bom dia, Com certeza foi boa. O Guilherme é uma pessoa fantástica e um excelente profissional! Parabéns pelo site... Muito boa iniciativa... ns []'s Rodrigo Mufalani Oracle Ace member OCP/OCE Rac 88514817 Sent via my DROID :-) Vitor Ugo Roda da Rosa Junior vitorj...@gmail.com escreveu: Que bela entrevista! Que belas perguntas� o reporter me lembra at� um jovem William Bonner� hehehe #certificacaobd Att,/Regards, Vitor Jr. Infraestrutura / Infrastructure Team Oracle 11g DBA Certified Professional - OCP 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 On 28/03/2012, at 10:13, Milton Bastos Henriquis Jr. wrote: Bom dia amigos! A Certifica豫o BD entrevistou o OCM Guilherme Brito. Confiram! http://certificacaobd.com.br/ -- Att, Milton Bastos www.certificacaobd.com.br [As partes desta mensagem que n� continham texto foram removidas] [As partes desta mensagem que n� continham texto foram removidas] -- Aten豫o! As mensagens do grupo ORACLE_BR s� de acesso p�lico 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�! 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]
Re: [oracle_br] Re: Erro ao conectar com autenticação do SO
Obrigado a todos, aí vai... echo $PATH /u01/app/oracle/product/11.2.0/dbhome_1/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/oracle/bin:/u01/app/oracle/product/11.2.0/dbhome_1/bin/ ps -ef | grep -i pmon oracle 4133 1 0 Mar21 ? 00:00:00 ora_pmon_gsanaf201201 oracle 7349 1 0 Mar14 ? 00:00:00 ora_pmon_gsan241b oracle 28490 1 0 09:11 ? 00:00:00 ora_pmon_gsanaf201201 oracle 31970 31559 0 16:02 pts/0 00:00:00 grep -i pmon SELECT INSTANCE_NAME, HOST_NAME FROM V$INSTANCE; INSTANCE_NAME HOST_NAME gsanaf201201 gsan241.ipad.com.br SELECT NAME FROM V$DATABASE; NAME GSANAF20 De: José Laurindo jlchia...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br Enviadas: Sexta-feira, 23 de Março de 2012 12:24 Assunto: [oracle_br] Re: Erro ao conectar com autenticação do SO Verdade Milton, e não só isso : ganhasse eu uma moeda a cada vez que vejo alguém confundindo schema com database , string no tnsnames com nome da instância e semelhantes eu seria hoje positivamente um homem rico ... Rafael, seguinte : depois de vc fazer o shutdown immediate nessa instância que reporta como não aberta : - veja COMO está a sua variável PATH, faça um echo $PATH no servidor, vc necessariamente TEM que ter o sub-diretório BIN da oraclehome desejada constando no PATH e antes de outras HOMEs - peça no servidor um ps -ef | grep -i pmon , as linhas que vc retornar são os nomes REAIS das instãncias que vc tem ativas nesse servidor - se vc tiver a possibilidade, vá até a máquina do usuário que conectou e nessa máquina conecte como SYSTEM nesse banco de dados e peça um : SELECT INSTANCE_NAME, HOST_NAME FROM V$INSTANCE; SELECT NAME FROM V$DATABASE; ou se o usuário tem acesso às V$, peça pra ele fazer as queries... = uma vez confirmado EXATAMENTE o nome da instância, o nome do database, o nome do servidor, se realmente é esse servidor mesmo que vc tá o cara, a variável ORACLE_SID tá apontando pra instância correta, e o ORACLE_HOME está correto e com o sub-dir bin presente no path, pede um : tnsping nomedainstância (normalmente de praxe sempre se cria entre outras entradas no tnsnames uma entrada com o mesmo nome da instância) - se nada disso resolveu/te mostrou onde está o seu erro, mostra tudo isso pra gente... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Milton Bastos Henriquis Jr. miltonbastos@... escreveu Faça o seguinte teste: - Dê novamente um shutdown immediate, igual vc tinha feito no primeiro e-mail; - Peça para algum usuário tentar se conectar novamente pelo Developer ou pelo Tools, que vc tinha citado anteriormente. Obviamente é impossível se conectar a uma base que vc tenha dado shutdown. Se a conexão funcionar, é pq essas conexões estão em outro banco de dados. Muitas vezes alguns confundem o nome do banco, nome da instancia, nome do serviço, com a descrição que estão no tnsnames, e aí conectam numa base pensando que está em outra, por isso é bom garantir isso. On Fri, Mar 23, 2012 at 11:19 AM, Rafael Vieira vieira.rafael44@... wrote: ** Estão no mesmo. De: Milton Bastos Henriquis Jr. miltonbastos@... Para: oracle_br@yahoogrupos.com.br Enviadas: Sexta-feira, 23 de Março de 2012 10:33 Assunto: Re: [oracle_br] Erro ao conectar com autenticação do SO Provavelmente essas outras conexões (de outras pessoas) estão no OUTRO banco de dados... Afinal, teu banco nem está aberto. On Fri, Mar 23, 2012 at 9:35 AM, Rafael Vieira vieira.rafael44@... wrote: ** Paulo, obrigado. Já tinha setado o .oraenv, eu sempre faço isso antes de me conectar a um banco. Estou usando o linux red hat. Segue o que você me pediu. [oracle@gsan241 ~]$ echo $ORACLE_SID gsanaf201201 [oracle@gsan241 ~]$ echo $ORACLE_HOME /u01/app/oracle/product/11.2.0/dbhome_1 [oracle@gsan241 ~]$ echo $ORACLE_BASE /u01/app/oracle [oracle@gsan241 ~]$ [oracle@gsan241 ~]$ echo $TNS_ADMIN Essa variável $TNS_ADMIN não me trouxe nada. obs; Possuo outro banco isntalado no mesmo servidor. Esses são os dados da minhas variáveis de ambiente. De: Paulo Petruzalek ppetruzalek@... Para: oracle_br@yahoogrupos.com.br oracle_br@yahoogrupos.com.br Enviadas: Sexta-feira, 23 de Março de 2012 9:08 Assunto: Re: [oracle_br] Erro ao conectar com autenticação do SO Verifique se as variáveis de ambiente estão setadas adequadamente, ex: ORACLE_SID, ORACLE_HOME, ORACLE_BASE, TNS_ADMIN, etc... Como você não disse qual ambiente dificil dar mais detalhes. Em linux / unix você pode usar a linha de comando: . oraenv (o ponto e espaço faz parte do comando) Este comando serve para carregar as variáveis de ambiente adequadas para cada banco instalado. De: vieira.rafael44
Re: [oracle_br] Re: É possível executar forms 6 e report 6 em um banco de dados Oracle 10g?
Amigos, bom dia. Na antiga empresa que trabalhei, exisita o forms 6i e trabalhavamos com versões do DB 9i, 10g e 11g, agora a release eu não me lembro, dá uma procurada, funcionava em todas as versões, tanto o Oracle 6i, como o 10g da versão web também, o Oracle lançou há pouco tempo o Forms 11g, muito diferente de todos os outros. Atenciosamente, []' Rafael Mendonça De: José Laurindo jlchia...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br Enviadas: Quarta-feira, 21 de Março de 2012 17:54 Assunto: [oracle_br] Re: É possível executar forms 6 e report 6 em um banco de dados Oracle 10g? Certamente devia ter sido 10.1.x : o 10.2.x não é oficialmente compatível mas normalmente dá pra gambiarrar : vc só precisa do último patchset do Developer, que iirc era o patchset 18 (isso é imprescindível, tentar com Developer não-atualizado é grande chance de crash), e o database ** não ** pode estar usando characterset multibyte Eu disse gambiarrar porque , evidentemente, vc não terá a mais remota sombra de Suporte nem pra esse database nem pra esse Developer, mas que funciona, funciona : na minha máquina de testes, antes do XP esticar as patas e morrer de morte morrida, eu tinha um banco 10gr2 EE conectando com o Forms e Reports 6i, me lembro que s´po tive pequenos problemas com features mais recentes, como LOBs e BFILES, mas contornável via programação no banco, em stored procedure ... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Vitor Ugo Roda da Rosa Junior vitorjr81@... escreveu Me corrijam se estiver errado, mas tive um problema parecido: - Cliente com forms 6i e banco 9i; - Necessidade de migrar o banco para 11g; - Não havia matriz de compatibilidade com o 11g; - Mas a matriz de compatibilidade ia até o 10; … Agora não lembro se era a versão 10.2… ou 10.1… Att,/Regards, Vitor Jr. Infraestrutura / Infrastructure Team Oracle 11g DBA Certified Professional - OCP Oracle Database 11g Performance Tuning Certified Expert - OCE Oracle Exadata 11g Certified Implementation Specialist mail, gtalk e msn: vitorjr81@... http://certificacaobd.com.br/ skype: vjunior1981 On 21/03/2012, at 17:19, Pedro wrote: Senhores, Eu posso executar forms 6 e report 6 em um banco de dados Oracle 10g? Estamos precisando avançar a versão do banco de dados emergencialmente, de 8.1.7.3 para 10.2.0.5, mas ainda não estamos preparados para avançar a versão do forms e reports, que permanecerá 6.0. Eu sei que esta versão não é mais suportada, e pretendo avançar a versão do forms, mas não agora. Isso é possível? Ou seja, existe um mínimo de compatibilidade, que me permita, emergencialmente manter forms 6 e reports 6, executando em um banco de dados Oracle 10.2.0.5? Atenciosamente, Pedro Manso. [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]