Oracle
 sql >> Base de données >  >> RDS >> Oracle

ORA-01111 dans MRP dans la base de données de secours physique

Il y a quelque temps,  MRP dans la base de données de secours a échoué avec  ORA-01111 avec l'erreur détaillée suivante dans le journal des alertes

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'

Raison de ORA-01111

Cette erreur ORA-01111 se produit si nous ajoutons un fichier de données OU un tablespace dans la base de données PRIMARY et qui n'a pas pu être traduit dans la base de données de secours pour ces raisons :

  • Standy_file_management est défini sur MANUEL
  • Primary &Physical Standby ont des structures de fichiers différentes et DB_FILE_NAME_CONVERT n'est pas défini en fonction des structures de répertoires dans Primary et Standby
  • Espace insuffisant ou autorisations erronées sur la base de données de secours pour créer le fichier de données

Le journal redo généré à partir du primaire contiendra des informations sur l'espace de table/fichier de données ajoutés, mais il n'a pas pu être créé avec succès dans la base de données de secours physique en raison de standby_file_management =MANUAL
ou n'est pas en mesure de trouver le dossier spécifié en raison d'un / conversion de nom de fichier incorrecte. L'entrée de fichier est ajoutée au fichier de contrôle de secours en tant que "UNNAMED0000n" dans le dossier /dbs ou /database en fonction du système d'exploitation et éventuellement le MRP se termine.

Solution de ORA-01111

Effectuez toutes les étapes mentionnées sur la base de données de secours :

Étape 1 : Assurez-vous que standby_file_management ='MANUAL'

REMARQUE :Pour le paramètre db_file_name_convert, modifiez si le Data Guard Broker est activé, puis modifiez les paramètres à l'aide du Broker,

DGMGRL>edit database '<standby>' set property DbFileNameConvert='/u01','+DATA';
DGMGRL>edit database '<standby>' set property StandbyFileManagement=manual;

Par défaut, StandbyFileManagement est AUTO par courtier.

Étape 2 : Identifiez le fichier "sans nom"

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

Étape 3 : Renommez/créez le fichier de données avec le bon nom de fichier

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;

Étape 4 : Vérifiez que le nom de fichier est correct

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


Étape 5 : Changez STANDBY_FILE_MANAGEMENT en AUTO

SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO scope=both;


Étape 6 : Démarrer le MRP (cela utilise Real Time Apply)

SQL> alter database recover managed standby database using current logfile disconnect;
Database altered.

Étape 7 : Vérifiez que le MRP fonctionne comme prévu

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

Étape 8 : Assurez-vous d'avoir corrigé l'erreur qui a provoqué l'échec de la création du fichier.

Nous devons nous assurer que les paramètres STANDBY_FILE_MANAGEMENT et DB_FILE_CONVERT sont corrects

Lit également
ORA-03113 :fin de fichier sur le canal de communication
ORA-00257 :erreur de l'archiveur. Connexion interne uniquement, jusqu'à libération.
base de données de secours physique
https://support.oracle.com/knowledge/Oracle%20Database%20Products/1416554_1.html