Bonjour,
Depuis quelques semaines, je suis confronté à un problème de synchronisation de bases. Je gère deux bases de données (dataguard), une primaire et une standby.
Je reçois depuis quelques temps un message d'erreur sur tous les scripts RMAN qui sont passés sur la base primaire. Je reçois les messages RMAN 8137 et 8591. Je sais pourquoi ces messages sont reçus : les archivelog de la base primaire n'ont pas été appliqués sur la base standby, et donc les archivelog sont toujours requis, et donc non supprimés.
J'ai tenté de suivre la procédure Oracle de resynchronisation des bases (c'est le document 836986.1 de la base de connaissances Oracle) mais sans succès jusqu'à présent.
J'ai lancé en mode rman debug une commande de suppression des archives) et je vois ainsi passer ceci (outres les messages d'erreur 8137 et 8591)
Depuis la séquence 20852, les archivelogs n'ont pas été appliqués sur la standby.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 DBGSQL: EXEC SQL AT TARGET begin dbms_rcvman . getRequiredSCN ( reqscn => :safescn:safescn_i , rlgscn => :reqrlgscn:reqrlgscn_i ) ; end ; [15:39:43.190] DBGSQL: sqlcode=0 [15:39:44.174] DBGSQL: :b1 = 1444336744 DBGSQL: :b3 = 380426159 DBGRCVMAN: ENTERING getRequiredSCN DBGRCVMAN: this_cftype=CURRENT DBGRCVMAN: ENTERING getAppliedSCN, alldest=0 DBGRCVMAN: ENTERING anyRemoteDestinations DBGRCVMAN: no_target = 0 DBGRCVMAN: EXITING anyRemoteDestinations anyRemoteDestinations - target= DBGRCVMAN: EXITING getAppliedSCN, alldest=0 getAppliedSCN - appscn=,rlgscn= DBGRCVMAN: Got dest = 2, thread=1,sequence=16675,next_change=1206438636,applied=YES,resetlogs_change=380426159 DBGRCVMAN: gap_scn=,high_scn=,possible_gap= BGRCVMAN: Got dest = 2, thread=1,sequence=20830,next_change=1430809158,applied=YES,resetlogs_change=380426159 DBGRCVMAN: gap_scn=,high_scn=,possible_gap= DBGRCVMAN: Got dest = 2, thread=1,sequence=20852,next_change=1431558961,applied=NO,resetlogs_change=380426159 DBGRCVMAN: gap_scn=,high_scn=,possible_gap= DBGRCVMAN: Got dest = 2, thread=1,sequence=21328,next_change=1454979735,applied=NO,resetlogs_change=380426159 DBGRCVMAN: gap_scn=,high_scn=,possible_gap=1444336744 DBGRCVMAN: Got dest = 11, thread=1,sequence=1,next_change=1,applied=,resetlogs_change=0 DBGRCVMAN: gap_scn=1444336744,high_scn=1454979735,possible_gap= DBGRCVMAN: Use gap_scn:reqscn=1444336744,rlgscn=380426159 DBGRCVMAN: EXITING getRequiredSCN getRequiredSCN - reqscn=1444336744,rlgscn=380426159 ==> 444336744
Le premier archivelog qui est présent sur la base primaire correspond à la séquence 21095.
J'ai tenté une resynchronisation des bases en effectuant un backup incrémental à partir du premier archivelog non transféré sur la standby (soit le 21095), mais ça n'a pas marché. Les archivelog sont toujours sur la base primaire et toujours requis.
Que faudrait il que je fasse lundi ?
Soit je tente un backup incrémental en partant du numéro de séquence 20852 (scn 1431558961) ou du numéro de séquence 20830 (scn 1430809158, dernier archivelog pris en compte par la standby).
Soit je tente de supprimer en force tous les archivelog, et auquel cas je sais que j'aurai des manip à faire sur la standby, mais quoi, une sauvegarde à froid de la primary pour intégration dans la standby ?
Partager