Cuando se produce un error en el dispositivo principal, puede realizar una conmutación por error de la base de datos. En este tema se describe el procedimiento para los dispositivos que ejecutan versiones anteriores a la 9.0.0.

Nota: Este tema solo se aplica a los dispositivos que ejecutan versiones anteriores a la 9.0.0. Para obtener información relacionada con los dispositivos más recientes, consulte Conmutación por error de la base de datos: dispositivos más recientes.

Cuando se produce un error en el dispositivo principal, la base de datos secundaria es de solo lectura. Si se produce una conmutación por error, realice las tareas siguientes:

  • Habilite las operaciones de escritura en la base de datos secundaria
  • Promueva de forma permanente que el dispositivo del proveedor de servicios secundario pase a ser el principal
  • Promueva de forma permanente que el dispositivo del arrendatario secundario pase a ser el principal
  • Reinicie el dispositivo principal

Habilite las operaciones de escritura en la base de datos secundaria

El objetivo de este procedimiento es cambiar la base de datos principal al dispositivo secundario (proveedor de servicios o arrendatario) si el dispositivo principal no está disponible. El objetivo es habilitar las operaciones de escritura para que la base de datos del dispositivo secundario sea el origen de datos principal.

  1. Detenga dtService, av-manager y el servicio de diagnóstico tanto en el dispositivo principal (si está accesible) como en el secundario:
    sudo service dtService stop
    sudo service av-manager stop
    sudo service diagnose stop
  2. Detenga los demonios slony tanto en el dispositivo principal (si está accesible) como en el secundario:
    sudo killall slon
  3. En el dispositivo secundario, conéctese a la base de datos fdb y ejecute el siguiente comando SQL:
     drop schema _slony cascade;
  4. Repita el paso 3 para EDB y AVDB si el dispositivo pertenece a una organización del arrendatario.
  5. Si la base de datos del dispositivo principal sigue estando accesible, realice una copia de seguridad de la base de datos, copie los archivos de la misma y restáurela en el dispositivo secundario (consulte Copia de seguridad y restauración de bases de datos).
  6. Abra el archivo /usr/local/desktone/release/active/conf/fdb.properties para editar y eliminar la dirección IP del dispositivo principal.
  7. Repita el paso 6 para /usr/local/desktone/release/active/edb.properties si el dispositivo pertenece a una organización del arrendatario.
  8. Repita el paso 6 para /usr/local/desktone/release/active/avdb.properties si el dispositivo pertenece a una organización del arrendatario.
  9. Establezca las variables del entorno DB_HOST y DB_PASSWORD:
    export DB_HOST=IP_of_TA2_appliance
    export DB_PASSWORD=database_password
    
  10. Ejecute el script av-setup como sudo:
    sudo /usr/local/desktone/scripts/av-setup
  11. Abra el archivo applications.properties para editarlo:
    vi /usr/local/xmpms/diagnose/config/application.properties
  12. En el archivo applications.properties, edite las líneas como se indica a continuación:
    db.jdbc.url=jdbc:postgresql://<ip address>:5432/avdb?ssl=true
    db.fdb.jdbc.url=jdbc:postgresql://<ip address>:5432/fdb?ssl=true
    
  13. Inicie dtService, av-manager y el servicio de diagnóstico en el dispositivo secundario:
    service dtService start
    service av-manager start
    service diagnose start

Promocionar el dispositivo del proveedor de servicios secundario a principal

Para promocionar de forma permanente el dispositivo del proveedor de servicios secundario para que sea el dispositivo del proveedor de servicios principal, realice los pasos siguientes.

