Postagens

How to get Oracle Database dependents objects

Hi folks, (português mais abaixo) After some time I decided to continue posting at this blog even having a channel on youtube. My channel was created to share some stuff like tips, experiences, tutorials about Databases (specially Oracle), Linux and new techologies all in portuguese language. If you are interested in this stuff, please go to https://www.youtube.com/channel/UCDncbo0hpBTEYMjZNZwsfmw and subscribe.  Today, I'm glad to share with you a query to get objects dependencies in Oracle Databases. It's very useful when you have to change some object and want to see if some others objects have to be updated too to avoid a broken application. Here I'm using a hierarchical query to get object depedency by level:  SELECT LPAD('-',level) || owner || '.' || name ||'('|| type || ')' DEPENDENCY FROM dba_dependencies  CONNECT BY PRIOR owner = referenced_owner AND prior name = referenced_name  AND prior type = referenced_type  START WI

Installing Oracle GI. Database 11g (11.2.0.1) on OEL 6.5

Imagem
Amigos, Criei este tutorial em vídeo para ajudá-los a instalar o Oracle GI com Database em um Linux 6 (Oracle Enterprise Linux ou Red Hat Enterprise Linux). Sabemos que há uma certa incompatibilidade (erro durante execução do root.sh do GI) nesta versão, mas foram contornadas e demonstradas neste vídeo. Quaisquer dúvidas ou comentários para melhorar os tutoriais são bem-vindos! Abaixo algumas listagens de comandos para auxiliar na instalação: - Pacotes para instalar o VMWARE TOOLS: cd /mnt/Packages yum -y install kernel-uek-headers rpm -Uvh kernel-uek-devel*x86_64* rpm -Uvh binutils-2*x86_64* rpm -Uvh gcc-4*x86_64* - Pacotes para a instalação do Oracle: rpm -Uvh glibc-2*x86_64* nss-softokn-freebl-3*x86_64* rpm -Uvh glibc-2*i686* nss-softokn-freebl-3*i686* rpm -Uvh compat-libstdc++-33*x86_64* rpm -Uvh glibc-common-2*x86_64* rpm -Uvh glibc-devel-2*x86_64* rpm -Uvh glibc-devel-2*i686* rpm -Uvh glibc-headers-2*x86_64* rpm -Uvh elfutils-libelf-0*x86_64* rpm -Uvh e

Gerenciando Trilha de Auditoria Padrão e FGA no Oracle Database 11g

Imagem
Caros amigos, hoje vou compartilhar algo com vocês que eu criei e me ajudou muito em gerenciar o espaço ocupado pelo Audit Trail (trilha de auditoria) do banco de dados Oracle 11g quando usamos Auditoria Padrão ou FGA (Fine Grained Auditing). Por padrão o banco de dados Oracle 11g configura auditoria de algumas ações como por exemplo: logon, logoff, uso de privilégios "ANY", etc. gerando dados em tabelas como a SYS.AUD$ (para a auditoria padrão) e a SYS.FGA_LOG$ (para a FGA). Com o tempo, a quantidade gerada de dados nestas tabelas pode fazer com que o tablespace SYSTEM cresça bastante e por isso é interessante separar os dados de auditoria em um tablespace diferente. Se você tiver adquirido o recurso Oracle Audit Vault esta trilha de auditoria é gerenciada automaticamente, ou seja, é copiada para o banco de dados do Audit Vault e removida do banco de dados de origem. Além disso, o Audit Vault tem outros recursos de relatórios, envio de alertas e uma interface mais amigável

Evitando FULL TABLE SCANS quando usar IS NULL em cláusulas WHERE

