Trabajar con cambios de esquema
Este tema se aplica sólo a ArcEditor y ArcInfo.
Cuando se crea una réplica, los datos y el esquema se copian de la geodatabase primaria en la geodatabase secundaria. Los datos incluyen las filas que se van a replicar de los datasets de la réplica. El esquema está compuesto por los campos, dominios, subtipos y otras propiedades que describen los datos replicados.
Inicialmente, los esquemas son idénticos en ambas réplicas pero, con el tiempo, podrían aplicarse cambios a cada esquema de réplica. Por ejemplo, una réplica puede necesitar campos adicionales para completar un proyecto, mientras que la réplica relativa puede necesitar aplicar un nuevo dominio a un campo existente. Cuando esto pasa, los esquemas de las réplicas dejan de ser iguales.
Para trabajar con diferencias de esquema en réplicas se proporciona lo siguiente:
Mantenimiento de diferencias de esquemas: puede elegir permitir que las réplicas hagan cambios de esquema independientemente unas de otras. La replicación de geodatabases está diseñada para permitir la mayoría de las diferencias de esquema entre réplicas, permitiendo que la sincronización de datos continúe funcionando en la mayoría de los casos.
Siempre que se aplica un cambio de esquema a una réplica pero no a la otra, se deben esperar los siguientes problemas:
- Ediciones que no se sincronizan: la sincronización de datos solo importa los cambios para las tablas y los cambios que son comunes a ambas réplicas. Si se hace una edición en un campo que no esté en la réplica relativa, no se aplicará al importar los cambios. Otro ejemplo es cuando se suprime una red geométrica en una réplica pero no en la otra. Cuando esto pasa, la clase de cruce huérfano se elimina y, en consecuencia, los cambios de la clase de cruce huérfano relativo no se aplican.
- Valores no válidos: los cambios que infringen dominios, subtipos, reglas de conectividad y reglas de relación se aplican al sincronizar cambios. Las herramientas de validación del editor se pueden utilizar para comprobar los valores recién importados.
- Errores de sincronización de datos: pueden ocurrir cuando se hace manualmente un cambio de esquema en ambas réplicas. Por ejemplo, quizá desee agregar un campo a una tabla. Si lo hace, asegúrese de realizar exactamente el mismo cambio de esquema en todos los casos. Si hay una diferencia (por ejemplo, un campo es una cadena de caracteres en una réplica pero un entero en la otra), se producirá un error de sincronización de datos.
- Cambios no compatibles: algunos tipos de cambio de esquema pueden provocar que la sincronización falle, pero no se muestra ninguna advertencia si se realiza el cambio. Estos cambios no son detectables por el sistema de replicación de geodatabases. Incluyen operaciones de nivel de base de datos tales como cambiar permisos en tablas de la base de datos. Si se cambian los permisos a solo lectura para los datos replicados, se producirá un error al intentar importar los cambios desde la réplica relativa.
Aplicar cambios de esquema entre réplicas: la modificación del esquema de una réplica para que concuerde con el esquema de una réplica relativa es un proceso completamente separado de la sincronización de datos. Para este propósito se proporcionan tres herramientas: Comparar Esquema de Réplica, Importar el esquema de la réplica y Exportar el esquema de la réplica. Las herramientas están disponibles en la barra de herramientas Geodatabase Distribuida de ArcMap, en el menú contextual Geodatabase Distribuida del árbol de catálogo y como herramientas de geoprocesamiento.
Las herramientas se utilizan en un proceso de dos pasos que implica ejecutar primero la herramienta Comparar Esquema de Réplica para generar un archivo XML que contenga los cambios del esquema y, a continuación, importar estos cambios con la herramienta Importar el esquema de la réplica. Si está trabajando en un entorno desconectado, primero debe ejecutar la herramienta Exportar el esquema de la réplica para exportar el esquema con los cambios a un archivo XML. Este archivo se puede transportar entonces en soportes tales como CD o DVD para que sirvan de entrada a la herramienta Comparar Esquema de Réplica.
La siguiente es una lista de cambios de esquema y de si se pueden aplicar o no:
Agregar |
Cambiar |
Suprimir |
|
Campo |
S |
S (dominios) |
S |
Dominio |
S |
S |
S |
Tabla/Clase de entidad |
S |
Y (dominios, agregar/suprimir campos) |
S |
Red geométrica |
N |
N |
S |
Topología |
N |
N |
S |
Dataset de entidad |
N |
N |
S |
Clase de relación |
N |
Y (agregar/suprimir campos, dominios) |
S |
La adición de una clase de entidad o tabla a una réplica no se puede lograr con las herramientas antes descritas. En su lugar, es necesario ejecutar código de ArcObjects. Ver un ejemplo de este código
Quitar datos de una réplica: una lista de los datasets implicados en cada réplica se almacena en una geodatabase de réplica. Si se elimina uno de estos datasets, se muestra una advertencia. Si decide continuar con la eliminación, el dataset se quita en la lista de datasets de la réplica. Puede volver a agregar los datos a una réplica utilizando la API de ArcObjects. Además, tenga en cuenta lo siguiente:
- Si suprime una tabla o una clase de entidad y desea volver a agregarla a la réplica, debe ejecutar código para hacerlo. Crearla de nuevo simplemente no funcionará.
- Si suprime una red geométrica o topología, no podrá volverla a agregar a la réplica. Las réplicas continuarán sincronizándose; sin embargo, la sincronización de excepciones de topología no se admite, y tampoco es posible sincronizar los cambios realizados en la clase de cruce huérfano.
- Suprimir un dataset de entidad y volver a agregar las clases a la réplica no tendrá ningún efecto.
- No se puede suprimir clases de relación y agregarlas de nuevo a la réplica.
Identificar diferencias de esquema: si desea supervisar de cerca los cambios de esquema, puede utilizar las herramientas para comparar los esquemas de la réplica para identificar las diferencias. El asistente Importar el esquema de la réplica muestra las diferencias del esquema.
Prácticas recomendadas
En general, es mejor evitar los cambios de esquema. Los cambios de esquema pueden conducir a inconsistencias entre las réplicas y la tarea adicional de aplicar los cambios de esquema puede aumentar los costes de ejecución. Sin embargo, hay casos en los que se debe aplicar cambios de esquema.
A continuación se describen prácticas recomendadas para trabajar con cambios de esquema:
- Bloquee el sistema: asegúrese de que las personas que utilicen el sistema trabajen con los permisos adecuados. Puede que sea necesario escribir aplicaciones que impidan ciertos tipos de cambios de esquema imprevistos, tales como agregar o suprimir una columna.
- Aplique comparaciones de esquema periódicas: dado que la replicación es tolerante a errores, lo más probable es que los sistemas que realicen sincronizaciones no sufran interrupciones debidas a cambios de esquema. Sin embargo, una buena práctica consiste en ejecutar periódicamente una comparación del esquema para asegurarse de que no se apliquen cambios de esquema imprevistos.
- No sincronice hasta completar una tarea de mantenimiento: a veces es necesario aplicar cambios de esquema temporales para completar una tarea de mantenimiento. Por ejemplo, algunas organizaciones requieren que una red geométrica se elimine, se retire del control de versiones y, a continuación, se regenere y se vuelva a someter al control de versiones. Hasta que la red vuelva a someterse al control de versiones, la sincronización de los datos producirá un error.
- Aplique cambios de esquema en todo el sistema: si es necesario aplicar cambios de esquema, aplíquelos en todo el sistema y de manera organizada. Por ejemplo, quizá desee utilizar un enfoque de arriba abajo, en el que los cambios se apliquen en la réplica de raíz y se propaguen en sentido descendente.