En este ejemplo, el dispositivo principal es "A" y el dispositivo secundario es "B", y se puede acceder al dispositivo A (se puede acceder a la base de datos en este dispositivo).

  1. Detenga dtService en todos los dispositivos del proveedor de servicios:
    service dtService stop
  2. Inicie sesión en todos los dispositivos del proveedor de servicios.
  3. Abra el archivo /usr/local/desktone/release/active/conf/fdb.properties para editar y eliminar la dirección IP del dispositivo principal que está en estado erróneo.
  4. Detenga todos los demonios slony en todos los dispositivos del proveedor de servicios:
    killall slon
  5. En los dispositivos principal y secundario, conéctese a la base de datos FDB y ejecute el siguiente comando SQL:
    drop schema _slony cascade;
  6. Ejecute los siguientes comandos SQL en el dispositivo secundario del centro de datos (Reemplace "A" y "B" por los nombres de sus dispositivos):
    fdb=# update appliance set capabilities = (capabilities & 65343) where name='A'; 
    fdb=# update appliance set capabilities = (capabilities | 192) where name='B';
  7. Inicie dtService en los dispositivos del proveedor de servicios que no sean el dispositivo con errores:
    service dtService start

    Confirme que el dispositivo esté activo y en ejecución antes de continuar con el siguiente paso.

  8. Detenga dtService en todos los dispositivos del proveedor de servicios, excepto en el dispositivo del proveedor de servicios principal (el dispositivo del proveedor de servicios secundario es el principal):
    service dtService stop
  9. Inicie los demonios slony en todos los dispositivos del proveedor de servicios:
    /usr/local/desktone/scripts/start_slon_fdb.sh
  10. Inicie sesión en el Centro de servicio del dispositivo del proveedor de servicios principal (el dispositivo del proveedor de servicios secundario es el principal) con el navegador y realice la operación de reinicialización de slony:
    1. Desplácese hasta dispositivos > Mantenimiento > Operaciones de slony.
    2. En la lista desplegable ID de organización, seleccione 1000.
    3. Haga clic en el botón Inicializar slony para reinicializar slony.
  11. Cuando se complete la reinicialización de slony, ejecute el siguiente comando en la FDB del dispositivo secundario en el centro de datos:
    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 salida debe aparecer de la siguiente manera:

    set_id | set_comment | local_id | master_node
    --------+--------------------------+----------+-------------   
    1 | All tables and Sequences | 1 | t  
    (1 row)
  12. Inicie dtService en todos los dispositivos, excepto en el dispositivo del proveedor de servicios con errores.
    service dtService start

Promocionar el dispositivo del arrendatario secundario a principal

Para promocionar de forma permanente el dispositivo del arrendatario secundario para que sea el dispositivo del arrendatario principal, realice los siguientes pasos.

En este ejemplo, el dispositivo principal es "A" y el dispositivo secundario es "B", y se puede acceder al dispositivo A (se puede acceder a la base de datos en este dispositivo).

  1. Detenga dtService en todos los dispositivos del arrendatario de la organización:
    service dtService stop
  2. Inicie sesión en todos los dispositivos del arrendatario de la organización.
  3. Abra el archivo /usr/local/desktone/release/active/conf/fdb.properties para editar y eliminar la dirección IP del dispositivo principal que está en estado erróneo.
  4. Detenga todos los demonios slony en todos los dispositivos del arrendatario de la organización:
    killall slon
  5. Si es necesario, realice una copia de seguridad de la base de datos en el dispositivo principal y restáurela en los dispositivos secundarios.
  6. En los dispositivos principal y secundario, conéctese a la base de datos FDB y ejecute el siguiente comando SQL:
    drop schema _slony cascade;
  7. Ejecute los siguientes comandos SQL en el dispositivo del proveedor de servicios principal (Reemplace "A" y "B" por los nombres de sus dispositivos):
    fdb=# update appliance set capabilities = (capabilities & 65343) where name='A';  
    fdb=# update appliance set capabilities = (capabilities | 192) where name='B';
  8. Inicie los demonios slony en todos los dispositivos del arrendatario de la organización:
    /usr/local/desktone/scripts/start_slon_fdb.sh  
    /usr/local/desktone/scripts/start_slon_edb.sh  
    /usr/local/desktone/scripts/start_slon_avdb.sh
  9. Inicie sesión en el Centro de servicio del dispositivo del proveedor de servicios principal en el navegador y realice la operación de reinicialización de slony:
    1. Desplácese hasta dispositivos > Mantenimiento > Operaciones de slony.
    2. Seleccione el identificador de la organización del arrendatario en la lista desplegable ID de organización.
    3. Seleccione Tejido para la etiqueta del nombre de instancia de base de datos.
    4. Haga clic en el botón Inicializar slony para reinicializar slony.
  10. Cuando se complete la reinicialización de slony, ejecute el siguiente comando en la FDB del dispositivo del arrendatario secundario en el centro de datos:
    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 salida debe aparecer de la siguiente manera (si se produjo un error en el dispositivo principal en el primer centro de datos):

    set_id | set_comment | local_id | master_node  
    --------+--------------------------+----------+-------------   
    1 | All tables and Sequences | 1 | t
    (1 row)
  11. Inicie dtService en todos los dispositivos del arrendatario, excepto el dispositivo del arrendatario que se encuentra en estado de error.
     service dtService start

Reinicie el dispositivo principal

Cuando reinicie el dispositivo principal tras la conmutación por error, debe reinicializar slony tanto en EDB como en AVDB.