Avalados por :

Solução para recuperar tablespace PSAPUNDO no sistema SAP e migrar para PSAPUNDO2 com sucesso.

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 1 Vistas
0
Cargando...

Olá,

Nosso sistema SAP está fora do ar. Ao verificar, descobri que o tablespace PSAPUNDO precisa de recuperação.

SQL> select segment_name,tablespace_name,status from dba_rollback_segs;


NOME_SEGMENTO NOME_TABLESPACE ESTADO


------------------------------


SISTEMA SISTEMA ONLINE

etc...................

18 linhas selecionadas.

No Alert Log, encontrei o seguinte erro:

-----------------------------------------------------------

Dom 02 Dez 19:06:21 2012

Checkpoint concluído até RBA [0x2aae.2.10], SCN: 179359877

Dom 02 Dez 19:25:04 2012

Checkpoint incremental até RBA [0x2aae.2d36.0], fila de registro atual em RBA [0x2aae.2e11.0]

Dom 02 Dez 19:30:00 2012

KCF: erro de gravação/abertura bloco=0x19 na linha=1
arquivo=2 D:\ORACLE\SOL\SAPDATA1\UNDO_1\UNDO.DATA1
erro=27072 txt: 'OSD-04008: Erro de WriteFile(), não é possível escrever no arquivo

Erro de SO: (OS 33) O processo não pode acessar o arquivo porque outro processo bloqueou parte do arquivo.'
Arquivo de dados offline automaticamente devido a um erro de gravação em
arquivo 2: D:\ORACLE\SOL\SAPDATA1\UNDO_1\UNDO.DATA1

Dom 02 Dez 19:30:01 2012

Erros no arquivo d:\oracle\sol\saptrace\ usertrace\sol_ora_5408.trc:

ORA-00376: não é possível ler o arquivo 2 neste momento

ORA-01110: arquivo de dados 2: 'D:\ORACLE\SOL\SAPDATA1\UNDO_ 1\UNDO.DATA1'

------------------------------------------------------------

Então, criei outro tablespace PSAPUNDO2 e alterei o sistema com os seguintes comandos:

SQL >create undo tablespace PSAPUNDO2 datafile 'D:\Oracle\SOL\sapdata1\undo_2\UNDO.DATA2' size 700MB;

SQL>alter system set undo_tablespace=PSAPUNDO2 scope=spfile;

Alterei o undo_management para Manual. E ainda não eliminei o antigo tablespace PSAPUNDO,

Reiniciei

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

O problema foi resolvido após a recriação do tablespace PSAPUNDO.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Ok,

Esta é uma espécie de suposição, pois a criação do UNDO2 está ausente no registro de alerta,

Mas aqui está:

O BD não pode ativar o PSAPUNDO2 devido a um tipo incorreto,

então presumo que foi criado como um tablespace de DADOS, ou a criação falhou.

Como não faz parte do DBA_DATA_FILES, é provável que a criação tenha sido apenas parcialmente bem-sucedida,

porque ao tentar criar o UNDO3 falha, já que especifica o arquivo de dados do UNDO2 e

o BD entende que este arquivo já pertence ao BD (-1537), o que significa que o nome do arquivo foi inserido

nos arquivos de controle (V$DATAFILE), mas a criação não foi concluída (por isso dba_data_files não tem entrada).

A pergunta básica é: Você tem o arquivo de dados do PSAPUNDO em backup?

Se sim, restaure-o e os logs e você terá terminado. Limpe o que está relacionado ao UNDO2 e UNDO3,

missão cumprida.

Quanto à outra opção (recriar UNDO), embora não tenha certeza se realmente é uma opção (pois não tenho certeza com as informações fornecidas de que os segmentos de desfazer em estado de recuperação não são necessários):

