Oradata

Desfragmentando Tabelas

O que é? Muitas vezes quando executamos operações de DELETE em nossas tabelas dentro do banco de dados, não recuperamos o espaço dos registros que foram excluídos, isso acontece porque fisicamente os registros são excluídos, mas logicamente ainda estão na HWM (High Water Mark) dos datafiles. Esse artigo vai mostrar como esse evento acontece e explicar o que se fazer para resolver este tipo de situação. Primeiramente vamos criar uma tabela para ser a “cobaia” do nosso laboratório. Agora insira uma quantidade de registros “substancial” à tabela. Agora que a tabela foi criada e recebeu uma carga de dados, vamos verificar quantos “data blocks” e “extents” ela possui, para isso…

Enterprise Manager 12c Express

O Oracle database 12c já está disponível para download desde 26/06/2013, e eu como mais um geek nesse ramo, baixei o meu release, criei minha VM e já estou brincando rsrsrs. Inclusive estou escrevendo este post para colocar a primeira novidade que encontrei que é relacionada ao Enterprise Manager. Nas versões anteriores do banco de dados 10g e 11g, haviam dois tipos de Enterprise Manager (Database Control e Grid Control), a partir de agora a coisa vai mudar um pouquinho, o Enterprise Manager que gerencia mais de um alvo, e que antes era o “Grid Control” a partir de agora passa a chamar-se “Cloud Control” Esse produto já está no…

Standby Database 10gR2

O que vou escrever abaixo é na verdade a cópia de um documento que tive que escrever aqui na empresa em que trabalho como parte da documentação de nossos processos internos e é um “step by step” de como construir um “Standby Database”, o documento não entra muito em detalhes, mas para quem conhece um pouco de Oracle já consegue executar as instruções e implementar o seu (caso queiram um documento mais detalhado me mandem um e-mail que eu envio um outro documento com maiores informações). E agora “mão na massa”. 1 – Pré-requisitos. Os pré-requisitos para a criação de um Standby Database são: Dois servidores com as configurações mínimas…

Particionamento de tabelas

O que é? O particionamento de tabelas (Oracle Partitioning) é a capacidade de dividir fisicamente tabelas de seu banco dados, sem a necessidade de reescrever o código fonte de sua aplicação, pois logicamente a tabela particionada é como uma tabela normal de seu banco de dados e é capaz de receber as mesmas instruções SQL (DDL, DML e DCL) que qualquer outra tabela, a separação dos dados acontece somente no âmbito físico, de acordo com o que for especificado no momento do particionamento pelo desenvolvedor. Para que serve? O particionamento é de grande utilidade quando estamos trabalhando com tabelas que tem uma massa de dados muito grande, pois a partir…

Função LISTAGG

A função LISTAGG (list aggregate | lista agregada), é uma função SQL de grupo específica do Oracle, que agrupa os dados na mesma linha dentro de uma instrução SELECT, você pode utilizá-la sozinha para produzir conjuntos de dados agrupados por linhas simples, ou em conjunto com a função GROUP BY, abaixo alguns exemplos. Imagine um SELECT comum na tabela EMPLOYEES. Agora vamos montar um relatório que liste em uma única linha, o nome completo dos empregados no padrão americano (sobrenome, nome) separado por ‘; ’ juntamente com a data de contratação do empregado mais antigo. Neste caso ficaria assim. LISTAGG + GROUP BY Como falamos no inicio do artigo, também…

Horário de verão x Enterprise Manager 12c

Olá a todos! Quando termina o nosso horário de verão, para nós profissionais de TI sempre vem aquela preocupação com servidores, aplicações e etc, felizmente não tive problema nenhum com meus servidores Oracle todos trocaram o horário automaticamente sem problemas, tudo uma maravilha, não fosse alguns erros que aconteceram nos agentes do Enterprise Manager 12c, como vocês pode ver na imagem abaixo. Pois bem esse erro acontece porque a hora que o agente tem registrada em sua memória está a frente da hora do sistema operacional. Então a todo momento em que o agente tenta fazer a coleta de alguma informação acontece o erro, e consequentemente se você tiver configurado a…

Projetando um rotina de Backup

Olá amigos! Muitas vezes quando você pergunta para alguém qual é o conceito de backup seja de um banco de dados ou de qualquer outro tipo de informação, a resposta na maioria das vezes é algo parecido como “Ahh… É uma cópia que eu faço e deixo guardada, para repor em caso de problemas”. Pela resposta já podemos prever que se acontecer algum problema, muito provavelmente o backup não será a solução, pois o conceito de backup vai muito além da “maldita” frase acima. Especificamente no caso de banco de dados, a palavra backup representa muito mais do que “essa tal cópia que você tem que deixar guardada”. Representa todo…