Changer la destination des archivelogs automatiquement

C’est plutôt étonnant mais on trouve peu d’informations sur l’utilisation de la clause alternate avec location dans log_archive_dest_n. Pourtant, il est possible d’avoir une destination distante, sur NFS par exemple, et que, si celle-ci n’est plus disponible, les archivelogs soient stockés localement.

Pour tout dire, il vaut mieux stocker les archivelogs sur les 2 destinations, locale et distante quitte à permettre à votre base de données de continuer à opérer si une destination échoue et à superviser le bon fonctionnement des 2 destinations. C’est sans doute pour cette raison que les différentes sources d’informations sont avares de description du cas précédent. Enfin, j’ai d’autres cas d’utilisation en tête, alors voici un exemple d’une configuration qui change de destination automatiquement en cas d’indisponibilité de la première destination:

alter session set log_archive_dest_1='location=/nfsmount/db/arch -
mandatory reopen=0 alternate=log_archive_dest_2';

alter session set log_archive_dest_state_1=enable;

alter session set log_archive_dest_2='location=/local/db/arch';

alter session set log_archive_dest_state_2=alternate;

Vous noterez que la première destination est un sous répertoire du point de montage de sorte que le process d’archive échoue si cette destination n’est plus accessible.

Une fois que l’environnement a basculé de la première à sa seconde destination, elle ne revient pas automatiquement en arrière; Il faut règler le problème manuellement, en exécutant, par exemple, le script ci-dessous:

alter session set log_archive_dest_state_1=enable;

alter session set log_archive_dest_state_2=alternate;

Et il faudra aussi ré-acheminer les archivelogs sur le stockage distant et le re-enregistrer dans le catalogue ou le controlfile. Je me demande si ça fonctionne avec une version Standard Edition ou Standard-One ?