Imagem
Olá pessoal, Neste post vou falar sobre um tuning simples, mas eficaz quando trabalhamos com valores nulos em filtros. Antes de tudo, contextualizando: O que é uma tabela? R. Uma tabela é um objeto do tipo SEGMENTO no banco de dados que armazena dados em forma de linhas e colunas, certo? Tipo uma planilha do excel: O que é um índice? R. Índice é outro objeto do tipo SEGMENTO que, uma vez criado em uma tabela por exemplo poderá ser utilizado para agilizar a pesquisa quando alguns critérios forem utilizados. Imagine um índice de um livro. Ele é feito para agilizar a pesquisa e você encontrar o assunto que está procurando de forma mais rápida. No banco de dados é similar, o índice é constituído basicamente do valor da coluna (ou colunas) indexada da tabela com um ponteiro que aponta para a linha (ou linhas) que possui aquele valor. Basicamente assim: - Funções é um objeto de código de programação que retorna algum valor. Por exemplo: a função SUM retorna o somatório dos

Copiar a instalação Oracle de um Linux para outro funciona?

Imagem
Ok ok, eu sei que eu não atualizo meu blog com frequência, mas estou aqui de volta pra falar sobre uma questão que de vez em quando me perguntam: Copiar uma instalação já realizada do Oracle (Oracle Base e Oracle Home) de um sistema operacional Linux para um outro funciona? Bem, se o sistema operacional for equivalente, ou seja, mesma distribuição, mesma versão e mesma arquitetura (32 ou 64 bits) posso dizer que funciona sim. Se a distribuição for diferente eu já não posso garantir que funcionaria. Versões diferentes talvez funcione, mas arquiteturas diferentes não vai funcionar. Muitas vezes sabemos que é muito mais cômodo copiarmos a instalação de uma máquina para outra quando queremos clonar ou migrar esta instalação. Eu concordo, mas faça isso apenas se não tiver outro jeito ou se for muito complicado realizar uma nova instalação do software Oracle, pois uma nova instalação poderá sair melhor que a antiga, mais atualizada, mais limpa. Saiba que mesmo copiando a instalação

Erros comuns ao se conectar ao Oracle no Windows

Imagem
Caros amigos, Geralmente temos problemas quando, pela primeira vez, encontramos um banco de dados Oracle instalado em um servidor Windows. Apesar de mais fácil, a instalação do Windows também deve ser realizada conforme as recomendações da Oracle e com atenção. Quando não é feita assim é que acontecem os desafios de administração posteriormente. Abaixo algumas situações desafiadoras que podemos encontrar por aí: 1. Centenas de instalações Oracle em uma única máquina. Evite isso! Faça a instalação essencial do software Oracle na máquina. Client, Database, InstantClient, etc. Escolha um e pronto. Geralmente é encontrado em um servidor windows várias instalações client e/ou banco de dados gerando vários Oracle Homes tornando a administração complicada. Quando você faz uma configuração em um Home (em um tnsnames.ora por exemplo), você percebe que não surtiu efeito e provavelmente é por isso. Para descobrir em que Oracle Home você está, você pode executar o comando "TNSPING q

Restore database 10g em 11gR2 em mesma arquitetura

Imagem
Caros amigos, Precisei restaurar um backup de uma base de dados 10g, porém não achei mais a instalação do software Oracle versão 10g e por isso tive que instalar no 11g e efetuar o Upgrade.  A restauração ocorreu normal. Preparei o ambiente (spfile, pastas, etc) e comecei a restauração: export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1 export ORACLE_SID=OLDDB export PATH=$PATH:/u01/app/oracle/product/11.2.0/dbhome_1/bin:.:/usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin:/u01/app/oracle/product/11.2.0/dbhome_1/OPatch RMAN> restore controlfile from '/u01/olddb/o1_mf_ncsn0_TAG20120309T190017_7onzdd6z_.bkp'; RMAN> alter database mount; RMAN> catalog start with '/u01/olddb' noprompt; RMAN> run{ set newname for datafile 1 to new; set newname for datafile 2 to new; set newname for datafile 3 to new; set newname for datafile 4 to new; restore database; switch datafile all; recover database;} RMAN> exit --#