Nos velhos tempos, com segmentos de rollback reais, você precisava de um segundo segmento de rollback para criar um tablespace adicional. Como as novas BDs são criadas com um tablespace UNDO na declaração CREATE DATABASE, hoje em dia não é mais necessário, mas ao iniciar um BD sem UNDO, é provável que a criação de tablespaces adicionais ainda não tenha sucesso hoje por essa razão.

(Devo admitir que nunca verifiquei desde a versão 10)

Portanto, se realmente for possível recuperar este sistema removendo e substituindo o PSAPUNDO,

a maneira de fazer isso seria:

- definir a gestão de desfazer como manual

- criar um segmento de rollback clássico (pode ser RS_HELP em TS SYSTEM)

- colocar online o segmento de rollback RS_HELP

- criar o tablespace de desfazer UNDO4 com um nome de arquivo de dados ainda não utilizado.

- redefinir o desfazer automático para UNDO4

- colocar offline e excluir o segmento de rollback RS_HELP

- reiniciar o BD

Se isso fizer com que o BD inicie corretamente sem NENHUM problema no registro de alerta, pelo menos você terá avançado um passo.

Em seguida, tentaria limpar as evidências do UNDO2 / UNDO3.

Neste ponto, você deve ser capaz de iniciar o SAP.

Se isso funcionar bem por um tempo, você pode considerar excluir o PSAPUNDO com qualquer opção de forçamento mencionada anteriormente, mas enquanto não tiver certeza, não perca nenhum redolog desde seu último backup válido em diante.

Mais uma vez, se você tiver um backup, vá para a recuperação.

Basta restaurar e recuperar o PSAPUNDO.

Volker

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá,

Anexo o registro de alerta como referência.

Nossa versão do Oracle é 10g.

SQL> selecione status de v$instance;

STATUS

------------

ABERTO

Em relação à sua pergunta O banco de dados colocou arquivos adicionais offline porque o PSAPUNDO não estava disponível no início. Executei o seguinte comando e descobri

que todos os outros arquivos estão online, exceto o arquivo2.

SQL> selecione * de dba_data_files;

NOME_DO_ARQUIVO

--------------------------------------------------------------------------------

ID_DO_ARQUIVO NOME_DO_TABLESPACE††††††††††††††††††† BYTES†††† BLOCOS ESTADO

---------- ------------------------------ ---------- ---------- ---------

RELATIVE_FNO AUT†† MAXBYTES† MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS

------------ --- ---------- ---------- ------------ ---------- -----------

ONLINE_

-------

D:\ORACLE\SOL\SAPDATA1\UNDO_1\UNDO.DATA1

2 PSAPUNDO†††††††††††††††††††††††††††††††††††††††††††† DISPONÍVEL

2

RECUPERAR

O problema ainda não foi resolvido.

dba_data_files.txt.zip aler-log_0901.txt.zip
Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá,

Acredito que pode haver um problema.

Se uma instância de banco de dados for bloqueada, DEVE ter todo o UNDO ATIVO disponível para poder realizar uma recuperação de instância ao iniciar. Caso contrário, as ações de desfazer necessárias provavelmente não poderão ser executadas. Portanto, recomendaria enfaticamente NÃO excluir o undo, a menos que tenha certeza de que não é mais necessário.

Portanto, quando mencionou que iniciou a instância, fiquei intrigado em saber como o Oracle conseguiu fazer isso com arquivos de undo offline. Pode anexar o registro de alerta desde a última inicialização até "Completed alter database open" e verificar o estado da instância a partir de V$INSTANCE?

Também gostaria de saber se esta é a versão 10 ou 11.

E gostaria de saber se o banco de dados estabeleceu arquivos adicionais offline porque o PSAPUNDO não estava disponível no início.

Para constar, acredito que não poderá escapar sem restaurar e recuperar o PSAPUNDO.

Se excluir o undo que pode ser necessário para uma recuperação limpa da instância em caso de bloqueio, é possível que não consiga abrir o banco de dados novamente sem usar alguns parâmetros para permitir corrupção, e isso pode estar completamente fora de suporte.

Volker

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?