Preguntas más frecuentes para administradores de réplica
Actualizado: 14 de abril de 2006
Las siguientes preguntas y respuestas proporcionan instrucciones sobre las diversas tareas que deben ejecutar los administradores de bases de datos replicadas.
Configurar la réplica
¿Es preciso detener la actividad en una base de datos cuando se publica?
No. La actividad puede continuar en la base de datos mientras se crea una publicación. Tenga en cuenta que producir una instantánea puede consumir muchos recursos, por lo que es mejor generar instantáneas durante los períodos de menor actividad de la base de datos (de manera predeterminada, se genera una instantánea cuando se completa el Asistente para nueva publicación).
¿Están bloqueadas las tablas durante la generación de instantáneas?
La duración de los bloqueos depende del tipo de réplica utilizada.
- Para las publicaciones de mezcla, el Agente de instantáneas no adopta ningún bloqueo.
- Para las publicaciones transaccionales, el Agente de instantáneas adopta de manera predeterminada bloqueos únicamente durante la fase inicial de la generación de instantáneas.
- Para las publicaciones de instantáneas, el Agente de instantáneas adopta bloqueos durante todo el proceso de generación de instantáneas.
Como los bloqueos impiden al resto de los usuarios actualizar las tablas, el Agente de instantáneas debe programarse para que se ejecute durante los períodos de baja actividad de la base de datos, especialmente para las publicaciones de instantáneas.
¿Cuándo está disponible una suscripción? ¿Cuándo se puede utilizar la base de datos de suscripciones?
Una suscripción está disponible después de haber aplicado la instantánea a la base de datos de suscripciones. Aunque se puede obtener acceso a la base de datos de suscripciones con anterioridad, la base de datos no se debe utilizar hasta que se haya aplicado la instantánea. Utilice el Monitor de réplica para comprobar el estado de la aplicación y generación de instantáneas:
- El Agente de instantáneas genera la instantánea. Vea el estado de la generación de instantáneas en la ficha Advertencias y agentes de una publicación en el Monitor de réplica. Para obtener más información, vea Cómo ver información y realizar tareas para los agentes asociados con una publicación (Monitor de réplica).
- La instantánea la aplica el Agente de distribución o el Agente de mezcla. Vea el estado de la aplicación de instantáneas en la página Agente de distribución o Agente de mezcla del Monitor de réplica. Para obtener más información, vea Cómo ver información y realizar tareas para los agentes asociados con una suscripción (Monitor de réplica).
¿Qué ocurre si el Agente de instantáneas no se ha completado cuando se inician el Agente de distribución o el Agente de mezcla?
Esto no causa ningún error si el Agente de distribución o el Agente de mezcla se ejecutan al mismo tiempo que el Agente de instantáneas. No obstante, debe tener en cuenta lo siguiente:
- Si el Agente de distribución o el Agente de mezcla están configurados para ejecutarse de forma continua, el agente aplica la instantánea automáticamente una vez que el Agente de instantáneas finaliza.
- 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 el agente se ejecuta, el agente se cerrará con un mensaje en el que se indica que la instantánea no está disponible todavía. Es preciso volver a ejecutar el agente para aplicar la instantánea una vez que el Agente de instantáneas ha finalizado. Para obtener más información acerca de cómo ejecutar los agentes, vea Cómo sincronizar una suscripción de inserción (SQL Server Management Studio), Cómo sincronizar una suscripción de extracción (SQL Server Management Studio) y Programming Replication Agent Executables.
¿Debo generar una secuencia de comandos para la configuración de réplica?
Sí. Generar una secuencia de comandos para la configuración de réplica es una parte fundamental de cualquier plan de recuperación de desastres en una topología de réplica. Para obtener más información sobre la generación de secuencias de comandos, vea Crear secuencias de comandos para la réplica.
¿Qué modelo de recuperación se necesita para una base de datos replicada?
Funciones de réplica que utilicen correctamente uno de los modelos de recuperación: simple, completa o por medio de registros de operaciones masivas. La réplica de mezcla hace un seguimiento de los cambios almacenando información en tablas de metadatos. La réplica transaccional realiza un seguimiento de los cambios marcando el registro de transacciones, pero el modelo de recuperación no afecta a este proceso de marcado.
¿Por qué la réplica agrega una columna a las tablas replicadas? ¿Se quitará si la tabla no se publica?
Para realizar un seguimiento de los cambios, la réplica de mezcla y la réplica transaccional con suscripciones de actualización en cola deben poder identificar de forma única cada fila de todas las tablas publicadas. Para realizar esta acción:
- La réplica de mezcla agrega la columna rowguid a todas las tablas, a menos que la tabla ya tenga una columna del tipo de datos uniqueidentifier con la propiedad ROWGUIDCOL definida (en cuyo caso se utiliza dicha columna). Si la tabla se quita de la publicación, la columna rowguid se elimina; si se ha utilizado una columna existente para realizar el seguimiento, la columna no se quita.
- Si una publicación transaccional admite suscripciones de actualización en cola, la réplica agrega la columna msrepl_tran_version a todas las tablas. Si la tabla se quita de la publicación, la columna msrepl_tran_version no se elimina.
¿Cómo se administran las restricciones en las tablas publicadas?
Existen varios aspectos que deben tenerse en cuenta en relación con las restricciones en las tablas publicadas:
- La réplica transaccional requiere una restricción de clave principal en cada tabla publicada. La réplica de mezcla no requiere clave principal, pero si existe alguna, debe replicarse. La réplica de instantáneas no requiere clave principal.
- De manera predeterminada, las restricciones de clave principal, los índices y las restricciones CHECK se replican en 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 más información, vea Controlar restricciones, identidades y desencadenadores con NOT FOR REPLICATION.
Para obtener información acerca de la configuración de las opciones de esquema que controlan si las restricciones se replican o no, vea Cómo especificar opciones de esquema (SQL Server Management Studio) y How to: Specify Schema Options (Replication Transact-SQL Programming).
¿Cómo se administran las columnas de identidad?
La réplica proporciona administración automática de intervalos de identidad para las topologías de réplica que incluyen actualizaciones en el suscriptor. Para obtener más información, vea Replicar columnas de identidad.
¿Se pueden publicar los mismos objetos en publicaciones diferentes?
Sí, pero con algunas limitaciones. Para obtener más información, vea la sección sobre cómo publicar tablas en varias publicaciones en el tema Publicar datos y objetos de base de datos.
¿Pueden varias publicaciones utilizar la misma base de datos de distribución?
Sí. No existen limitaciones al número de tipos de publicaciones que pueden utilizar la misma base de datos de distribución. Todas las publicaciones de un publicador determinado deben utilizar el mismo distribuidor y base de datos de distribución.
Si dispone de varias publicaciones, puede configurar varias bases de datos de distribución en el distribuidor para asegurarse de que los datos que pasan a través de cada una de ellas proceden de una sola publicación. Utilice 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 acerca de cómo obtener acceso a este cuadro de diálogo, vea Cómo ver y modificar las propiedades del distribuidor (SQL Server Management Studio).
¿Cómo se busca información en el distribuidor y el publicador, por ejemplo qué objetos de una base de datos se publican?
Esta información está disponible a través de SQL Server Management Studio y de una serie de procedimientos almacenados de réplica. Para obtener información, vea Propiedades de la réplica y Secuencia de comandos de información del distribuidor y del publicador.
¿La réplica cifra los datos?
No. La réplica no cifra los datos almacenados en la base de datos o transferidos a través de la red. Para obtener más información, vea la sección sobre cifrado en el tema Elementos de seguridad de réplica.
¿Cómo se replican datos a través de Internet?
Los datos se replican a través de Internet mediante:
- Una red privada virtual (VPN). Para obtener más información, vea Publicar datos por Internet mediante VPN.
- La opción de sincronización Web para réplica de mezcla. Para obtener más información, vea Sincronización Web para la réplica de mezcla.
Todos los tipos de réplica de Microsoft SQL Server pueden replicar datos a través de VPN, pero tenga en cuenta la sincronización Web si está utilizando réplica de mezcla.
¿Se reanuda la réplica si se quita una conexión?
Sí. El procesamiento de réplica se reanuda en el punto en el que se dejó cuando se quitó la conexión. Si está utilizando la réplica de mezcla a través de una red que no es confiable, considere la posibilidad de utilizar registros lógicos, con lo que se asegurará de que los cambios se procesen como una unidad. Para obtener más información, vea Agrupar cambios en filas relacionadas con registros lógicos.
¿Funciona la réplica a través de conexiones de poco ancho de banda? ¿Utiliza compresión?
Sí, la réplica funciona a través de conexiones de poco ancho de banda. En las conexiones sobre TCP/IP, utiliza la compresión proporcionada por el protocolo, pero no aporta compresión adicional. En las conexiones de sincronización Web sobre HTTPS, utiliza la compresión proporcionada por el protocolo y también compresión adicional de los archivos XML utilizados para replicar cambios. Para obtener más información acerca de la réplica en conexiones de poco ancho de banda, vea Problemas provocados por una red lenta.
Inicios de sesión y propiedad de los objetos
¿Se replican las contraseñas y los inicios de sesión?
No. Puede crear un paquete DTS para transferir inicios de sesión y contraseñas de un publicador a uno o varios suscriptores. Para obtener más información, vea Diseñar y crear paquetes de Integration Services.
¿Qué esquemas se replican y cómo?
En Microsoft SQL Server 2005, esquema tiene dos significados:
- La definición de un objeto, como una instrucción CREATE TABLE. De manera predeterminada, la réplica copia las definiciones de todos los objetos replicados en el suscriptor.
- El propietario de un objeto, que se utiliza en un nombre de varias partes, como <baseDeDatos>.<esquema>.<objeto>. Los esquemas se definen mediante la instrucción CREATE SCHEMA.
La réplica muestra el siguiente comportamiento predeterminado en el Asistente para nueva publicación con respecto a los objetos y la propiedad de los objetos:
- Para artículos de publicaciones de mezcla con un nivel de compatibilidad de 90 o superior, publicaciones de instantáneas y publicaciones transaccionales: de manera predeterminada, el propietario del objeto en el suscriptor es el mismo que el propietario del objeto correspondiente en el publicador. Si en el suscriptor no existen esquemas que posean objetos, se crean de forma automática.
- Para artículos en publicaciones de mezcla con un nivel de compatibilidad menor de 90: de manera 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 utilizan instantáneas en modo de carácter (que se utilizan para los que no son suscriptores de SQL Server y para los suscriptores de SQL Server 2005 Compact Edition): de manera predeterminada, el propietario se deja en blanco. El propietario que se toma de manera predeterminada es el propietario asociado a la cuenta utilizada por el Agente de distribución o el Agente de mezcla para conectarse al suscriptor.
El propietario del objeto se puede cambiar mediante el cuadro de diálogo Propiedades del artículo: <Artículo> y mediante los siguientes procedimientos almacenados: sp_addarticle, sp_addmergearticle, sp_changearticle y sp_changemergearticle. Para obtener más información, vea Cómo ver y modificar propiedades de publicaciones y artículos (SQL Server Management Studio), How to: Define an Article (Replication Transact-SQL Programming) y How to: View and Modify Article Properties (Replication Transact-SQL Programming).
¿Cómo pueden configurarse las concesiones en la base de datos de suscripciones para que coincidan con las de la base de datos de publicaciones?
De manera predeterminada, la réplica 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 publicaciones, utilice uno de los siguientes métodos:
- Ejecute instrucciones GRANT directamente en la base de datos de suscripciones.
- Utilice una secuencia de comandos posterior a una instantánea para ejecutar las instrucciones. Para obtener más información, vea Ejecutar secuencias de comandos antes y después de aplicar la instantánea.
- Utilice el procedimiento almacenado sp_addscriptexec (Transact-SQL) para ejecutar las instrucciones.
¿Qué ocurre con los permisos concedidos en una base de datos de suscripciones si se reinicializa la suscripción?
De manera predeterminada, los objetos del suscriptor se quitan y se vuelven a crear al reinicializar una suscripción, lo que provoca que todos los permisos concedidos para dichos objetos se quiten. Hay dos formas de controlar esto:
- Volver a aplicar las concesiones después de la reinicialización utilizando las técnicas descritas en la sección anterior.
- Especificar que los objetos no se quiten al reinicializar la suscripción. Antes de la reinicialización, elija entre:
- Ejecute sp_changearticle (Transact-SQL) o sp_changemergearticle (Transact-SQL). 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> de la sección Objeto de destino, seleccione un valor de Mantener el objeto existente sin cambios, Eliminar datos. Si el artículo tiene un filtro de fila, eliminar sólo los datos que coincidan con el filtro. o Truncar todos los datos del objeto existente en la opción Acción si el nombre está en uso. Para obtener más información acerca de cómo obtener acceso a este cuadro de diálogo, vea Cómo ver y modificar propiedades de publicaciones y artículos (SQL Server Management Studio).
Mantenimiento de bases de datos
¿Por qué no se puede ejecutar TRUNCATE TABLE en una tabla publicada?
TRUNCATE TABLE es una operación no registrada que no activa desencadenadores. No está permitida porque la réplica no puede realizar el seguimiento de los cambios causados por la operación: la réplica transaccional realiza un seguimiento de los cambios a través del registro de transacciones; la réplica de mezcla realiza el seguimiento de los cambios mediante los desencadenadores de las tablas publicadas.
¿Cuál es el efecto de ejecutar un comando de inserción masiva en una base de datos replicada?
Para la réplica transaccional se realiza el seguimiento de las inserciones masivas y se replican de la misma manera que otras inserciones. Para la réplica de mezcla, debe asegurarse de que los metadatos de seguimiento de cambios se actualizan adecuadamente. Para obtener más información, vea la sección sobre la inserción masiva de datos en tablas publicadas en el tema Consideraciones acerca de la réplica de mezcla.
¿Existe alguna consideración de réplica que deba tenerse en cuenta para copia de seguridad y restauración?
Sí. Hay una serie de consideraciones especiales para las bases de datos que participan en la réplica. Para obtener más información, vea Realizar copias de seguridad de bases de datos de réplica y restaurarlas.
¿Afecta la réplica al tamaño del registro de transacciones?
La réplica de mezcla y la réplica de instantáneas no afectan al tamaño del registro de transacciones, pero la réplica transaccional sí que puede afectar a dicho tamaño. Si una base de datos incluye una o varias publicaciones transaccionales, el registro no se trunca hasta que todas las transacciones relevantes para las publicaciones se hayan entregado en la base de datos de distribución. Si el registro de transacciones está aumentando demasiado y el Agente de registro del LOG se está ejecutando de forma programada, considere la posibilidad de acortar el intervalo entre ejecuciones o establecer que se ejecute en modo continuo. Si se define que se ejecute en modo continuo (la opción predeterminada), asegúrese de que se está ejecutando. Para obtener más información acerca de cómo comprobar el estado del Agente de registro del LOG, vea Cómo ver información y realizar tareas para los agentes asociados con una publicación (Monitor de réplica).
Además, si ha definido la opción 'sync with backup' en la base de datos de publicaciones o en la base de datos de distribución, el registro de transacciones no se trunca hasta que se ha realizado una copia de seguridad de todas las transacciones. Si el registro de transacciones está aumentando demasiado y ha definido esta opción, considere la posibilidad de acortar el intervalo entre las copias de seguridad de los registros de transacciones. Para obtener más información sobre cómo realizar copias de seguridad y restauraciones de las bases de datos implicadas en la réplica transaccional, vea Estrategias para hacer copias de seguridad y restaurar la réplica de instantáneas o transaccional.
¿Cómo se realiza una actualización de SQL Server versión 7.0 o SQL Server 2000 si tengo bases de datos replicadas?
SQL Server 2005 permite la actualización de bases de datos replicadas de versiones anteriores de SQL Server. Para obtener más información, vea Actualizar bases de datos replicadas.
¿Cómo se vuelven a generar índices o tablas en bases de datos replicadas?
Existen varios mecanismos para volver a generar índices. Todos ellos se pueden utilizar sin necesidad de tener en cuenta consideraciones especiales para réplica, con la siguiente excepción: las claves principales son necesarias en las tablas de las publicaciones transaccionales, por lo que no se pueden quitar y volver a crear claves principales en dichas tablas.
¿Cómo se agregan o cambian índices en bases de datos de suscripciones y publicaciones?
Se pueden agregar índices en el publicador o los suscriptores sin consideraciones especiales en cuanto a réplica (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, por ejemplo en el publicador, deberá realizar la misma adición o cambio en el suscriptor si desea que quede reflejado ahí.
¿Cómo se mueven o cambian de nombre los archivos de las bases de datos que participan en la réplica?
En versiones anteriores de SQL Server, mover o cambiar de nombre los archivos de base de datos exigía separar y volver a adjuntar la base de datos. Puesto que una base de datos replicada no se puede separar, la réplica tenía que quitarse de estas bases de datos primero. En SQL Server 2005, se pueden mover o cambiar de nombre los archivos sin separar y volver a adjuntar la base de datos, sin efecto alguno en la réplica. Para obtener más información acerca de cómo mover y volver a nombrar los archivos, vea ALTER DATABASE (Transact-SQL).
¿Cómo se quita una tabla que se está replicando?
Primero, quite el artículo de la publicación utilizando sp_droparticle (Transact-SQL), sp_dropmergearticle (Transact-SQL) o el cuadro de diálogo Propiedades de la publicación: <publicación> y, a continuación, quítelo de la base de datos mediante DROP <Object>
. No se pueden quitar artículos de publicaciones transaccionales o de instantáneas una vez que se han agregado suscripciones; es preciso quitar primero las suscripciones. Para obtener más información, vea Agregar y quitar artículos de publicaciones existentes.
¿Cómo se agregan o quitan columnas de una tabla publicada?
SQL Server 2005 permite una amplia variedad de cambios de esquema en objetos publicados, lo que incluye agregar y quitar columnas. Por ejemplo, ejecute ALTER TABLE … DROP COLUMN en el publicador y la instrucción se replica en los suscriptores y, a continuación, se ejecuta para quitar la columna. Los suscriptores que ejecuten una versión anterior de SQL Server pueden agregar y quitar columnas a través de los procedimientos almacenados sp_repladdcolumn (Transact-SQL) y sp_repldropcolumn (Transact-SQL). Para obtener más información, vea Realizar cambios de esquema en las bases de datos de publicaciones.
Mantenimiento de la réplica
¿Cómo se determina si los datos de los suscriptores están sincronizados con los del publicador?
Utilice la validación. La validación informa de si un suscriptor determinado está sincronizado con el publicador. Para obtener más información, vea Validar los datos replicados. La validación no proporciona información acerca de qué filas no están sincronizadas, pero la tablediff (utilidad) sí.
¿Cómo se agrega una tabla a una publicación existente?
Para agregar una tabla (u otro objeto), no es necesario detener la actividad en las bases de datos de publicaciones o suscripciones. Agregue una tabla a una publicación a través del cuadro de diálogo Propiedades de la publicación: <publicación> o los procedimientos almacenados sp_addarticle (Transact-SQL) y sp_addmergearticle (Transact-SQL). Para obtener más información, vea Agregar y quitar artículos de publicaciones existentes.
¿Cómo se quita una tabla de una publicación?
Elimine una tabla de una publicación mediante sp_droparticle (Transact-SQL), sp_dropmergearticle (Transact-SQL) o el cuadro de diálogo Propiedades de la publicación: <publicación>. No se pueden quitar artículos de publicaciones transaccionales o de instantáneas una vez que se han agregado suscripciones; es preciso quitar primero las suscripciones. Para obtener más información, vea Agregar y quitar artículos de publicaciones existentes.
¿Qué acciones exigen que las suscripciones se reinicialicen?
Existen una serie de cambios de publicaciones y artículos que requieren que las suscripciones se reinicialicen. Para obtener más información, vea Cambiar las propiedades de la publicación y de los artículos.
¿Qué acciones provocan que las instantáneas se invaliden?
Existen una serie de cambios de publicaciones y artículos que invalidan las instantáneas y exigen que se generen otras nuevas. Para obtener más información, vea Cambiar las propiedades de la publicación y de los artículos.
¿Cómo se quita la réplica?
Las acciones necesarias para quitar la réplica de una base de datos dependen de si la base de datos tenía la función de base de datos de publicaciones, base de datos de suscripciones o ambas. Para obtener más información, vea Quitar la réplica.
¿Cómo se determina si existen transacciones o filas para replicar?
Para la réplica transaccional, utilice procedimientos almacenados o la ficha Comandos sin distribuir del Monitor de réplica. Para obtener más información, vea How to: View Replicated Commands and Other Information in the Distribution Database (Replication Transact-SQL Programming) y Cómo ver información y realizar tareas para los agentes asociados con una suscripción (Monitor de réplica).
Para la réplica de mezcla, utilice el procedimiento almacenado sp_showpendingchanges. Para obtener más información, vea sp_showpendingchanges (Transact-SQL).
¿Se ha quedado muy retrasado el Agente de distribución? ¿Debo reinicializarlo?
Utilice el procedimiento almacenado sp_replmonitorsubscriptionpendingcmds o la ficha Comandos sin distribuir del Monitor de réplica. El procedimiento almacenado y la ficha muestran lo siguiente:
- El número de comandos de la base de datos de distribución que no se han entregado al suscriptor seleccionado. Un comando se compone de una instrucción de lenguaje de manipulación de datos (DML) de Transact-SQL o una instrucción de lenguaje de definición de datos (DDL).
- La cantidad estimada de tiempo para entregar comandos al suscriptor. Si este valor es superior al tiempo necesario para generar y aplicar una instantánea en el suscriptor, considere la posibilidad de volver a reinicializar el suscriptor. Para obtener más información, vea Reinicializar una suscripción.
Para obtener más información, vea sp_replmonitorsubscriptionpendingcmds (Transact-SQL) y Cómo ver información y realizar tareas para los agentes asociados con una suscripción (Monitor de réplica).
Réplica y otras características de base de datos
¿Funciona la réplica junto con la creación de reflejo de la base de datos y el trasvase de registros?
Sí. Para obtener más información, vea Réplica y trasvase de registros y Réplica y creación de reflejo de la base de datos.
¿Funciona la réplica junto con clústeres?
Sí. No tienen que tenerse en cuenta consideraciones especiales porque todos los datos se almacenan en un conjunto de discos en el clúster.
Vea también
Conceptos
Prácticas recomendadas para la administración de réplica