Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

ORA-01111 no MRP no banco de dados Physical Standby


Algum tempo atrás,  o MRP no banco de dados em espera falhou com  ORA-01111 com o seguinte  erro detalhado no registro de alertas
Alert Log in Standby Shows MRP is terminated with below error
=================================================================
File #8 added to control file as 'UNNAMED00008' because
the parameter STANDBY_FILE_MANAGEMENT is set to MANUAL
The file should be manually created to continue.
MRP0: Background Media Recovery terminated with error 1111
Thu Jan 08 11:02:35 2016
Errors in file /u01/oracle/product/11.2.0/diag/rdbms/TEST/test/trace/TEST_mrp0_6436.trc:
ORA-01111: name for data file 129 is unknown - rename to correct file
ORA-01111: name for data file 129 is unknown - rename to correct file
ORA-01110: data file 129: '/u01/oracle/product/11.2.0/dms/UNNAMED00008'

Motivo para ORA-01111


Este erro ORA-01111 ocorre se adicionarmos um Datafile OR Tablespace no PRIMARY Database e que não pôde ser traduzido para o Standby Database devido a estes motivos:
  • Standy_file_management está definido como MANUAL
  • Os modos de espera primário e físico têm estruturas de arquivos diferentes e DB_FILE_NAME_CONVERT não está definido de acordo com as estruturas de diretório no primário e em espera
  • Espaço insuficiente ou permissões erradas no banco de dados em espera para criar o arquivo de dados

O Redo Log gerado a partir do Primary terá informações sobre o Tablespace/Datafile adicionadas, porém não pôde ser criado com sucesso no Physical Standby Database devido ao standby_file_management =MANUAL
ou não é capaz de encontrar a pasta especificada devido a um / ausente Conversão de nome de arquivo incorreta. A entrada de arquivo é adicionada ao Standby Controlfile como “UNNAMED0000n” na pasta /dbs ou /database dependendo do sistema operacional e, eventualmente, o MRP termina.

Solução de ORA-01111


Execute todas as etapas mencionadas no banco de dados em espera:

Etapa 1: Certifique-se de que o standby_file_management ='MANUAL'

NOTA:Para alterar o parâmetro db_file_name_convert se o Data Guard Broker estiver habilitado, edite os parâmetros usando o Broker,
DGMGRL>edit database '<standby>' set property DbFileNameConvert='/u01','+DATA';
DGMGRL>edit database '<standby>' set property StandbyFileManagement=manual;

Por padrão, StandbyFileManagement é AUTO pelo broker.

Etapa 2: Identifique o arquivo que é “unnamedn”
SQL> select name from v$datafile;
NAME
---------------------------------------
+DATA/TEST/datafiles/SYSTEM.DBF
+DATA/TEST/datafiles/UNDO.DBF
+DATA/TEST/datafiles/SYSAUX.DBF
+DATA/TEST/datafiles/index1.DBF
/u01/oracle/product/11.2.0/dms/UNNAMED00008

Etapa 3: Renomeie/crie o arquivo de dados para o nome de arquivo correto
SQL> alter database create datafile '/u01/oracle/product/11.2.0/dms/UNNAMED00008' as '+DATA/TEST/datafiles/appstex.dbf';
or
SQL>alter database create datafile '/u01/oracle/product/11.2.0/dms/UNNAMED00008' as new;

Etapa 4: Verifique se o nome do arquivo está correto
SQL> select name from v$datafile;
NAME
-------------------------------------------------
+DATA/TEST/datafiles/SYSTEM.DBF
+DATA/TEST/datafiles/UNDO.DBF
+DATA/TEST/datafiles/SYSAUX.DBF
+DATA/TEST/datafiles/index1.DBF
+DATA/TEST/datafiles/appstex.dbf


Etapa 5: Altere o STANDBY_FILE_MANAGEMENT para AUTO
SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO scope=both;


Etapa 6: Inicie o MRP (isso está usando o Real Time Apply)
SQL> alter database recover managed standby database using current logfile disconnect;
Database altered.

Etapa 7: Verifique se o MRP está sendo executado conforme o esperado
SQL> select process, status , sequence# from v$managed_standby;
PROCESS STATUS SEQUENCE#
--------- ------------ ----------
ARCH CLOSING 1014
ARCH CLOSING 1013
MRP0 APPLYING_LOG 1001
RFS IDLE 0
RFS IDLE 0
RFS IDLE 1015

Etapa 8: Certifique-se de corrigir o erro que causou a falha na criação do arquivo.

Precisamos garantir que os parâmetros STANDBY_FILE_MANAGEMENT e DB_FILE_CONVERT estejam corretos

Também lê
ORA-03113:fim de arquivo no canal de comunicação
ORA-00257:erro do arquivador. Conecte-se apenas internamente, até ser liberado.
banco de dados em espera física
https://support.oracle.com/knowledge/Oracle%20Database%20Products/1416554_1.html