AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente.  Haga clic aquí  para ver la versión en inglés.
Ayuda / WLanguage / Administrar bases de datos / HFSQL / Gestión de la replicación / Replicación de servidores
  • Presentación
  • ¿Cómo proceder?
  • Condición previa
  • Etapas a seguir
  • Para una replicación bidireccional
  • Casos especiales: Replicación lineal/Replicación en estrella/Replicación en estructura de árbol
  • Caso especial: Replicación de servidores y cambio de usuarios
  • Caso especial: Cambiar el nombre de los servidores
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
Presentación
La replicación de los servidores HFSQL se utiliza para replicar automáticamente los datos de servidor a servidor, de forma asíncrona..
La replicación de servidores HFSQL puede ser implementada:
¿Cómo proceder?

Condición previa

La implementación de la replicación unidireccional o bidireccional entre varios servidores HFSQL requiere hacer algunos cambios en la aplicación.
Estos cambios no son necesarios en una réplica de reserva.
1. En cuanto al análisis de la aplicación
En el análisis, los ficheros de datos implicados en la replicación de los servidores HFSQL deben tener:
  • un identificador de automatic en 8 bytes. Si el identificador automatic está codificado en 4 bytes, debe ser modificado.
    Atención: Esta modificación puede provocar modificaciones en el código de la aplicación. Por ejemplo, cuando se manejan identificadores de archivos con variables enteras.
    • Busca "n is int = file.autoid" en tu aplicación para reemplazar el entero por un entero de 8 bytes.
    • Compruebe si los identificadores de su archivo se pasan a procedimientos que esperan un número entero.. En este caso, debe eliminar el tipo de la declaración de la Procedure, o utilizar un entero de 8 bytes.
  • una clave primaria (es decir, una clave única simple o compuesta que no acepta un valor nulo y cuyos componentes no aceptan un valor nulo).
2. En cuanto a la solicitud
  • no se debe utilizar HCross.
  • Un archivo no se puede copiar si se replica: no se debe utilizar HCopyFile.
    Observación: Para una replicación unidireccional:
    • el copy al servidor maestro no está permitido.
    • el copy del servidor maestro está permitido.
  • No se puede restaurar un archivo replicado: HRestoreBackup no puede utilizarse.
  • Los clusters HFSQL no deben ser usados en los datos replicados..
3. Seleccione la información a replicar: La implementación de la replicación de servidores reduce el rendimiento de los servidores HFSQL. Le aconsejamos que implemente la replicación entre servidores sólo para los archivos de datos realmente afectados por la replicación.. No dude en excluir algunos archivos de la replicación.
Atención:
  • La replicación bidireccional entre varios servidores HFSQL requiere el uso de direcciones IP fijas o "reverse-DNS".: debe encontrarse el nombre del servidor en el que se creó la réplica.
  • La comunicación del servidor HFSQL del suscriptor al servidor HFSQL maestro utilizará la IP Address que el servidor maestro utilizó para Contact el suscriptor al crear la réplica. Esta IP Address (utilizada por el servidor suscriptor para Contact el servidor maestro) se puede encontrar a través del Centro HFSQL control del servidor suscriptor en la configuración de la replicación (campo "Servidor de destino").

Etapas a seguir

Para implementar una replicación entre dos servidores HFSQL mediante programación:
  1. Inicializar el servidor maestro y el servidor de abonado con HRSInit.
    Ejemplos:
    • Inicialización de un ordenador maestro:
      MasterHFConnection is Connection
      MasterHFConnection.Provider = hAccessHFClientServer
      MasterHFConnection.Server = "MasterServerName:4900"
      MasterHFConnection.User = "Admin"
      MasterHFConnection.Password = ""
      HOpenConnection(MasterHFConnection)
       
      HRSInit(MasterHFConnection, hrsMaster, 1, "MasterPassword", 4996, 5)
    • Inicialización de un equipo de suscriptor:
      SubscriberHFConnection is Connection
      SubscriberHFConnection.Provider = hAccessHFClientServer
      SubscriberHFConnection.Server = "SubscriberServerName:4900"
      SubscriberHFConnection.User = "Admin"
      SubscriberHFConnection.Password = ""
      HOpenConnection(SubscriberHFConnection)
       
      HRSInit(SubscriberHFConnection, hrsSubscriber, 2, "SubscriberPassword", 4997, 7)
    Observación: Para definir una replicación en un servidor HFSQL, el usuario debe ser administrador o debe tener los derechos para definir una replicación entre dos servidores (hRightsServerReplication constante en HModifyServerRights y HInfoServerRights).
  2. Definir la replicación entre los dos servidores HFSQL
    Para definir la replicación entre los 2 servidores HFSQL, debe:
    • definir una variable de tipo hRSConfig.
    • utilizar HRSAddConfig para configurar la replicación en el ordenador maestro.
    Por ejemplo:
    // Define the replication
    ConfigReplication1 is hRSConfig
    ConfigReplication1.Bidirectional = False
    ConfigReplication1.Server = "NameSubscriberServer:4997"
    Add(ConfigReplication1.File, gsDatabaseName)
    Add(ConfigReplication1.File, "-" + gsDatabaseName + "\FileToExcludefic")
    ConfigReplication1.ModificationConflictResolution = hmcrMoreRecent
    ConfigReplication1.Password = "SubscriberPassword"
     
    // Schedule the replication (every day at 23:00)
    MyScheduling is hScheduling
    MyScheduling.Month = "*"
    MyScheduling.DayOfWeek = "*"
    MyScheduling.Hour = "23"
    MyScheduling.Minute = "0"
     
    ConfigReplication1.Scheduling = MyScheduling
     
    // Add the replication without copying files
    HRSAddConfig(MasterHFConnection, ConfigReplication1, hrsNoCopy)

    En este código, los puntos importantes son los siguientes:
    • el servidor HFSQL del suscriptor y el puerto utilizado para la replicación se especifican con la opción Server Property. El puerto utilizado para la replicación debe corresponder al especificado en HRSInit en el servidor de abonado.
    • la contraseña especificada con el Password Property debe coincidir con la especificada en HRSInit en el servidor de abonado.
    • se ha definido una programación. Si no se especificara esta programación, la replicación se ejecutaría cada vez que se realizara una modificación (modo streaming)..
    • la resolución de los conflictos de modificación es la siguiente: el más reciente tiene prioridad: por lo tanto, no olvide sincronizar los relojes en los servidores antes de iniciar la replicación.
