Lorsque le dispositif principal échoue, vous pouvez effectuer un basculement de la base de données. Cette section décrit la procédure pour les dispositifs dont les versions sont antérieures à la version 9.0.0.
Lorsque le dispositif principal tombe en panne, la base de données secondaire est en lecture seule. Lorsque le basculement se produit, effectuez les tâches suivantes :
- Activer les opérations d'écriture sur la base de données secondaire
- Promouvoir de façon permanente le dispositif du fournisseur de services secondaire pour qu'il devienne le dispositif principal
- Promouvoir de façon permanente le dispositif du locataire secondaire pour qu'il devienne le dispositif principal
- Redémarrer le dispositif principal
Activer les opérations d'écriture sur la base de données secondaire
L'objectif de cette procédure est de basculer la base de données maître vers le dispositif secondaire (locataire ou fournisseur de services) si le dispositif principal n'est pas disponible. Pour cela, vous devez activer les opérations d'écriture afin que la base de données du dispositif secondaire devienne la source de données principale.
- Arrêtez les services dtService, av-manager et diagnostic sur le dispositif principal (s'il est accessible) et sur le dispositif secondaire :
sudo service dtService stop sudo service av-manager stop sudo service diagnose stop
- Arrêtez tous les démons slony sur le dispositif principal (s'il est accessible) et sur les dispositifs secondaires :
sudo killall slon
- Sur le dispositif secondaire, connectez-vous à la base de données FDB et exécutez la commande SQL suivante :
drop schema _slony cascade;
- Répétez l'étape 3 pour les bases de données AVDB et EDB si le dispositif appartient à une organisation de locataire.
- Si la base de données sur le dispositif principal est toujours accessible, sauvegardez-la, copiez ses fichiers et restaurez-la sur le dispositif secondaire (reportez-vous à la section Sauvegarde et restauration de bases de données).
- Ouvrez le fichier /usr/local/desktone/release/active/conf/fdb.properties pour le modifier et supprimez l'adresse IP du dispositif principal.
- Répétez l'étape 6 pour /usr/local/desktone/release/active/edb.properties si le dispositif appartient à une organisation de locataire.
- Répétez l'étape 6 pour /usr/local/desktone/release/active/avdb.properties si le dispositif appartient à une organisation de locataire.
- Définissez les variables d'environnement DB_HOST et DB_PASSWORD :
export DB_HOST=IP_of_TA2_appliance export DB_PASSWORD=database_password
- Exécutez le script av-setup en tant que sudo :
sudo /usr/local/desktone/scripts/av-setup
- Ouvrez le fichier applications.properties pour modification :
vi /usr/local/xmpms/diagnose/config/application.properties
- Dans le fichier applications.poperties, modifiez les lignes comme suit :
db.jdbc.url=jdbc:postgresql://<ip address>:5432/avdb?ssl=true db.fdb.jdbc.url=jdbc:postgresql://<ip address>:5432/fdb?ssl=true
- Démarrez les services dtService, av-manager et diagnose sur le dispositif secondaire :
service dtService start service av-manager start service diagnose start
Promouvoir le dispositif du fournisseur de services secondaire en dispositif principal
Pour promouvoir de façon permanente le dispositif du fournisseur de services secondaire en tant que dispositif du fournisseur de services principal, procédez comme suit.
Dans cet exemple, le dispositif principal est « A » et le dispositif secondaire est « B ». Le dispositif A est accessible (la base de données dans ce dispositif est accessible).
- Arrêtez dtService sur tous les dispositifs du fournisseur de services :
service dtService stop
- Connectez-vous à tous les dispositifs du fournisseur de services.
- Ouvrez le fichier /usr/local/desktone/release/active/conf/fdb.properties pour le modifier et supprimez l'adresse IP du dispositif principal en état d'échec.
- Arrêtez tous les démons slony sur tous les dispositifs du fournisseur de services :
killall slon
- Sur les dispositifs principal et secondaire, connectez-vous à la base de données FDB et exécutez la commande SQL suivante :
drop schema _slony cascade;
- Exécutez les commandes SQL suivantes dans le dispositif secondaire du centre de données (remplacez « A » et « B » par les noms de vos dispositifs) :
fdb=# update appliance set capabilities = (capabilities & 65343) where name='A'; fdb=# update appliance set capabilities = (capabilities | 192) where name='B';
- Démarrez dtService sur les dispositifs du fournisseur de services autres que le dispositif ayant échoué :
service dtService start
Vérifiez que le dispositif est en cours d'exécution avant de passer à l'étape suivante.
- Arrêtez dtService sur tous les dispositifs du fournisseur de services, à l'exception du dispositif du fournisseur de services maître (le dispositif du fournisseur de services secondaire est le dispositif maître) :
service dtService stop
- Démarrez les démons slon dans tous les dispositifs du fournisseur de services :
/usr/local/desktone/scripts/start_slon_fdb.sh
- Connectez-vous au centre de service du dispositif du fournisseur de services maître (le dispositif du fournisseur de services secondaire est le dispositif maître) avec votre navigateur et réinitialisez slony :
- Accédez à .
- Dans la liste déroulante ID de l'organisation, sélectionnez 1000.
- Cliquez sur le bouton pour réinitialiser slony.
- Une fois la réinitialisation de slony terminée, exécutez la commande suivante dans la base de données FDB du dispositif secondaire dans le centre de données :
SELECT a.set_id, a.set_comment, (SELECT last_value FROM _slony.sl_local_node_id) AS local_id, CASE WHEN a.set_origin = (SELECT last_value FROM _slony.sl_local_node_id)THEN TRUE ELSE FALSE END AS master_node from _slony.sl_set a;
La sortie doit s'afficher comme suit :
set_id | set_comment | local_id | master_node --------+--------------------------+----------+------------- 1 | All tables and Sequences | 1 | t (1 row)
- Démarrez dtService sur tous les dispositifs à l'exception du dispositif du fournisseur de services ayant échoué.
service dtService start
Promouvoir le dispositif du locataire secondaire en dispositif principal
Pour promouvoir de façon permanente le dispositif du locataire secondaire en dispositif du locataire principal, procédez comme suit.
Dans cet exemple, le dispositif principal est « A » et le dispositif secondaire est « B ». Le dispositif A est accessible (la base de données dans ce dispositif est accessible).
- Arrêtez dtService sur tous les dispositifs du locataire de l'organisation :
service dtService stop
- Connectez-vous à tous les dispositifs du locataire de l'organisation.
- Ouvrez le fichier /usr/local/desktone/release/active/conf/fdb.properties pour le modifier et supprimez l'adresse IP du dispositif principal en état d'échec.
- Arrêtez tous les démons slony sur tous les dispositifs du locataire de l'organisation :
killall slon
- Si nécessaire, sauvegardez la base de données sur le dispositif maître et restaurez-la sur les dispositifs esclaves.
- Dans les dispositifs maître et esclave, connectez-vous à la base de données FDB et exécutez la commande SQL suivante :
drop schema _slony cascade;
- Exécutez les commandes SQL suivantes sur le dispositif du fournisseur de services maître (remplacez « A » et « B » par les noms de vos dispositifs) :
fdb=# update appliance set capabilities = (capabilities & 65343) where name='A'; fdb=# update appliance set capabilities = (capabilities | 192) where name='B';
- Démarrez les démons slon sur tous les dispositifs du locataire dans l'organisation :
/usr/local/desktone/scripts/start_slon_fdb.sh /usr/local/desktone/scripts/start_slon_edb.sh /usr/local/desktone/scripts/start_slon_avdb.sh
- Connectez-vous au centre de service du dispositif du fournisseur de services maître avec votre navigateur et réinitialisez slony :
- Accédez à .
- Dans la liste déroulante ID de l'organisation, sélectionnez l'ID de l'organisation du locataire.
- Pour l'étiquette de nom de l'instance de base de données, sélectionnez Infrastructure.
- Cliquez sur le bouton pour réinitialiser slony.
- Une fois la réinitialisation de slony terminée, exécutez la commande suivante dans la base de données FDB du dispositif du locataire secondaire dans le centre de données :
SELECT a.set_id, a.set_comment, (SELECT last_value FROM _slony.sl_local_node_id) AS local_id, CASE WHEN a.set_origin = (SELECT last_value FROM _slony.sl_local_node_id) THEN TRUE ELSE FALSE END AS master_node from _slony.sl_set a;
La sortie doit s'afficher comme suit (si le dispositif principal a échoué dans le premier centre de données) :
set_id | set_comment | local_id | master_node --------+--------------------------+----------+------------- 1 | All tables and Sequences | 1 | t (1 row)
- Démarrez dtService sur tous les dispositifs du locataire à l'exception du dispositif du locataire qui est en état d'échec.
service dtService start
Redémarrer le dispositif principal
Lorsque vous redémarrez le dispositif principal après le basculement, effectuez une réinitialisation de slony sur les bases de données EDB et AVDB.