- Este tópico contém 22 respostas, 9 vozes e foi atualizado pela última vez 14 anos, 3 meses atrás por Sousa04.
-
AutorPosts
-
17 de setembro de 2010 às 11:13 pm #96135Sousa04Participante
conhecem algum comando para abrir o Oracle inconsistente?? Acho q vou precisar
18 de setembro de 2010 às 12:01 am #96137Sousa04ParticipantePessoal
vamos fazer uma força tarefa aqui please
pra entendimento
1 – em uma nova base restaurei o controlfile diga-se de passagem do dia 15
2 – restaurei os backup dos datafile do dia 14
3 – Tentei abrir o banco e não consegui
alter database open resetlogs
*
ERROR at line 1:
ORA-01152: file 1 was not restored from a sufficiently old backup
ORA-01110: data file 1:
‘/sistema/oradata/DWDEFESA/datafile/o1_mf_system_4gq1sfyq_.dbf’depois
1 – Tentei recriar o controlfile
CREATE CONTROLFILE REUSE DATABASE “DWDEFESA” NORESETLOGS NOARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 7848
LOGFILE
GROUP 1 ‘/sistema/oradata/DWDEFESA/onlinelog/redo_01a.log’ SIZE 1536M,
GROUP 2 ‘/sistema/oradata/DWDEFESA/onlinelog/redo_02a.log’ SIZE 1536M,
GROUP 3 ‘/sistema/oradata/DWDEFESA/onlinelog/redo_03a.log’ SIZE 1536M,
GROUP 4 ‘/sistema/oradata/DWDEFESA/onlinelog/redo_04a.log’ SIZE 1610613248
DATAFILE
‘/sistema/oradata/DWDEFESA/datafile/o1_mf_system_4gq1sfyq_.dbf’,
‘/sistema/oradata/DWDEFESA/datafile/o1_mf_sysaux_4gq1sfyy_.dbf’,
‘/sistema/oradata/DWDEFESA/datafile/o1_mf_users_4gq1sg28_.dbf’,
‘/sistema/oradata/DWDEFESA/datafile/undotbs2.dbf’ ,
CHARACTER SET WE8ISO8859P1
;2 – Deu esse erro
ERROR at line 1:
ORA-01503: CREATE CONTROLFILE failed
ORA-01163: SIZE clause indicates 12800 (blocks), but should match header
1100800
ORA-01110: data file 17: ‘/sistema/oradata/DWDEFESA/datafile/undotbs2.dbf’3 – Fiz os Calculos
1100800 * 8192 / 1024 = 8806400
4 – tentei novamente espeificando a clausula SIZE NA tbsundo
CREATE CONTROLFILE REUSE DATABASE “DWDEFESA” NORESETLOGS NOARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 7848
LOGFILE
GROUP 1 ‘/sistema/oradata/DWDEFESA/onlinelog/redo_01a.log’ SIZE 1536M,
GROUP 2 ‘/sistema/oradata/DWDEFESA/onlinelog/redo_02a.log’ SIZE 1536M,
GROUP 3 ‘/sistema/oradata/DWDEFESA/onlinelog/redo_03a.log’ SIZE 1536M,
GROUP 4 ‘/sistema/oradata/DWDEFESA/onlinelog/redo_04a.log’ SIZE 1610613248
DATAFILE
‘/sistema/oradata/DWDEFESA/datafile/o1_mf_system_4gq1sfyq_.dbf’,
‘/sistema/oradata/DWDEFESA/datafile/o1_mf_sysaux_4gq1sfyy_.dbf’,
‘/sistema/oradata/DWDEFESA/datafile/o1_mf_users_4gq1sg28_.dbf’,
‘/sistema/oradata/DWDEFESA/datafile/undotbs2.dbf’ SIZE 8806400,
CHARACTER SET WE8ISO8859P1
;PERGUNTA
Devo procurar uma corda e uma árvore ou um prédio bem alto e pular??
Vlw
18 de setembro de 2010 às 12:24 am #96138Regis AraujoParticipanteOpa..! Salve Galera..!!
Olha eu me intrometendo aqui..!!
Bom.. vamos ver se eu entendi direito..!!!
1 – Vc restaurou um controlfile do dia 15.
2 – Restaurou os Datafiles do dia 14.
3 – Quer abrir o banco desta maneira.Se eu estiver correto no meu entendimento.. vamos as explicações..
Seu controlfile armazenou as informações dos datafiles como sendo o ultimo SCN do dia 15.. então ele esta tentando ler no header dos datafiles este SCN, como os datafiles são do dia 14 o SCN é diferente.. desta maneira ele vai reclamar de consistência e não vai abrir.. e isto seria o certo.. pois o oracle precisa garantir q todas as informações na base sejam consistentes..!!
MAs agora a pergunta.. vc realmente precisa abrir este banco, você realmente tem certeza disto? Tem certeza absoluta disto, pergunto novamente.. vc REALMENTE precisa fazer isto?
Se sim.. faça isto..
Coloque o parametro abaixo no seu INIT e suba o banco…!! Isto fará com que o seu banco abra sem a verificação de consistência, ou seja, abrirá de forma inconsistente.. Mas novamente perguntando.. VC REALMENTE PRECISA FAZER ISTO?
Esta é uma base de desenvolvimento? Somente faça isto em base de desenvolvimento..!! Vc pode depois destruir ela e recria-la com todos os dados originais consistentes??
Quando vc abrir o banco com este parametro.. ele vai gerar um log de erro informando q o banco esta aberto de forma inconsistente..!!
Bom.. novamente.. só faça isto em ULTIMO, ULTIMO, ULTIMO, EXTREMANENTE ULTIMO CASO…!!!
Lá vai o parametro…
_ALLOW_RESETLOGS_CORRUPTION=TRUE
Ahh.. outra coisa.. SÓ FAÇA ISTO SE REALMENTE FOR PRECISO.. E a Oracle não da suporte para uma base que tenha sido aberta com este parametro..!! E isto não é garantia de q o banco abra.. mas é uma ultima alternativa..!!
Abraços.. e vamos ver no que dá..!!
18 de setembro de 2010 às 5:31 pm #96140CleitonHanzenParticipanteOpá…
Intaum, tenho um script que atualiza uma base de desenvolvimento que funciona exatamente deste jeito (backup offline, restore dos DBF’s para outra estrutura e recria o controlfile).
Outro detalhe que observei no teu passo 4, você converteu o teu calculo de bytes para kbytes mas não especificou K após o “8806400”…
1100800 * 8192 = 9017753600 bytes
1100800 * 8192 / 1024 = 8806400 kbytesVeja que a unidade padrão dos comandos Oracle (se nenhuma outra for especificada) é bytes e não kbytes….. 😉
[]s
20 de setembro de 2010 às 5:38 pm #96149Sousa04ParticipanteBom dia Galera
como a vida é bela né? É tão bom quando as coisas dão certo né?rsrsrrsEntão, vamos ver os fatos e resultados
1 – Precisei Voltar um backup do dia 14 e não possuia o control file
deu erro de cara, pois como o ckp sinaliza no controlfile as alterações dos datafiles para deixar tudo bem sincronizado mas como não estava…..
SQL> alter database open resetlogs
2 ;
alter database open resetlogs
*
ERROR at line 1:
ORA-01152: file 1 was not restored from a sufficiently old backup
ORA-01110: data file 1:
‘/sistema/oradata/DWDEFESA/datafile/o1_mf_system_4gq1sfyq_.dbf’2 – Opção para recria o controlfile
SQL> CREATE CONTROLFILE REUSE DATABASE “DWDEFESA” NORESETLOGS NOARCHIVELOG
2 MAXLOGFILES 16
3 MAXLOGMEMBERS 3
4 MAXDATAFILES 100
5 MAXINSTANCES 8
6 MAXLOGHISTORY 7848
7 LOGFILE
8 GROUP 1 ‘/sistema/oradata/DWDEFESA/onlinelog/redo_01a.log’ SIZE 1536M,
9 GROUP 2 ‘/sistema/oradata/DWDEFESA/onlinelog/redo_02a.log’ SIZE 1536M,
10 GROUP 3 ‘/sistema/oradata/DWDEFESA/onlinelog/redo_03a.log’ SIZE 1536M,
11 GROUP 4 ‘/sistema/oradata/DWDEFESA/onlinelog/redo_04a.log’ SIZE 1610613248
12 DATAFILE
13 ‘/sistema/oradata/DWDEFESA/datafile/o1_mf_system_4gq1sfyq_.dbf’,
14 ‘/sistema/oradata/DWDEFESA/datafile/o1_mf_sysaux_4gq1sfyy_.dbf’,
15 ‘/sistema/oradata/DWDEFESA/datafile/o1_mf_users_4gq1sg28_.dbf’,
16 ‘/sistema/oradata/DWDEFESA/datafile/undotbs2.dbf’,
17 CHARACTER SET WE8ISO8859P1
18 ;
CREATE CONTROLFILE REUSE DATABASE “DWDEFESA” NORESETLOGS NOARCHIVELOG
*
ERROR at line 1:
ORA-01503: CREATE CONTROLFILE failed
ORA-01163: SIZE clause indicates 12800 (blocks), but should match header
1100800
ORA-01110: data file 17: ‘/sistema/oradata/DWDEFESA/datafile/undotbs2.dbf’
Percebam que não coloquei nenhum valor no datafile de Undo.
depois tentei recriar espefificando o valor‘/sistema/oradata/DWDEFESA/datafile/undotbs2.dbf’ SIZE 8806400k,
Mas tbm deu o mesmo erro. Vi seu comentário Cleiton, eu tbm tinha especificado em k. Não sei pq raios não funcionou vou continuar tentando descobrir o pq disso afinal de contas eu criei a base de teste em uma VM, vou brincar com ela depois e tentar recriar esse maledito controlfile.
Então diante de todas essas circurstâncias o Thunder_Catz, o Jesus cristo, o Salvador, Exterminador do furturo… rsrsrs ALumia meu caminho com o bendito _ALLOW_RESETLOGS_CORRUPTION=TRUE.
Como eu só precisava de um schema, um export e depois a base seria totalmente desfeita logo não havia problemas em abrir em desarmonia.
Alterei no Pfile eALTER DATABASE OPEN
ORA-1589 signalled during: ALTER DATABASE OPEN…
Fri Sep 17 20:35:19 2010
alter database open resetlogs
RESETLOGS is being done without consistancy checks. This may result
in a corrupted database. The database should be recreated.
RESETLOGS after incomplete recovery UNTIL CHANGE 21266592822
Resetting resetlogs activation ID 3665158495 (0xda75e15f)
Fri Sep 17 20:37:17 2010
Setting recovery target incarnation to 3
Fri Sep 17 20:37:17 2010BOW!!!! Abri a parada!!
Vlw ae mesmo pela força e apoio galera!!!!Deus abençoe todos vcs!!
20 de setembro de 2010 às 8:18 pm #96156burgaParticipantehehehe… essa vai pros meus favoritos!!
21 de setembro de 2010 às 11:02 pm #96190airoospParticipanteConteúdo esta errado mensagem apagada.
23 de setembro de 2010 às 6:51 pm #96230Sousa04ParticipanteBom dia pessoal
Descobri o porque eu não consegui recriar o control file.
Postei acima que estava dando o seguinte erro:ERROR at line 1:
ORA-01503: CREATE CONTROLFILE failed
ORA-01163: SIZE clause indicates 12800 (blocks), but should match header
1100800Esse erro persistia mesmo eu indicando o tamanho
1100800 * 8192 / 1024 = 8806400K
Pois é, o erro era do tamanho de uma vírgula
CREATE CONTROLFILE REUSE DATABASE “DWDEFESA” RESETLOGS NOARCHIVELOG
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 7848
LOGFILE
GROUP 1 ‘/sistema/oradata/DWDEFESA/onlinelog/redo_01a.log’ SIZE 1536M,
GROUP 2 ‘/sistema/oradata/DWDEFESA/onlinelog/redo_02a.log’ SIZE 1536M,
GROUP 3 ‘/sistema/oradata/DWDEFESA/onlinelog/redo_03a.log’ SIZE 1536M,
GROUP 4 ‘/sistema/oradata/DWDEFESA/onlinelog/redo_04a.log’ SIZE 1536M
DATAFILE
‘/sistema/oradata/DWDEFESA/datafile/o1_mf_system_4gq1sfyq_.dbf’ SIZE 3145728K,
‘/sistema/oradata/DWDEFESA/datafile/o1_mf_sysaux_4gq1sfyy_.dbf’ SIZE 3145728K,
‘/sistema/oradata/DWDEFESA/datafile/o1_mf_users_4gq1sg28_.dbf’ SIZE 16179456K,
‘/sistema/oradata/DWDEFESA/datafile/undotbs2.dbf’ SIZE 8806400K
CHARACTER SET WE8ISO8859P1
;Retirei a vírgula depois de SIZE 8806400K
e pronto
Control file created.
No desespero a gente fica cego. Fala sério, Aff!!
-
AutorPosts
- Você deve fazer login para responder a este tópico.