Fala pessoal, uma situação chata mas que pode acontecer é recuperar os controlfiles depois de alguma perda. Se você não usa a FRA para uma recuperação automática dos controlfiles com o rman, você vai precisar setar o DBID e o control-file autobackup location manualmente.
Mas ai que mora a questão, se seu banco não esta aberto e você não tem o DBID anotado, como descobrir ele ??
Então vamos a boa dica :
Primeira coisa vamos logar no rman:
[oracle@rjhud ~]$ rlwrap rman target=sys/c402d92@centro
Recovery Manager: Release 11.2.0.1.0 - Production on Wed Aug 24 11:46:23 2011
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
connected to target database (not started)
RMAN>
Agora que começa o legal da história , precisamos descobrir o DBID e como o banco não esta montado não iremos conseguir acessar a V$DATABASE então o que vamos fazer, vamos no diretório onde os backups estão armazenados ou no diretório dos datafiles e vamos fazer a seguinte busca atraves do comando strings do sistema operacional.
Os comandos vão variar para o tipo de backup que você vai pesquisar, se é um backup do datafile system ou undo ou um backupset.
strings file_name |grep MAXVALUE, (No caso do SYSTEM datafile or FULL Backup)
strings file_name |grep MAXVALUE (No caso do UNDO datafile )
Exemplos :
[root@rjhud backup2]# ls -lh
-rw-r----- 1 oracle oinstall 972K Aug 23 16:42 01mknoqp_1_1_TAGBACKUP_FULL
strings 01mknoqp_1_1_TAGBACKUP_FULL |grep MAXVALUE,
1287652985, MAXVALUE,
Esse é o meu DBID :1287652985
Agora é só seguir a sequencia para restaurar o controlfile e da próxima vez mantenha o seu DBID guardado em uma planilha ou repositório qualquer.
That's all folks
quarta-feira, 24 de agosto de 2011
quarta-feira, 3 de agosto de 2011
ORA-16179: incremental changes to "log_archive_dest_1" not allowed with SPFILE
Estava agora configurando uma base nova, antes de passar ela para ARCHIVELOG no momento que estava configurando o diretório dos archives recebi o famoso:
Meu cenário era um Oracle Database 11G R2 com um Red Hat 5.5.
A Solução é bem simples galera e eu achei no metalink que tem o Doc ID: 194494.1.
Só adicionar a palavra LOCATION antes do caminho do diretório.
That's all folks
SQL> Alter system set log_archive_dest_1='/u01/app/oracle/archives/iraja';
ORA - 16179 : incremental changes to "log_archive_dest_1" not allowed with
Meu cenário era um Oracle Database 11G R2 com um Red Hat 5.5.
A Solução é bem simples galera e eu achei no metalink que tem o Doc ID: 194494.1.
Só adicionar a palavra LOCATION antes do caminho do diretório.
SQL> ALTER SYSTEM SET log_archive_dest_1 = 'LOCATION=/u01/app/oracle/archives/iraja' ;
System altered.
That's all folks
terça-feira, 2 de agosto de 2011
Problema com DISPLAY no VirtualBox com Oracle
Post simples e com muito conteúdo na Internet, mas que de vez em quando me dava trabalho e eu não vi/não achei nada tão simples na internet.
Problema :
>>> Could not execute auto check for display colors using command /usr/bin/xdpyinfo. Check if the DISPLAY variable is set. Failed <<<<
Cenário:
VirtualBox 4.4 Instalando o Oracle Database 11G R2
Soluçao :
Como root executar :
xhost +localhost
Depois loga com o oracle na mesma sessão e zaz(Como diria o chaves).
That's all folks !!
Problema :
>>> Could not execute auto check for display colors using command /usr/bin/xdpyinfo. Check if the DISPLAY variable is set. Failed <<<<
Cenário:
VirtualBox 4.4 Instalando o Oracle Database 11G R2
Soluçao :
Como root executar :
xhost +localhost
Depois loga com o oracle na mesma sessão e zaz(Como diria o chaves).
That's all folks !!
Marcadores:
DISPLAY,
DISPLAY variable,
install oracle database,
oracle,
virtualbox,
xhost+
segunda-feira, 1 de agosto de 2011
Recuperando Variável Bind com a V$SQL_BIND_CAPTURE
Segue abaixo uma forma bem simples de pegar o valor de uma variável bind utilizando a view V$SQL_BIND_CAPTURE . Precisei recentemente pegar os valores de uma consulta que uma sessão estava realizando e o trace não estava ajudando por "n" fatores e utilizando o velho dicionario de dados foi bem mais simples nesse caso.
1_ Buscando o valor o sql_id na V$SQL :
SELECT SQL_ID,SQL_TEXT FROM V$SQL WHERE SQL_TEXT LIKE '%all_tab_columns%';
SQL_TEXT SQL_ID
---------------------------------------- -------------
select col.*, com.Comments from sys.all_ 032n4avhdnaz3
tab_columns col, sys.all_col_commen
WHERE o.owner LIKE :1 ESCAPE '/'
AND o.object_name LIKE 2: ESCAPE '/'
Atenção a identificação das binds , essa mesma posição vai ser recuperada logo a frente.
2_ Olhando a V$SQL_BIND_CAPTURE
SQL>
desc V$SQL_BIND_CAPTURE
Name Null? Type
----------------------------------------------------------------- -------- --------------------------------------------
ADDRESS RAW(8)
HASH_VALUE NUMBER
SQL_ID VARCHAR2(13)
CHILD_ADDRESS RAW(8)
CHILD_NUMBER NUMBER
NAME VARCHAR2(30)
POSITION NUMBER
DUP_POSITION NUMBER
DATATYPE NUMBER
DATATYPE_STRING VARCHAR2(15)
CHARACTER_SID NUMBER
PRECISION NUMBER
SCALE NUMBER
MAX_LENGTH NUMBER
WAS_CAPTURED VARCHAR2(3)
LAST_CAPTURED DATE
VALUE_STRING VARCHAR2(4000)
VALUE_ANYDATA ANYDATA
3_Buscando o valor da bind desejada :
SQL_ SELECT NAME,TO_CHAR(LAST_CAPTURED,'DD/MM/YYYY HH24:MI:SS'),VALUE_STRING FROM V$SQL_BIND_CAPTURE WHERE SQL_ID='0prhvnya3f97z' ;
NAME TO_CHAR(LAST_CAPTUR VALUE_STRING
------------------------------ ------------------- ------------------------------
:1 01/08/2011 16:24:39 REPORT_SERVER_AALTAMIRANO
:2 01/08/2011 16:24:39 ROLE
Pronto, de forma simples foi recuperado os valores passados no filtro da consulta SQL.
Assinar:
Postagens (Atom)