Mettre à niveau une base de données standby dans une configuration data guard
Par Bertrand le lundi, juillet 26 2010, 18:26 - disponibilité des données - Lien permanent
Vous avez supprimé un fichier archive log avant qu'il ne soit appliqué dans la base standby de votre configuration data guard. Le fichier alert log indique un gap. Le procédé suivant vous permet de mettre la base standby au même niveau que la base principale.
1. Sur la base standby arrêter le process de récuperation:
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
2. Sur la base standby trouver le SCN courant; ce numero sera utilisé pour le backup incrémental sur la base primaire:
SELECT CURRENT_SCN FROM V$DATABASE;
3. Avec RMAN, se connecter a la base primaire et effectuer une sauvegarde incrémentale à partir du SCN de la précédente étape (ici 7431423009):
BACKUP INCREMENTAL FROM SCN 7431423009 DATABASE FORMAT '/databck03/dmps/stdbybkp/ForStandby_%U' tag 'FORSTANDBY';
4. Transférer le jeu de sauvegarde sur le serveur standby:
scp /databck03/dmps/stdbybkp/ForStandby_* 172.17.1.109:/databck01/stdbybkp
5. Se connecter à la base standby avec RMAN et cataloguer le jeu de sauvegarde:
CATALOG START WITH '/databck01/stdbybkp';
6. Recouvrer la base standby avec le jeu de sauvegarde catalogué:
RECOVER DATABASE NOREDO;
7. Avec RMAN, se connecter à la base primaire et faire une sauvegarde du fichier de controle (notez l'option "for standby format"):
BACKUP CURRENT CONTROLFILE FOR STANDBY FORMAT '/databck03/dmps/stdbybkp/ForStandbyCTRL.bck';
8. Copier le backup du fichier de control sur le serveur standby:
scp /databck03/dmps/stdbybkp/ForStandbyCTRL.bck 172.17.1.109:/databck01/stdbybkp
9. Redémarrer la base standby en mode NOMOUNT:
SHUTDOWN; STARTUP NOMOUNT;
10. Restorer le fichier de control dans la base standby:
RESTORE STANDBY CONTROLFILE FROM '/databck01/stdbybkp/ForStandbyCTRL.bck';
11. Redémarrer la base standby en mode mount:
SHUTDOWN; STARTUP MOUNT;
12. Sur la base standby, effacer tous les groupes de redo log:
ALTER DATABASE CLEAR LOGFILE GROUP 1; ALTER DATABASE CLEAR LOGFILE GROUP 2; ALTER DATABASE CLEAR LOGFILE GROUP 3;
13. Sur la base standby, redémarrer le process de recouvrement:
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;