Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Las siguientes preguntas y respuestas proporcionan instrucciones sobre una variedad de tareas a las que se enfrentan los administradores de bases de datos replicadas.
Configuración de la replicación
¿Es necesario detener la actividad en una base de datos cuando se publica?
No. La actividad puede continuar en una base de datos mientras se crea una publicación. Tenga en cuenta que la generación de una instantánea puede consumir muchos recursos, por lo que es mejor generar instantáneas durante períodos de menor actividad en la base de datos (de forma predeterminada, se genera una instantánea al completar el Asistente para nueva publicación).
¿Se bloquean las tablas durante la generación de instantáneas?
El tiempo que se mantienen los bloqueos depende del tipo de replicación utilizada.
En el caso de las publicaciones de combinación, el Agente de instantáneas no toma ningún bloqueo.
En el caso de las publicaciones transaccionales, de forma predeterminada, el Agente de instantáneas toma bloqueos solo durante la fase inicial de generación de instantáneas.
Para las publicaciones de instantáneas, el Agente de instantáneas establece bloqueos durante todo el proceso de generación de instantáneas.
Dado que los bloqueos impiden que otros usuarios actualicen las tablas, el Agente de instantáneas debe programarse para ejecutarse durante períodos de menor actividad en la base de datos, especialmente para las publicaciones de instantáneas.
Cuando está disponible una suscripción; ¿cuándo se puede usar la base de datos de suscripciones?
Una suscripción está disponible después de aplicar la instantánea a la base de datos de suscripciones. Aunque la base de datos de suscripciones sea accesible antes de esto, la base de datos no debe usarse hasta después de aplicar la instantánea. Use el Monitor de replicación para comprobar el estado de la generación de instantáneas y la aplicación:
El Agente de instantáneas genera la instantánea. Vea el estado de la generación de instantáneas en la pestaña Agentes de una publicación en el Monitor de Réplica. Para obtener más información, vea Ver información y realizar tareas mediante el Monitor de replicación.
El Agente de distribución o el Agente de mezcla aplica la instantánea. Vea el estado de la aplicación de instantáneas en la página Agente de distribución o Agente de combinación del Monitor de replicación.
¿Qué ocurre si el Agente de Instantánea no se ha completado cuando se inicia el Agente de Distribución o Agente de Combinar?
No provocará un error si el Agente de distribución o el Agente de mezcla se ejecuta al mismo tiempo que el Agente de instantáneas. Sin embargo, debe tener en cuenta lo siguiente:
Si el Agente de Distribución o el Agente de Combinación están configurados para ejecutarse continuamente, aplicarán la instantánea automáticamente después de que el Agente de Instantáneas se complete.
Si el Agente de distribución o el Agente de mezcla están configurados para ejecutarse según una programación o a petición, y no hay ninguna instantánea disponible cuando se ejecute el agente, el agente se apagará con un mensaje que indica que una instantánea aún no está disponible. Debe volver a ejecutar el Agente de instantáneas para aplicar la instantánea después de que el Agente de instantáneas haya finalizado. Para obtener más información sobre la ejecución de agentes, vea Synchronize a Push Subscription, Synchronize a Pull Subscription y Replication Agent Ejecutables Concepts.
¿Debo crear un script de mi configuración de replicación?
Sí. La creación de scripts de la configuración de replicación es una parte clave de cualquier plan de recuperación ante desastres para una topología de replicación. Para obtener más información sobre el scripting, consulte Scripting Replication.
¿Qué modelo de recuperación se necesita en una base de datos replicada?
La replicación funciona correctamente con cualquiera de los modelos de recuperación: simple, de registro masivo o completo. La replicación de mezcla realiza un seguimiento del cambio almacenando información en tablas de metadatos. La replicación transaccional realiza un seguimiento de los cambios marcando el registro de transacciones, pero este proceso de marcado no se ve afectado por el modelo de recuperación.
¿Por qué la replicación agrega una columna a las tablas replicadas; ¿se quitará si no se publica la tabla?
Para realizar un seguimiento de los cambios, la replicación de mezcla y la replicación transaccional con suscripciones en cola para actualización deben poder identificar de manera única cada fila de cada tabla publicada. Para realizar esta acción:
La replicación de mezcla agrega la columna rowguid a cada tabla, a menos que la tabla ya tenga una columna de tipo de datos uniqueidentifier con la propiedad ROWGUIDCOL establecida (en cuyo caso se usa esta columna). Si la tabla se quita de la publicación, se quita la columna rowguid ; si se usó una columna existente para el seguimiento, la columna no se quita.
Si una publicación transaccional admite suscripciones de actualización en cola, la replicación agrega la columna msrepl_tran_version a cada tabla. Si la tabla se elimina de la publicación, no se elimina la columna msrepl_tran_version.
Un filtro no debe incluir la columna
rowguidcolque usa la replicación para identificar filas. De forma predeterminada, esta es la columna que se agrega al configurar la replicación de mezcla y lleva el nombre de rowguid.
¿Cómo se administran las restricciones en las tablas publicadas?
Hay una serie de problemas que se deben tener en cuenta con respecto a las restricciones en las tablas publicadas:
La replicación transaccional requiere una restricción de clave principal en cada tabla publicada. La replicación de mezcla no requiere una clave principal, pero si hay una, debe replicarse. La replicación de instantáneas no requiere una clave principal.
De forma predeterminada, las restricciones de clave principal, los índices y las restricciones de comprobación se replican a los suscriptores.
La opción NOT FOR REPLICATION se especifica de manera predeterminada para las restricciones de clave externa y las restricciones CHECK; las restricciones se exigen para las operaciones de usuario, pero no para las operaciones de agente.
Para obtener información sobre cómo establecer las opciones de esquema que controlan si se replican las restricciones, vea Especificar opciones de esquema.
¿Cómo se administran las columnas de identidad?
La replicación proporciona una administración automática de rangos de identidad para topologías de replicación que incluyen actualizaciones en el Suscriptor. Para obtener más información, vea Replicar columnas de identidad.
¿Se pueden publicar los mismos objetos en diferentes publicaciones?
Sí, pero con algunas restricciones. Para obtener más información, vea la sección "Publicar tablas en más de una publicación" en el tema Publicar datos y objetos de base de datos.
¿Pueden varias publicaciones usar la misma base de datos de distribución?
Sí. No hay restricciones en el número o tipos de publicaciones que pueden usar la misma base de datos de distribución. Todas las publicaciones de un publicador determinado deben usar la misma base de datos de distribución y distribuidor.
Si tiene varias publicaciones, puede configurar varias bases de datos de distribución en el distribuidor para asegurarse de que los datos que fluyen a través de cada base de datos de distribución proceden de una sola publicación. Use el cuadro de diálogo Propiedades del distribuidor o sp_adddistributiondb (Transact-SQL) para agregar una base de datos de distribución. Para obtener más información sobre el acceso al cuadro de diálogo, vea Ver y modificar propiedades del distribuidor y del publicador.
¿Cómo puedo encontrar información sobre el distribuidor y el publicador, como qué objetos de una base de datos se publican?
Esta información está disponible a través de SQL Server Management Studio y una serie de procedimientos almacenados de replicación. Para obtener más información, vea Script de información del distribuidor y del publicador.
¿La replicación cifra los datos?
No. La replicación no cifra los datos almacenados en la base de datos ni transferidos a través de la red. Para obtener más información, vea la sección "Cifrado" del tema Seguridad de replicación de SQL Server.
¿Cómo se replican los datos a través de Internet?
Replicar datos a través de Internet mediante:
Una red privada virtual (VPN). Para obtener más información, consulte Publicación de datos a través de Internet mediante VPN.
Opción de sincronización web para la replicación de fusión. Para obtener más información, consulte Sincronización web para la replicación de mezcla.
Todos los tipos de replicación de Microsoft SQL Server pueden replicar datos a través de una VPN, pero debe considerar la sincronización web si usa la replicación de mezcla.
¿Se reanuda la replicación si se quita una conexión?
Sí. El procesamiento de replicación se reanuda en el punto en el que se dejó si se quita una conexión. Si usa la replicación de mezcla en una red no confiable, considere la posibilidad de usar registros lógicos, lo que garantiza que los cambios relacionados se procesen como una unidad. Para obtener más información, vea Agrupar cambios en filas relacionadas con registros lógicos.
¿Funciona la replicación a través de conexiones de ancho de banda bajo? ¿Usa compresión?
Sí, la replicación funciona con conexiones de ancho de banda bajo. Para las conexiones a través de TCP/IP, usa la compresión proporcionada por el protocolo, pero no proporciona compresión adicional. Para las conexiones de sincronización web a través de HTTPS, usa la compresión proporcionada por el protocolo y también la compresión adicional de los archivos XML usados para replicar los cambios.
Inicios de sesión y propiedad del objeto
¿Se replican los inicios de sesión y las contraseñas?
No. Puede crear un paquete DTS para transferir inicios de sesión y contraseñas de un publicador a uno o varios suscriptores.
¿Qué son los esquemas y cómo se replican?
A partir de Microsoft SQL Server 2005, el esquema tiene dos significados:
Definición de un objeto, como una instrucción CREATE TABLE. De forma predeterminada, la replicación copia las definiciones de todos los objetos replicados al suscriptor.
Espacio de nombres en el que se crea un objeto: <Base de datos>.<Esquema>.<Objeto> . Los esquemas se definen mediante la instrucción CREATE SCHEMA.
La replicación tiene el siguiente comportamiento predeterminado en el Asistente para nueva publicación con respecto a esquemas y propiedad de objetos:
Para los artículos de publicaciones de combinación con un nivel de compatibilidad de 90 o superior, publicaciones de instantáneas y publicaciones transaccionales: de forma predeterminada, el propietario del objeto en el suscriptor es el mismo que el propietario del objeto correspondiente en el publicador. Si los esquemas que poseen objetos no existen en el Suscriptor, se crean automáticamente.
Para los artículos de publicaciones de combinación con un nivel de compatibilidad inferior a 90: de forma predeterminada, el propietario se deja en blanco y se especifica como dbo durante la creación del objeto en el Suscriptor.
Para artículos de publicaciones de Oracle: de forma predeterminada, el propietario se especifica como dbo.
Para artículos de publicaciones que usan instantáneas en modo de caracteres (que se usan para suscriptores que no son de SQL Server y suscriptores de SQL Server Compact): de forma predeterminada, el propietario se deja en blanco. El propietario se establece por defecto como el propietario asociado a la cuenta utilizada por el Agente de distribución o el Agente de combinación para conectarse al suscriptor.
El propietario del objeto se puede cambiar a través del cuadro de diálogo Propiedades del artículo : <artículo> y a través de los siguientes procedimientos almacenados: sp_addarticle, sp_addmergearticle, sp_changearticle y sp_changemergearticle. Para obtener más información, vea Ver y modificar propiedades de publicación, Definir un artículo y Ver y modificar propiedades de artículo.
¿Cómo se pueden configurar las concesiones en la base de datos de suscripciones para que coincidan con las concesiones de la base de datos de publicación?
De forma predeterminada, la replicación no ejecuta instrucciones GRANT en la base de datos de suscripciones. Si desea que los permisos de la base de datos de suscripciones coincidan con los de la base de datos de publicación, use uno de los métodos siguientes:
Ejecute instrucciones GRANT directamente en la base de datos de suscripciones.
Usa un script posterior a la captura instantánea para ejecutar las instrucciones. Para obtener más información, consulte Cómo ejecutar scripts antes y después de aplicar la instantánea.
Use el procedimiento almacenado sp_addscriptexec para ejecutar las instrucciones .
¿Qué ocurre con los permisos concedidos en una base de datos de suscripciones si se reinicializa una suscripción?
De forma predeterminada, los objetos del suscriptor se quitan y se vuelven a crear cuando se reinicializa una suscripción, lo que hace que se quiten todos los permisos concedidos para esos objetos. Hay dos maneras de controlar esto:
Vuelva a aplicar las concesiones después de la reinicialización mediante las técnicas descritas en la sección anterior.
Especifique que los objetos no deben quitarse cuando se reinicializa la suscripción. Antes de la reinicialización, elija cualquiera de las siguientes opciones:
Ejecute sp_changearticle o sp_changemergearticle. Especifique un valor de "pre_creation_cmd" (sp_changearticle) o "pre_creation_command" (sp_changemergearticle) para el parámetro @property y un valor de "none", "delete" o "truncate" para el parámetro @value.
En el cuadro de diálogo Propiedades del Artículo - <Artículo>, en la sección Objeto de destino, seleccione un valor entre Mantener el objeto existente sin cambios, Eliminar datos. Si el artículo tiene un filtro de fila, elimine solo los datos que coincidan con el filtro. o Truncar todos los datos del objeto existente para la opción Acción si el nombre está en uso. Para obtener más información sobre el acceso a este cuadro de diálogo, vea Ver y modificar propiedades de publicación.
Mantenimiento de bases de datos
¿Por qué no puedo ejecutar TRUNCATE TABLE en una tabla publicada?
TRUNCATE TABLE es una operación no registrada en el log de transacciones que no desencadena desencadenadores. No se permite porque la replicación no puede realizar un seguimiento de los cambios causados por la operación: la replicación transaccional realiza un seguimiento de los cambios a través del registro de transacciones; la replicación de mezcla realiza un seguimiento de los cambios a través de desencadenadores en tablas publicadas.
¿Cuál es el efecto de ejecutar un comando de inserción masiva en una base de datos replicada?
Para la replicación transaccional, las inserciones masivas se controlan y se replican de la misma manera que otras inserciones. Para la replicación de mezcla, debes asegurarte de que los metadatos de seguimiento de cambios se actualizan correctamente.
¿Hay alguna consideración de replicación para la copia de seguridad y restauración?
Sí. Hay una serie de consideraciones especiales para las bases de datos implicadas en la replicación. Para obtener más información, consulte Copia de seguridad y restauración de bases de datos replicadas.
¿Afecta la replicación el tamaño del registro de transacciones?
La replicación de mezcla y la replicación de instantáneas no afectan al tamaño del registro de transacciones, pero sí puede hacerlo la replicación transaccional. Si una base de datos incluye una o varias publicaciones transaccionales, el registro no se trunca hasta que todas las transacciones pertinentes para las publicaciones se hayan entregado a la base de datos de distribución. Si el log de transacciones está creciendo demasiado grande y el Agente de Lectura de Log se ejecuta de forma programada, considere reducir el intervalo entre ejecuciones. O bien, establézcalo para que se ejecute en modo continuo. Si se establece para ejecutarse en modo continuo (valor predeterminado), asegúrese de que se está ejecutando. Para obtener más información sobre cómo comprobar el estado del Agente de lectura del log, vea Ver información y realizar tareas mediante el Monitor de replicación.
Además, si ha establecido la opción "sincronizar con copia de seguridad" en la base de datos de publicación o en la base de datos de distribución, el registro de transacciones no se trunca hasta que se haya realizado una copia de seguridad de todas las transacciones. Si el registro de transacciones está creciendo demasiado grande y tiene esta opción establecida, considere la posibilidad de acortar el intervalo entre las copias de seguridad del registro de transacciones. Para obtener más información sobre la copia de seguridad y restauración de bases de datos involucradas en la replicación transaccional, consulte Estrategias para realizar copias de seguridad y restaurar la replicación de instantáneas y transaccional.
¿Cómo recompilo índices o tablas en bases de datos replicadas?
Hay una variedad de mecanismos para volver a generar índices. Todos se pueden usar sin consideraciones especiales para la replicación, con la siguiente excepción: las claves principales son necesarias en tablas de publicaciones transaccionales, por lo que no se pueden quitar y volver a crear claves principales en estas tablas.
¿Cómo puedo agregar o cambiar índices en las bases de datos de publicación y suscripción?
Los índices se pueden agregar en el publicador o los suscriptores sin consideraciones especiales para la replicación (tenga en cuenta que los índices pueden afectar al rendimiento). CREATE INDEX y ALTER INDEX no se replican, por lo que si agrega o cambia un índice en, por ejemplo, el publicador, debe realizar la misma adición o cambio en el suscriptor si quiere que se refleje allí.
¿Cómo puedo mover o cambiar el nombre de los archivos de las bases de datos implicadas en la replicación?
En versiones de SQL Server anteriores a SQL Server 2005, mover o cambiar el nombre de los archivos de base de datos requería separar y volver a asociar la base de datos. Dado que no se puede desasociar una base de datos replicada, la replicación debe quitarse primero de estas bases de datos. A partir de SQL Server 2005, puede mover o cambiar el nombre de los archivos sin desasociar y volver a adjuntar la base de datos, sin ningún efecto en la replicación. Para obtener más información sobre cómo mover y cambiar el nombre de los archivos, vea ALTER DATABASE (Transact-SQL).
¿Cómo se elimina una tabla que se está replicando?
En primer lugar, elimine el artículo de la publicación mediante sp_droparticle, sp_dropmergearticle o el cuadro de diálogo Propiedades de publicación - <Publicación>, y a continuación, elimínelo de la base de datos mediante DROP <Object>. No se pueden eliminar artículos de publicaciones instantáneas o transaccionales después de agregar suscripciones; primero debe eliminar las suscripciones. Para obtener más información, vea Agregar artículos a y quitar artículos de publicaciones existentes.
¿Cómo se agregan o quitan columnas en una tabla publicada?
SQL Server admite una amplia variedad de cambios de esquema en objetos publicados, incluida la adición y eliminación de columnas. Por ejemplo, ejecute ALTER TABLE ... DROP COLUMN en el Publicador, y la instrucción se replica a los suscriptores y, a continuación, se ejecuta para quitar la columna. Los suscriptores que ejecutan versiones de SQL Server anteriores a SQL Server 2005 admiten la adición y eliminación de columnas a través de los procedimientos almacenados sp_repladdcolumn y sp_repldropcolumn. Para más información, vea Realizar cambios de esquema en bases de datos de publicaciones.
Mantenimiento de replicación
¿Cómo puedo determinar si los datos de los suscriptores se sincronizan con los datos en el publicador?
Utiliza la validación. La validación informa de si un suscriptor determinado está sincronizado con el publicador. Para obtener más información, consulte Validar datos replicados. La validación no proporciona información sobre cuáles filas, si es que hay alguna, no se sincronizan correctamente, pero la utilidad tablediff sí lo hace.
¿Cómo puedo agregar una tabla a una publicación existente?
No es necesario detener la actividad en las bases de datos de publicación o suscripción para agregar una tabla (u otro objeto). Agregue una tabla a una publicación mediante el cuadro de diálogo Propiedades de la publicación: <publicación> o los procedimientos almacenados sp_addarticle y sp_addmergearticle. Para obtener más información, vea Agregar artículos a y quitar artículos de publicaciones existentes.
¿Cómo se quita una tabla de una publicación?
Elimine una tabla de la publicación mediante sp_droparticle, sp_dropmergearticle o el cuadro de diálogo Propiedades de la publicación - <Publicación>. No se pueden quitar artículos de publicaciones instantáneas o transaccionales después de agregar suscripciones; primero debe eliminar las suscripciones. Para obtener más información, vea Agregar artículos a y quitar artículos de publicaciones existentes.
¿Qué acciones requieren que se reinicialicen las suscripciones?
Hay una serie de cambios de artículo y publicación que requieren que se reinicialicen las suscripciones. Para obtener más información, vea Cambiar las propiedades de publicación y artículo.
¿Qué acciones hacen que las instantáneas dejen de ser válidas?
Hay una serie de cambios de artículo y publicación que invalidan las instantáneas y requieren que se genere una nueva instantánea. Para obtener más información, vea Cambiar las propiedades de publicación y artículo.
¿Cómo se elimina la replicación?
Las acciones necesarias para quitar la replicación de una base de datos dependen de si la base de datos sirvió como base de datos de publicación, base de datos de suscripciones o ambas.
¿Cómo puedo determinar si hay transacciones o filas que se van a replicar?
Para la replicación transaccional, use procedimientos almacenados o la pestaña Comandos sin distribuir en el Monitor de replicación. Para obtener más información, vea Ver comandos replicados y otra información en la base de datos de distribución (programación de replicación Transact-SQL) y Ver información y realizar tareas mediante el Monitor de replicación.
Para replicación por mezcla, use el procedimiento almacenado sp_showpendingchanges. Para obtener más información, vea sp_showpendingchanges (Transact-SQL).
¿Cuánto retraso tiene el Agente de distribución? ¿Debo reinicializar?
Utilice el procedimiento almacenado sp_replmonitorsubscriptionpendingcmds o la pestaña Comandos no distribuidos en el Monitor de replicación. El procedimiento almacenado y la visualización de pestañas.
Número de comandos de la base de datos de distribución que no se han entregado al suscriptor seleccionado. Un comando consta de una instrucción de lenguaje de manipulación de datos (DML) Transact-SQL o una instrucción del lenguaje de definición de datos (DDL).
Cantidad estimada de tiempo para entregar comandos al suscriptor. Si este valor es mayor que el tiempo necesario para generar y aplicar una instantánea al Suscriptor, considere reinicializar al Suscriptor. Para obtener más información, vea Reinicializar suscripciones.
Para obtener más información, vea sp_replmonitorsubscriptionpendingcmds (Transact-SQL) y Ver información y realizar tareas mediante el Monitor de replicación.
Replicación y otras características de base de datos
¿Funciona la replicación junto con el envío de registros y el reflejo de bases de datos?
Sí. Para obtener más información, vea Trasvase de registros y replicación (SQL Server) y Creación de reflejo y replicación de la base de datos (SQL Server).
¿Funciona la replicación junto con la agrupación en clústeres?
Sí. No se requieren consideraciones especiales porque todos los datos se almacenan en un conjunto de discos del clúster.
Véase también
Preguntas más frecuentes para administradores de replicación
Procedimientos recomendados para la administración de replicación