Para definir una réplica de repuesto, utilice Spare Property en lugar de Bidireccional.

Para una replicación bidireccional

Durante una replicación bidireccional:
  • HRSInit debe utilizarse en los dos servidores especificando para cada uno de ellos que son a la vez maestro y abonado.
    HRSInit(MasterHFConnection, hrsSubscriber + hrsMaster, 1, "Password", 4996, 5)

    HRSInit(SubscriberHFConnection, hrsSubscriber + hrsMaster, 2, "Password", 4996, 7)
  • Se recomienda utilizar el mismo puerto de replicación. Este puerto debe estar abierto en ambas direcciones.
  • La contraseña utilizada para la replicación y especificada con HRSInit debe ser la misma para los servidores maestro y suscriptor.
  • HRSAddConfig puede utilizarse en cualquier servidor (maestro o abonado) para definir la replicación bidireccional.

Casos especiales: Replicación lineal/Replicación en estrella/Replicación en estructura de árbol

La replicación de los servidores HFSQL se define entre dos servidores HFSQL.
Tiene la posibilidad de utilizar todas las configuraciones posibles:
  • replicación lineal: los servidores son relacionado de dos en dos. Ejemplo:
    • S1 (maestro) y S2 (suscriptor) realizan una replicación unidireccional,
    • S2 (maestro) y S3 (suscriptor) realizan una replicación unidireccional,
  • replicación en estrella: un servidor maestro es relacionado para varios servidores de suscriptores (siempre de 2 en 2). Ejemplo:
    • S1 (maestro) y S2 (suscriptor) realizan una replicación bidireccional,
    • S1 (maestro) y S3 (suscriptor) realizan una replicación bidireccional,
    • S1 (maestro) y S4 (suscriptor) realizan una replicación bidireccional.
  • replicación en estructura de árbol: un servidor maestro es relacionado para varios servidores de suscriptores (siempre de 2 en 2). Cada servidor de suscriptores es relacionado para otros servidores de suscriptores.. Ejemplo:
    • S1 (maestro) y S2-1 (suscriptor) realizan una replicación unidireccional,
    • S1 (maestro) y S2-2 (suscriptor) realizan una replicación unidireccional,
    • S2-1 (maestro) y S2-1-1 (suscriptor) realizan una replicación unidireccional.
    • S2-1 (maestro) y S2-1-2 (suscriptor) realizan una replicación unidireccional.
    • S2-2 (maestro) y S2-2-1 (suscriptor) realizan una replicación unidireccional.
    • S2-2 (maestro) y S2-2-2 (suscriptor) realizan una replicación unidireccional.

Caso especial: Replicación de servidores y cambio de usuarios

La replicación de los servidores HFSQL se define entre dos servidores HFSQL. También tiene la capacidad de implementar una replicación en streaming, con acceso de usuario en un único servidor HFSQL..
En algunas situaciones (por ejemplo, actualización del servidor), los usuarios pasan del servidor maestro HFSQL al servidor de suscriptores HSQL..
En este caso, se debe:
  • cerrar los accesos al servidor maestro HFSQL,
  • asegurarse de que los datos a replicar fueron enviados al servidor de suscriptores y procesados por éste.
  • permitir los accesos al servidor de suscriptores.
HRSWaitForDataProcess se utiliza para esperar:
  • los datos a replicar en el servidor maestro para ser enviados al servidor de suscriptores.
  • los datos a replicar recibidos en el servidor de suscriptores se aplicarán íntegramente.

Caso especial: Cambiar el nombre de los servidores

Puede ser necesario cambiar el nombre de uno de los servidores de replicación.
Atención: Esta operación debe realizarse si sólo se ha cambiado el nombre del servidor (los demás aspectos del servidor no se modifican: la configuración, la arquitectura de la base de datos y los archivos del sistema deben ser los mismos). En particular, la configuración de replicación en el archivo HFConf.ini no debe haber sido modificada. Ejemplo:
[REPLICATION]
PRIORITY=2
PASSWORD=XXXXX
PORT=9792
ROLE=3
SERVER_ID=2
Para tener en cuenta este cambio en la replicación, utilice HRSRenameServer.
Versión mínima requerida
  • Versión 18
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 27/05/2022

Señalar un error o enviar una sugerencia | Ayuda local