Postagens

Mostrando postagens com o rótulo Oracle Database

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...

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 --#...

Como otimizar backups de BIGFILES usando RMAN MULTISECTION - 11g

Imagem
OBS.: Reformulei este antigo post que falava sobre BIGFILE. Anteriormente eu passei um script que quebrava o arquivo em partes iguais de acordo com o valor do paralelismo, mas se o arquivo for muito grande vai demorar da mesma forma. Não é obrigatório ser igual ao número de canais. É possível quebrar o arquivo em tamanhos menores e quando o canal terminar uma parte iniciará a outra. Desta forma é mais recomendável. O Bigfile pode ajudar em vários fatores, mas é temos que saber utilizá-lo. O tempo necessário para backup/restore aumenta consideravelmente quando trabalhamos com ele sem MULTISECTION. Prefira SMALLFILE quando possível. Melhor ainda: faça um balanço entre usar BIGFILE e SMALLFILE, analisando a questão da quantidade de arquivos, tempos de backup/restore, limitações, etc. Foi incluído um recurso interessante no RMAN (Recovery Manager) do Oracle 11g que são os "backups  multissessão"  . Resumindo, para as tablespaces BIGFILE (tablespaces que possuem somente um a...

Restore no RMAN falha com "ORA-01180: can not create datafile 1"

Depois de um tempo ausente, volto com este probleminha que já aconteceu comigo duas vezes. Pediram-me para que eu restaurasse um banco de dados para criação de uma base de testes (ainda bem) e no momento da restauração algo assim aconteceu: creating datafile No=1 name=/....../o1_mf_system_5n2w3nky_.dbf released channel: t1 RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: failure of restore command at 09/05/2010 09:34:12 ORA-01180: can not create datafile 1 ORA-01110: data file 1: '/....../o1_mf_system_5n2w3nky_.dbf' Segundo o METALINK, isso acontece porque "O Rman acha que não tem backups pra restaurar, então ele recria os arquivos para aplicar os archives. No entanto isso não funciona para a tablespace SYSTEM". De fato é verdade. Quando tentamos restaurar os demais arquivos dá c...

ALTER USER IDENTIFIED BY VALUES

Imagem
O comando CREATE/ALTER USER <usuario> IDENTIFIED BY VALUES '<password hash>' não é documentado. É utilizado internamente para armazenar as senhas que foram anteriormente salvas com o utilitário export na tabela do dicionário de dados SYS.USER$. Em algumas situações onde o DBA precisa se conectar com um certo usuário, mas não sabe a senha dele ou a possibilidade de salvar estas senhas ganha-se tempo ao invés de sair perguntando por elas. Às vezes você como DBA precisa realizar alguma manutenção que é preciso ser com aquele schema específico, mas a empresa não quer fornecer a senha do usuário/schema então este recurso pode ser utilizado da seguinte maneira: Você se conecta com um usuário administrativo (DBA ou SYSDBA) e executa a consulta e anota o resultado: SQL> spool senha.log SQL> SELECT password FROM dba_users     WHERE username='SCOTT'; PASSWORD             ...