Postagens

Service/Listener : Como criar um novo serviço no Listener em ambientes Single Instance

 Neste documento vou demonstrar como criar um novo serviço no listener para receber conexões com varias finalidades, uma delas é distinguir e segregar acessos de aplicações especificas no ambiente dessa forma temos maior rastreabilidade de qual serviço esta sendo usando, ou para balanceamento de carga de tal forma que em ambientes RAC podemos restringir o acesso pelo serviço apenas em um node específico e assim temos a possibilidade de realizar rotinas administrativas no ambiente como aplicar patches de maneira faseada ou restart do ambiente e etc sem afetar o uso do ambiente. A partir do Oracle 10g foi introduzida a Package -  DBMS_SERVICE  para esta finalidade, abaixo podemos ver como criar um novo serviço com o CREATE_SERVICE: INSTANCE_NAME HOST_NAME ---------------- ---------------------------------------------------------------- orcl1 ol07db01.localdomain SQL> exec dbms_service.create_service('orcl1_svc_new','orcl1_svc_new'); PL/SQL procedure successfully...

RAC: Realocar serviços/SCAN em ambientes Oracle RAC

 O presente documento tem a finalidade de mostrar como realocar um serviço específico de um Cluster Node para outro, isso pode ser necessário caso o DBA precise realizar alguma manutenção em um node específico, dessa forma o relocate move todas as conexões que estão no momento conectadas naquele serviço de um node para outro não havendo perda de conexão, exceto quando essa sessão está fazendo um DML (Insert, delete, update). Se as sessões no DBNode 1 estão realizando um select e é executando o comando de relocate daquele service para o DBNode 2, a query finalizará sua execução no DBNode2.Caso seja um comando DML a sessão e movida e o comando finalizado. Sintax do comando relocate: srvctl relocate service -d {database_name} -s {service_name} -i {old_inst_name} -t {new_inst_name} Exemplo de relocate do serviço ORCL_TESTE da Instância ORCL1 para a ORCL3: srvctl relocate service -d ORCL -s ORCL_TESTE -i ORCL1 -t ORCL3 Validando o relocate do serviço: srvctl status service -d ORCL-s ORC...

Temporary Tablespace : Identificando consultas consumindo uma Tablespace Temporária

Imagem
 Recentemente nos deparamos com uma lentidão anormal no ambiente, analisando de maneira geral o database identificamos o WAIT_EVENT na GV$SESSION com "statement suspended, wait error to be cleared" em várias sessões identificando algo generalizado e no alert.log o erro "ORA-01652 - Unable to extend temp segment by 128 MB ".  Dessa forma o problema estava claro. A tablespace TEMP está totalmente consumida e era necessário o resize, correto ? Na verdade não. Dessa forma seguimos na identificação da(s) consulta(s) ofensoras(s) buscando a causa raiz do problema, simplesmente aumentar a tablespace resolveria o problema momentaneamente pois a query ofesora não seria analisada e provavelmente consumiria o espaço adicional colocado e teriamos uma nova incidência do problema. Para entendermos melhor, o oracle usa espaços de tabela temporários como áreas de trabalho para tarefas como operações de classificação para usuários e classificação durante a criação do índice, conheci...