|
|
|
|
- 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
Replicación de servidores HFSQL (Programación)
Disponible solo con este tipo de conexió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: 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:
- 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). - 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.
Esta página también está disponible para…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|