- Este tópico contém 15 respostas, 4 vozes e foi atualizado pela última vez 13 anos, 11 meses atrás por
Fábio Prado.
-
AutorPosts
-
20 de março de 2012 às 7:07 pm #103133
line
ParticipanteEstou tentando realizar o backup do oracle, porem ocorre a seguinte mensagem:
ORACLE error 604 encountered
error occurred at recursive SQL leve 1
ORACLE data block corrupted (file #1, block #2015)E backup terminar sem sucesso.
Obrigada,
21 de março de 2012 às 4:33 pm #103147Regis Araujo
ParticipanteOla Line.. bom dia..!
Use o DBVERIFY para verificar o corrompimento deste bloco..
Seu banco tem backup via RMAN?
Mais alguns pontos.. qual o SO e qual a versão do banco e tipo (standard ou enterprise), use para determinar a versão todos os valores.. ex: 11.2.0.2.3
Pelo erro parece q o corrompimento foi no arquivo 1
De um “select * from V$Datafile where file# =1;” e verifique qual é este arquivo e de qual tablespace ele faz parte.. Após estas informações poderemos lhe auxiliar melhor..!!!
Abraços.!
21 de março de 2012 às 8:12 pm #103172line
Participante[quote=”Thunder_Catz”:1xza343p]Ola Line.. bom dia..!
Use o DBVERIFY para verificar o corrompimento deste bloco..
Seu banco tem backup via RMAN?
Mais alguns pontos.. qual o SO e qual a versão do banco e tipo (standard ou enterprise), use para determinar a versão todos os valores.. ex: 11.2.0.2.3
Pelo erro parece q o corrompimento foi no arquivo 1
De um “select * from V$Datafile where file# =1;” e verifique qual é este arquivo e de qual tablespace ele faz parte.. Após estas informações poderemos lhe auxiliar melhor..!!!
Abraços.![/quote]
Olá,
O backup é feito via importação. O Oracle é 10g Enterprise Edition 10.2.0.3.0. O SO é o Windows Server 2003.
A mensagem que aparece após select:
OWNER
———————–
SEGMENT_NAME
———————–
PARTITION_NAME SEGMENT_TYPE TABLESPACE_NAME
————————– ————————- ——————————-
EXTENT_ID FILE_ID BLOCK_ID BYTES BLOCKS RELATIVE_FNO
——— ——- ——— ———- —— ————
SYS
c_OBJ#_INTCOL#
CLUSTER SYSTEM
1 1 1929 1048576 128Obrigada pela ajuda.
21 de março de 2012 às 9:09 pm #103175rman
Participante@line
O bloco corrompido está na SYSTEM 😯
O @Thunder_Catz perguntou se o backup é feito pelo RMAN por que o backup é utilizado pelo DBVERIFY.
21 de março de 2012 às 9:23 pm #103177line
Participante[quote=”rman”:20srnrnh]@line
O bloco corrompido está na SYSTEM 😯
O @Thunder_Catz perguntou se o backup é feito pelo RMAN por que o backup é utilizado peloc.[/quote]
Me desculpe eu não conheço muito o Oracle, eu realizo o backup via o comando import.
Para realizar via RMAN na criação do banco eu deveria ter realizado alguma configuração ou posso tentar fazer agora via RMAN ? Com o DBVERIFY poderia ser corrigido este problema ?
Obrigada,22 de março de 2012 às 4:45 pm #103185line
ParticipanteEu pesquisei na Internet e para realizar o backup pelo rman é necessário que o ARCHIVELOG esteja habilitado (por favor me corrija se eu estiver errada).
Então eu fui no oracle e dei o comando SELECT LOG_MODE FROM SYS.V$DATABASE; com o usuários SYS, porem ocorre o seguinte erro:
ORA-00942: table or view does not exist.Obrigada pela ajuda.
22 de março de 2012 às 5:05 pm #103186rman
Participante@line
Tente da seguinte forma:
SELECT LOG_MODE FROM V$DATABASE
O hot backup necessita que o ARCHIVELOG esteje habilitado, porém o cold backup não. 😆
A desvantagem do cold backup é que você deve baixar o banco de dados para fazer o backup, e outra, como não existe archive log não é possível voltar em um ponto especifico do tempo, só é possível voltar para o momento que o backup foi realizado.
Mas se é banco de dados de produção é recomendado que esteje com o ARCHIVELOG habilitado.
22 de março de 2012 às 5:09 pm #103187Regis Araujo
Participante@line
Bom dia..!!
Somente um exclarecimento…
Vc falou que faz o export via import.. Existe um equivoco nesta situação..
Vc deve estar usando para fazer o export o EXPORT DATA PUMP (expdp) ou o exp que é uma ferramenta muito usada mas que já está obsoleta nas versões 10g e 11g.
Para fazer o import você usa o impdp ou o imp que também está obsoleto nas versões 10g e 11g.O Rman pode sim ser usado sem o banco estar em modo archive, porém somente para backups COLD (que são backups com o banco baixado).
O DBVERIFY é uma ferramenta da Oracle para diagnosticar corrompimento em blocos de datafiles do Oracle.. Ele não corrige problemas de bloco corrompido..
Mas o RMAN sim, corrige problema de blocos corrompidos, porém apenas na versão 11g.
Como o problema do corrompimento do seu banco é na Tablespace SYSTEM, você terá que verificar em qual objeto é este corrompimento e se ele é fisico (disco) ou logico (datafile).
Se for corrompimento no disco, você terá que setar os blocos como unusable, onde o Oracle irá ignorar estes blocos para futuras escritas, isto fará com que você possa realizar um backup full dos schemas do seu banco de dados.. mas terá que realizar um restore deste backup.. ou seja.. terá que criar outro banco e importar o backup..
Mas agora vem a dificuldade.. como você falou que não tem muito conhecimento.. existe algum DBA por ai?
Pois para realizar estes prodecimentos terá que ser alguem com mais experiência, pois se identificar um problema de corrompimento mais grave será necessário tomar outras medidas e será necessário até mesmo tomar alguma medida gerencial.
A priori, rode o DBVERIFY para identificar quantos blocos estão corrompidos no seu banco…
dbv file= logfile=c:/temp/verify.log blocksize=8192 feedback=100
O parametro blocksize tem q ser o mesmo valor dos blocksize da tablespace onde este datafile foi criado.. se foi a system mesmo.. rode no sqlplus com system ou sys.. o comando.. “show parameter db_block_size;” e use o valor retornado no parametro blocksize do DBV, por default os bancos Oracle são criados com blocks de 8k (8192).
Com relação ao select.. muito estranho vc conectar com sys e aparecer esta mensagem.. muito estranho mesmo.. se realmente apareceu isto.. vc está com um serio problema de corrompimento nos objetos de dicionário de dados do seu banco..
Tente novamente conectar com SYSTEM ou SYS e rode o select..
select log_mode from v$database;
Ou conectado no Sqlplus dentro do banco com sys / as sysdba.. rode o comando..
SQL> ARCHIVE LOG LIST
Q irá mostrar se seu banco está em archivelog ou noarchivelog…
Após rodar o DBVERIFY poste o resultado do log aqui.. para podermos lhe auxiliar..!!
Abraços..!
22 de março de 2012 às 5:49 pm #103189line
Participante[quote=”rman”:761eaxza]@line
Tente da seguinte forma:
SELECT LOG_MODE FROM V$DATABASE
O hot backup necessita que o ARCHIVELOG esteje habilitado, porém o cold backup não. 😆
A desvantagem do cold backup é que você deve baixar o banco de dados para fazer o backup, e outra, como não existe archive log não é possível voltar em um ponto especifico do tempo, só é possível voltar para o momento que o backup foi realizado.
Mas se é banco de dados de produção é recomendado que esteje com o ARCHIVELOG habilitado.[/quote]
Funcionou! Obrigada agora o meu ARCHIVELOG está habilitado.
Qual seria o comando para rodar o rman ?Obrigada novamente
22 de março de 2012 às 6:00 pm #103190Regis Araujo
Participante@line
Bom dia..
O comando que o RMAN te passou, não é para habilitar o mode archivelog, o select é simplesmente para verificar se seu banco está em modo archive ou não…
Outra coisa, você não está focando no problema principal que é o corrompimento do bloco, dependendo do tipo de corrompimento e onde ele ocorreu, seu banco de dados pode ser perdido para sempre.. vc irá perder todo o seu banco, sem possibilidade de realizar um restore dos dados.
Vc rodar o rman ou não, não irá resolver o problema de corrompimento.. onde até pelo rman vc pode obter erro de bloco corrompido e o backup não terminar.
Este banco que apresentou este problema é de produção? Qual a criticidade deste banco?
Abraços..!
22 de março de 2012 às 6:07 pm #103191rman
Participante@line
Para montar toda uma politica de backup/recovery é necessário analisar a infraestrutura disponível, pessoas qualificadas, tempo de rentenção de backup, qual tipo de backup mais adequado (hot backup, cold backup), janela de backup, se vai utilizar o backup full ou incremental, e muitas outras coisas…
Mas apenas para fazer um simples backup manual, siga o procedimento:
$ rman target /
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
RMAN> BACKUP DATABASE;
RMAN> BACKUP ARCHIVELOG ALL;
22 de março de 2012 às 6:39 pm #103192line
Participante[quote=”Thunder_Catz”:57pk7eso]@line
Bom dia..
O comando que o RMAN te passou, não é para habilitar o mode archivelog, o select é simplesmente para verificar se seu banco está em modo archive ou não…
Outra coisa, você não está focando no problema principal que é o corrompimento do bloco, dependendo do tipo de corrompimento e onde ele ocorreu, seu banco de dados pode ser perdido para sempre.. vc irá perder todo o seu banco, sem possibilidade de realizar um restore dos dados.
Vc rodar o rman ou não, não irá resolver o problema de corrompimento.. onde até pelo rman vc pode obter erro de bloco corrompido e o backup não terminar.
Este banco que apresentou este problema é de produção? Qual a criticidade deste banco?
Abraços..![/quote]
Eu entendi que é somente para verificar se o archivelog está habilitado ou não, mas eu habilitei através de outros comandos e via o select do RMAN pude ver que agora esta como archivelog, sobre o dbv file= logfile=c:/temp/verify.log blocksize=8192 feedback=100, daqui a pouco eu coloco o resultado do log.
Sim é um banco de produção, porem aparentemente as pessoas estão conseguindo trabalhar somente no backup que ocorre o erro.
Obrigada.22 de março de 2012 às 6:44 pm #103193line
ParticipanteVocês já ouviram falar em fazer um recover block via rman ?
22 de março de 2012 às 6:50 pm #103194line
Participante[quote=”line”:3rukjivg]Vocês já ouviram falar em fazer um recover block via rman ?[/quote]
Se eu executa -se o comando:
RMAN SELECT TARGET SYS/RMAN>BLOCKRECOVER DATAFILE 5 BLOCK 15;
Deveria resolver o problema de block corrompido ?
Obrigada
22 de março de 2012 às 7:43 pm #103195Regis Araujo
Participante@line
O recover de bloco pelo RMAN somente seria possível se você tivesse usando o backup via RMAN antes de ocorrer o problema.
Por isto que é sempre aconselhado ter o banco em modo archive e ter backup via rman tanto do banco quando dos archives..!
Mas outra questão, para você colocar o banco em modo archive, houve a necessidade de baixar o banco.
Verifique no Alert se houve algum erro do bloco corrompido, pois se não houve nenhum erro o problema pode estar apenas no local onde vc está salvando o backup e não no banco.
Abraços..!
-
AutorPosts
- Você deve fazer login para responder a este tópico.