Preguntas más frecuentes para administradores de replicaciónFrequently Asked Questions for Replication Administrators

SE APLICA A: síSQL Server noAzure SQL Database noAzure SQL Data Warehouse noAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Las siguientes preguntas y respuestas proporcionan instrucciones sobre las diversas tareas que deben ejecutar los administradores de bases de datos replicadas.The following questions and answers provide guidance on a variety of tasks faced by administrators of replicated databases.

Configurar la replicaciónConfiguring Replication

¿Es preciso detener la actividad en una base de datos cuando se publica?Does activity need to be stopped on a database when it is published?

No.No. La actividad puede continuar en la base de datos mientras se crea una publicación.Activity can continue on a database while a publication is being created. 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).Be aware that producing a snapshot can be resource-intensive, so it is best to generate snapshots during periods of lower activity on the database (by default a snapshot is generated when you complete the New Publication Wizard).

¿Están bloqueadas las tablas durante la generación de instantáneas?Are tables locked during snapshot generation?

La duración de los bloqueos depende del tipo de replicación utilizada.The length of time that the locks are taken depends on the type of replication used:

  • Para las publicaciones de combinación, el Agente de instantáneas no adopta ningún bloqueo.For merge publications, the Snapshot Agent does not take any locks.

  • 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.For transactional publications, by default the Snapshot Agent takes locks only during the initial phase of snapshot generation.

  • Para las publicaciones de instantáneas, el Agente de instantáneas adopta bloqueos durante todo el proceso de generación de instantáneas.For snapshot publications the Snapshot Agent takes locks during the entire snapshot generation process.

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.Because locks prevent other users from updating the tables, the Snapshot Agent should be scheduled to execute during periods of lower activity on the database, especially for snapshot publications.

¿Cuándo está disponible una suscripción? ¿Cuándo se puede utilizar la base de datos de suscripciones?When is a subscription available; when can the subscription database be used?

Una suscripción está disponible después de haber aplicado la instantánea a la base de datos de suscripciones.A subscription is available after the snapshot has been applied to the subscription database. 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.Even though the subscription database is accessible prior to this, the database should not be used until after the snapshot has been applied. Utilice el Monitor de replicación para comprobar el estado de la aplicación y generación de instantáneas:Use Replication Monitor to check the status of snapshot generation and application:

¿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?What happens if the Snapshot Agent has not completed when the Distribution or Merge Agent starts?

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.It will not cause an error if the Distribution Agent or Merge Agent runs at the same time as the Snapshot Agent. No obstante, debe tener en cuenta lo siguiente:However, you must be aware of the following:

  • 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.If the Distribution Agent or Merge Agent is configured to run continuously, the agent applies the snapshot automatically after the Snapshot Agent completes.

  • 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.If the Distribution Agent or Merge Agent is configured to run on a schedule or on-demand, and there is no snapshot available when the agent runs, the agent will shut down with a message stating that a snapshot is not yet available. Es preciso volver a ejecutar el agente para aplicar la instantánea una vez que el Agente de instantáneas ha finalizado.You must run the agent again to apply the snapshot after the Snapshot Agent has completed. Para más información sobre cómo ejecutar los agentes, vea Sincronizar una suscripción de inserción, Sincronizar una suscripción de extracción y Conceptos de los ejecutables del Agente de replicación.For more information on running agents, see Synchronize a Push Subscription, Synchronize a Pull Subscription, and Replication Agent Executables Concepts.

¿Debo generar script para la configuración de replicación?Should I script my replication configuration?

Sí.Yes. Generar script para la configuración de replicación es una parte fundamental de cualquier plan de recuperación de desastres en una topología de replicación.Scripting the replication configuration is a key part of any disaster recovery plan for a replication topology. Para obtener más información sobre la generación de script, vea Scripting Replication.For more information on scripting, see Scripting Replication.

¿Qué modelo de recuperación se necesita para una base de datos replicada?What recovery model is required on a replicated database?

Funciones de replicación que utilicen correctamente uno de los modelos de recuperación: simple, completa o por medio de registros de operaciones masivas.Replication functions properly using any of the recovery models: simple, bulk-logged, or full. La replicación de mezcla hace un seguimiento de los cambios almacenando información en tablas de metadatos.Merge replication tracks change by storing information in metadata tables. La replicación 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.Transactional replication tracks changes by marking the transaction log, but this marking process is not affected by the recovery model.

¿Por qué la replicación agrega una columna a las tablas replicadas? ¿Se quitará si la tabla no se publica?Why does replication add a column to replicated tables; will it be removed if the table isn't published?

Para realizar un seguimiento de los cambios, la replicación de mezcla y la replicación transaccional con suscripciones de actualización en cola deben poder identificar de forma única cada fila de todas las tablas publicadas.To track changes, merge replication and transactional replication with queued updating subscriptions must be able to uniquely identify every row in every published table. Para realizar esta acción:To accomplish this:

  • La replicación 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).Merge replication adds the column rowguid to every table, unless the table already has a column of data type uniqueidentifier with the ROWGUIDCOL property set (in which case this column is used). 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.If the table is dropped from the publication, the rowguid column is removed; if an existing column was used for tracking, the column is not removed.

  • Si una publicación transaccional admite suscripciones de actualización en cola, la replicación agrega la columna msrepl_tran_version a todas las tablas.If a transactional publication supports queued updating subscriptions, replication adds the column msrepl_tran_version to every table. Si la tabla se quita de la publicación, la columna msrepl_tran_version no se elimina.If the table is dropped from the publication, the msrepl_tran_version column is not removed.

  • Un filtro no debe incluir la columna rowguidcol que usa la replicación para identificar filas.A filter must not include the rowguidcol used by replication to identify rows. De forma predeterminada, es la columna agregada al configurar la replicación de mezcla y se denomina rowguid.By default this is the column added at the time you set up merge replication and is named rowguid.

¿Cómo se administran las restricciones en las tablas publicadas?How do I manage constraints on published tables?

Existen varios aspectos que deben tenerse en cuenta en relación con las restricciones en las tablas publicadas:There are a number of issues to consider regarding constraints on published tables:

  • La replicación transaccional requiere una restricción de clave principal en cada tabla publicada.Transactional replication requires a primary key constraint on each published table. La replicación de mezcla no requiere clave principal, pero si existe alguna, debe replicarse.Merge replication does not require a primary key, but if one is present, it must be replicated. La replicación de instantáneas no requiere clave principal.Snapshot replication does not require a primary key.

  • De manera predeterminada, las restricciones de clave principal, los índices y las restricciones CHECK se replican en los suscriptores.By default, primary key constraints, indexes, and check constraints are replicated to Subscribers.

  • 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.The NOT FOR REPLICATION option is specified by default for foreign key constraints and check constraints; the constraints are enforced for user operations but not agent operations.

Para obtener información acerca de la configuración de las opciones de esquema que controlan si las restricciones se replican o no, vea Specify Schema Options.For information on setting the schema options that control whether constraints are replicated, see Specify Schema Options.

¿Cómo se administran las columnas de identidad?How do I manage identity columns?

La replicación proporciona administración automática de intervalos de identidad para las topologías de replicación que incluyen actualizaciones en el suscriptor.Replication provides automatic identity range management for replication topologies that include updates at the Subscriber. Para más información, vea Replicar columnas de identidad.For more information, see Replicate Identity Columns.

¿Se pueden publicar los mismos objetos en publicaciones diferentes?Can the same objects be published in different publications?

Sí, pero con algunas limitaciones.Yes, but with some restrictions. Para 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.For more information, see the section "Publishing Tables in More Than One Publication" in the topic Publish Data and Database Objects.

¿Pueden varias publicaciones utilizar la misma base de datos de distribución?Can multiple publications use the same distribution database?

Sí.Yes. No existen limitaciones al número de tipos de publicaciones que pueden utilizar la misma base de datos de distribución.There are no restrictions on the number or types of publications that can use the same distribution database. Todas las publicaciones de un publicador determinado deben utilizar el mismo distribuidor y base de datos de distribución.All publications from a given Publisher must use the same Distributor and distribution database.

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.If you have multiple publications, you can configure multiple distribution databases at the Distributor to ensure that the data flowing through each distribution database is from a single publication. Use el cuadro de diálogo Propiedades del distribuidor o sp_adddistributiondb (Transact-SQL) para agregar una base de datos de distribución.Use the Distributor Properties dialog box or sp_adddistributiondb (Transact-SQL) to add a distribution database. Para más información sobre cómo obtener acceso a este cuadro de diálogo, vea Ver y modificar las propiedades del distribuidor y del publicador.For more information about accessing the dialog box, see View and Modify Distributor and Publisher Properties.

¿Cómo se busca información en el distribuidor y el publicador, por ejemplo qué objetos de una base de datos se publican?How do I find information on the Distributor and Publisher, such as which objects in a database are published?

Esta información está disponible a través de SQL Server Management StudioSQL Server Management Studioy de una serie de procedimientos almacenados de replicación.This information is available through SQL Server Management StudioSQL Server Management Studio, and a number of replication stored procedures. Para más información, consulte Distributor and Publisher Information Script.For more information, see Distributor and Publisher Information Script.

¿La replicación cifra los datos?Does replication encrypt data?

No.No. La replicación no cifra los datos almacenados en la base de datos o transferidos a través de la red.Replication does not encrypt data that is stored in the database or transferred over the network. Para más información, vea la sección sobre cifrado del tema Ver y modificar la configuración de seguridad de la replicación.For more information, see the "Encryption" section of the topic View and modify replication security settings.

¿Cómo se replican datos a través de Internet?How do I replicate data over the Internet?

Los datos se replican a través de Internet mediante:Replicate data over the Internet using:

Todos los tipos de replicación de MicrosoftMicrosoft SQL ServerSQL Server pueden replicar datos a través de VPN, pero tenga en cuenta la sincronización web si está utilizando replicación de mezcla.All types of MicrosoftMicrosoft SQL ServerSQL Server replication can replicate data over a VPN, but you should consider Web synchronization if you are using merge replication.

¿Se reanuda la replicación si se quita una conexión?Does replication resume if a connection is dropped

Sí.Yes. El procesamiento de replicación se reanuda en el punto en el que se dejó cuando se quitó la conexión.Replication processing resumes at the point at which it left off if a connection is dropped. Si está utilizando la replicación 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.If you are using merge replication over an unreliable network, consider using logical records, which ensures related changes are processed as a unit. Para más información, vea Agrupar cambios en filas relacionadas con registros lógicos.For more information, see Group Changes to Related Rows with Logical Records.

¿Funciona la replicación a través de conexiones de poco ancho de banda?Does replication work over low bandwidth connections? ¿Utiliza compresión?Does it use compression?

Sí, la replicación funciona a través de conexiones de poco ancho de banda.Yes, replication does work over low bandwidth connections. En las conexiones sobre TCP/IP, utiliza la compresión proporcionada por el protocolo, pero no aporta compresión adicional.For connections over TCP/IP, it uses the compression provided by the protocol but does not provide additional compression. 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.For Web synchronization connections over HTTPS, it uses the compression provided by the protocol and also additional compression of the XML files used to replicate changes.

Inicios de sesión y propiedad de los objetosLogins and Object Ownership

¿Se replican las contraseñas y los inicios de sesión?Are logins and passwords replicated?

No.No. Puede crear un paquete DTS para transferir inicios de sesión y contraseñas de un publicador a uno o varios suscriptores.You could create a DTS package to transfer logins and passwords from a Publisher to one or more Subscribers.

¿Qué esquemas se replican y cómo?What are schemas and how are they replicated?

A partir de MicrosoftMicrosoft Resultado deSQL Server 2005, esquema tiene dos significados:Beginning with MicrosoftMicrosoft Resultado deSQL Server 2005, schema has two meanings:

  • La definición de un objeto, como una instrucción CREATE TABLE.The definition of an object, such as a CREATE TABLE statement. De manera predeterminada, la replicación copia las definiciones de todos los objetos replicados en el suscriptor.By default, replication copies the definitions of all replicated objects to the Subscriber.

  • El espacio de nombres dentro del que se crea un objeto: <Base de datos>.<Esquema>.<Objeto>.The namespace within which an object is created: <Database>.<Schema>.<Object>. Los esquemas se definen mediante la instrucción CREATE SCHEMA.Schemas are defined using the CREATE SCHEMA statement.

  • La replicación tiene el siguiente comportamiento predeterminado en el Asistente para nueva publicación con respecto a los esquemas y a la propiedad de objetos:Replication has the following default behavior in the New Publication Wizard with respect to schemas and object ownership:

  • Para artículos de publicaciones de combinación 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.For articles in merge publications with a compatibility level of 90 or higher, snapshot publications, and transactional publications: by default, the object owner at the Subscriber is the same as the owner of the corresponding object at the Publisher. Si en el suscriptor no existen esquemas que posean objetos, se crean de forma automática.If the schemas that own objects do not exist at the Subscriber, they are created automatically.

  • Para artículos en publicaciones de combinación 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.For articles in merge publications with a compatibility level lower than 90: by default, the owner is left blank and is specified as dbo during the creation of the object on the Subscriber.

  • Para artículos de publicaciones de Oracle: de forma predeterminada, el propietario se especifica como dbo.For articles in Oracle publications: by default, the owner is specified as dbo.

  • Para artículos de publicaciones que utilizan instantáneas en modo de carácter (que se utilizan para los que no son suscriptores deSQL ServerSQL Server y para los suscriptores de SQL Server CompactSQL Server Compact ): de manera predeterminada, el propietario se deja en blanco.For articles in publications that use character mode snapshots (which are used for non-SQL ServerSQL Server Subscribers and SQL Server CompactSQL Server Compact Subscribers): by default, the owner is left blank. Como valor predeterminado del propietario se utiliza el propietario asociado con la cuenta utilizada por el Agente de distribución o el Agente de mezcla para conectarse con el suscriptor.The owner defaults to the owner associated with the account used by the Distribution Agent or Merge Agent to connect to the Subscriber.

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.The object owner can be changed through the Article Properties - <Article> dialog box and through the following stored procedures: sp_addarticle, sp_addmergearticle, sp_changearticle, and sp_changemergearticle. Para más información, vea Ver y modificar propiedades de publicación, Definir un artículo y Ver y modificar las propiedades de un artículo.For more information, see View and Modify Publication Properties, Define an Article, and View and Modify Article Properties.

¿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?How can grants on the subscription database be configured to match grants on the publication database?

De manera predeterminada, la replicación no ejecuta instrucciones GRANT en la base de datos de suscripciones.By default, replication does not execute GRANT statements on the subscription database. 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:If you want the permissions on the subscription database to match those on the publication database, use one of the following methods:

¿Qué ocurre con los permisos concedidos en una base de datos de suscripciones si se reinicializa la suscripción?What happens to permissions granted in a subscription database if a subscription is reinitialized?

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.By default, objects at the Subscriber are dropped and recreated when a subscription is reinitialized, which causes all granted permissions for those objects to be dropped. Hay dos formas de controlar esto:There are two ways to handle this:

  • Volver a aplicar las concesiones después de la reinicialización utilizando las técnicas descritas en la sección anterior.Reapply the grants after the reinitialization using the techniques described in the previous section.

  • Especificar que los objetos no se quiten al reinicializar la suscripción.Specify that objects should not be dropped when the subscription is reinitialized. Antes de la reinicialización, elija entre:Prior to reinitialization, either:

    • Ejecute sp_changearticle o sp_changemergearticle.Execute sp_changearticle or 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**.Specify a value of 'pre_creation_cmd' (sp_changearticle) or 'pre_creation_command' (sp_changemergearticle) for the parameter **@property** and a value of 'none', 'delete' or 'truncate' for the parameter **@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, elimine solo los datos que coincidan con el filtro.In the Article Properties - <Article> dialog box in the Destination Object section, select a value of Keep existing object unchanged, Delete data. If article has a row filter, delete only data that matches the filter. o Truncar todos los datos del objeto existente para la opción Acción si el nombre está en uso.or Truncate all data in the existing object for the option Action if name is in use. Para más información sobre el acceso a este cuadro de diálogo, vea Ver y modificar propiedades de publicación.For more information on accessing this dialog box, see View and Modify Publication Properties.

Mantenimiento de bases de datosDatabase Maintenance

¿Por qué no se puede ejecutar TRUNCATE TABLE en una tabla publicada?Why can't I run TRUNCATE TABLE on a published table?

TRUNCATE TABLE es una instrucción DDL que no registra eliminaciones de filas individuales ni activa desencadenadores DML.TRUNCATE TABLE is a DDL statement that does not log individual row deletions and does not fire DML triggers. No está permitida porque la replicación no puede realizar el 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 el seguimiento de los cambios mediante los desencadenadores DML de las tablas publicadas.It is not permitted because replication cannot track the changes caused by the operation: transactional replication tracks changes through the transaction log; merge replication tracks changes through DML triggers on published tables.

¿Cuál es el efecto de ejecutar un comando de inserción masiva en una base de datos replicada?What is the effect of running a bulk insert command on a replicated database?

Para la replicación transaccional se realiza el seguimiento de las inserciones masivas y se replican de la misma manera que otras inserciones.For transactional replication, bulk inserts are tracked and replicated like other inserts. Para la replicación de mezcla, debe asegurarse de que los metadatos de seguimiento de cambios se actualizan adecuadamente.For merge replication, you must ensure that change tracking metadata is updated properly.

¿Existe alguna consideración de replicación que deba tenerse en cuenta para copias de seguridad y restauración?Are there any replication considerations for backup and restore?

Sí.Yes. Hay una serie de consideraciones especiales para las bases de datos que participan en la replicación.There are a number of special considerations for databases that are involved in replication. Para obtener más información, vea Realizar copias de seguridad y restaurar bases de datos de SQL Server.For more information, see Back Up and Restore Replicated Databases.

¿Afecta la replicación al tamaño del registro de transacciones?Does replication affect the size of the transaction log?

La replicación de mezcla y la replicación de instantáneas no afectan al tamaño del registro de transacciones, pero la replicación transaccional sí que puede afectar a dicho tamaño.Merge replication and snapshot replication do not affect transaction log size, but transactional replication can. 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.If a database includes one or more transactional publications, the log is not truncated until all transactions relevant to the publications have been delivered to the distribution database. 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.If the transaction log is growing too large, and the Log Reader Agent is running on a scheduled basis, consider shortening the interval between runs. O establézcalo para que se ejecute en modalidad continua.Or, set it to run in continuous mode. Si está establecido para que se ejecute en modalidad continua (opción predeterminada), asegúrese de que se está ejecutando.If it is set to run in continuous mode (the default), ensure that it is running. Para más información sobre cómo comprobar el estado del Agente de registro del LOG, vea Visualización de información y realización de tareas mediante el Monitor de replicación.For more information on checking Log Reader Agent status, see View information and perform tasks using Replication Monitor.

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.Additionally, if you have set the option 'sync with backup' on the publication database or distribution database, the transaction log is not truncated until all transactions have been backed up. 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.If the transaction log is growing too large, and you have this option set, consider shortening the interval between transaction log backups. Para más información, sobre cómo realizar copias de seguridad y restaurar bases de datos implicadas en la replicación transaccional, vea Estrategias para hacer copias de seguridad y restaurar replicación de instantáneas o replicación transaccional.For more information on backing up and restoring databases involved in transactional replication, see Strategies for Backing Up and Restoring Snapshot and Transactional Replication.

¿Cómo se vuelven a generar índices o tablas en bases de datos replicadas?How do I rebuild indexes or tables in replicated databases?

Existen varios mecanismos para volver a generar índices.There are a variety of mechanisms for rebuilding indexes. Todos ellos se pueden utilizar sin necesidad de tener en cuenta consideraciones especiales para replicación, 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.They can all be used with no special considerations for replication, with the following exception: primary keys are required on tables in transactional publications, so you cannot drop and recreate primary keys on these tables.

¿Cómo se agregan o cambian índices en bases de datos de suscripciones y publicaciones?How do I add or change indexes on publication and subscription databases?

Se pueden agregar índices en el publicador o los suscriptores sin consideraciones especiales en cuanto a replicación (tenga en cuenta que los índices pueden afectar al rendimiento).Indexes can be added at the Publisher or Subscribers with no special considerations for replication (be aware that indexes can affect performance). 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í.CREATE INDEX and ALTER INDEX are not replicated, so if you add or change an index at, for example, the Publisher, you must make the same addition or change at the Subscriber if you want it reflected there.

¿Cómo se mueven o cambian de nombre los archivos de las bases de datos que participan en la replicación?How do I move or rename files for databases involved in replication?

En versiones de SQL ServerSQL Server anteriores a Resultado deSQL Server 2005, mover o cambiar de nombre los archivos de base de datos exigía separar y volver a adjuntar la base de datos.In versions of SQL ServerSQL Server prior to Resultado deSQL Server 2005, moving or renaming database files required detaching and reattaching the database. Puesto que una base de datos replicada no se puede separar, la replicación tenía que quitarse de estas bases de datos primero.Because a replicated database cannot be detached, replication had to be removed from these databases first. A partir de Resultado deSQL 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 replicación.Beginning with Resultado deSQL Server 2005, you can move or rename files without detaching and re-attaching the database, with no effect on replication. Para más información sobre mover y cambiar el nombre de los archivos, vea ALTER DATABASE (Transact-SQL).For more information about moving and renaming files, see ALTER DATABASE (Transact-SQL).

¿Cómo se quita una tabla que se está replicando?How do I drop a table that is being replicated?

Primero, quite el artículo de la publicación mediante sp_droparticle, sp_dropmergearticle o el cuadro de diálogo Propiedades de la publicación: <Publicación>, y después quítelo de la base de datos mediante DROP <Object>.First drop the article from the publication using sp_droparticle, sp_dropmergearticle, or the Publication Properties - <Publication> dialog box, and then drop it from the database using DROP <Object>. No se pueden quitar artículos de publicaciones transaccionales o de instantáneas después de que se hayan agregado suscripciones; es preciso quitar primero las suscripciones.You cannot drop articles from snapshot or transactional publications after subscriptions have been added; you must drop the subscriptions first. Para más información, vea Agregar y quitar artículos de publicaciones existentes.For more information, see Add Articles to and Drop Articles from Existing Publications.

¿Cómo se agregan o quitan columnas de una tabla publicada?How do I add or drop columns on a published table?

SQL ServerSQL Server permite una amplia variedad de cambios de esquema en objetos publicados, lo que incluye agregar y quitar columnas.supports a wide variety of schema changes on published objects, including adding and dropping columns. Por ejemplo, ejecute ALTER TABLE...For example, execute 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.DROP COLUMN at the Publisher, and the statement is replicated to Subscribers and then executed to drop the column. Los suscriptores que ejecutan versiones de SQL ServerSQL Server anteriores a Resultado deSQL Server 2005 admiten agregar y quitar columnas a través de los procedimientos almacenados sp_repladdcolumn y sp_repldropcolumn.Subscribers running versions of SQL ServerSQL Server prior to Resultado deSQL Server 2005 support adding and dropping columns through the stored procedures sp_repladdcolumn and sp_repldropcolumn. Para más información, vea Realizar cambios de esquema en bases de datos de publicaciones.For more information, see Make Schema Changes on Publication Databases.

Mantenimiento de la replicaciónReplication Maintenance

¿Cómo se determina si los datos de los suscriptores están sincronizados con los del publicador?How do I determine if the data at Subscribers is synchronized with data at the Publisher?

Utilice la validación.Use validation. La validación informa de si un suscriptor determinado está sincronizado con el publicador.Validation reports on whether a given Subscriber is synchronized with the Publisher. Para obtener más información, vea Validar datos replicados.For more information, see Validate Replicated Data. La validación no proporciona información acerca de qué filas no están sincronizadas correctamente, pero la utilidad tablediff sí.Validation does not provide information on which rows if any are not synchronized correctly, but the tablediff utility does.

¿Cómo se agrega una tabla a una publicación existente?How do I add a table to an existing publication?

Para agregar una tabla (u otro objeto), no es necesario detener la actividad en las bases de datos de publicaciones o suscripciones.It is not necessary to stop activity on the publication or subscription databases in order to add a table (or another object). 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 y sp_addmergearticle.Add a table to a publication through the Publication Properties - <Publication> dialog box or the stored procedures sp_addarticle and sp_addmergearticle. Para más información, vea Agregar y quitar artículos de publicaciones existentes.For more information, see Add Articles to and Drop Articles from Existing Publications.

¿Cómo se quita una tabla de una publicación?How do I remove a table from a publication?

Quite una tabla de la publicación mediante sp_droparticle, sp_dropmergearticle o el cuadro de diálogo Propiedades de la publicación: <Publicación>.Remove a table from the publication using sp_droparticle, sp_dropmergearticle, or the Publication Properties - <Publication> dialog box. No se pueden quitar artículos de publicaciones transaccionales o de instantáneas después de que se hayan agregado suscripciones; es preciso quitar primero las suscripciones.You cannot drop articles from snapshot or transactional publications after subscriptions have been added; you must drop the subscriptions first. Para más información, vea Agregar y quitar artículos de publicaciones existentes.For more information, see Add Articles to and Drop Articles from Existing Publications.

¿Qué acciones exigen que las suscripciones se reinicialicen?What actions require subscriptions to be reinitialized?

Existen una serie de cambios de publicaciones y artículos que requieren que las suscripciones se reinicialicen.There are a number of article and publication changes that require subscriptions to be reinitialized. Para obtener más información, vea Cambiar las propiedades de la publicación y de los artículos.For more information, see Change Publication and Article Properties.

¿Qué acciones provocan que las instantáneas se invaliden?What actions cause snapshots to be invalidated?

Existen una serie de cambios de publicaciones y artículos que invalidan las instantáneas y exigen que se generen otras nuevas.There are a number of article and publication changes that invalidate snapshots and require a new snapshot to be generated. Para obtener más información, vea Cambiar las propiedades de la publicación y de los artículos.For more information, see Change Publication and Article Properties.

¿Cómo se quita la replicación?How do I remove replication?

Las acciones necesarias para quitar la replicación 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.The actions required to remove replication from a database depend on whether the database served as a publication database, subscription database, or both.

¿Cómo se determina si existen transacciones o filas para replicar?How do I determine whether there are transactions or rows to be replicated?

Para la replicación transaccional, utilice procedimientos almacenados o la pestaña Comandos sin distribuir del Monitor de replicación.For transactional replication, use stored procedures or the Undistributed Commands tab in Replication Monitor. Para más información, vea Ver comandos replicados e información en una base de datos de distribución (programación de la replicación con Transact-SQL) y Visualización de información y realización de tareas mediante el Monitor de replicación.For more information, see View Replicated Commands and Other Information in the Distribution Database (Replication Transact-SQL Programming) and View information and perform tasks using Replication Monitor.

Para la replicación de mezcla, utilice el procedimiento almacenado sp_showpendingchanges.For merge replication, use the stored procedure sp_showpendingchanges. Para más información, vea sp_showpendingchanges (Transact-SQL).For more information, see sp_showpendingchanges (Transact-SQL).

¿Se ha quedado muy retrasado el Agente de distribución?How far behind is the Distribution Agent? ¿Debo reinicializarlo?Should I reinitialize?

Utilice el procedimiento almacenado sp_replmonitorsubscriptionpendingcmds o la pestaña Comandos sin distribuir del Monitor de replicación.Use the sp_replmonitorsubscriptionpendingcmds stored procedure or the Undistributed Commands tab in Replication Monitor. El procedimiento almacenado y la pestaña muestran lo siguiente:The stored procedure and tab display:

  • Número de comandos de la base de datos de distribución que no se han entregado al suscriptor seleccionado.The number of commands in the distribution database that have not been delivered to the selected Subscriber. 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).A command consists of one Transact-SQL data manipulation language (DML) statement or one data definition language (DDL) statement.

  • Cantidad estimada de tiempo para entregar comandos al suscriptor.The estimated amount of time to deliver commands to the Subscriber. 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.If this value is greater than the amount of time required to generate and apply a snapshot to the Subscriber, consider reinitializing the Subscriber. Para obtener más información, vea Reinicializar suscripciones.For more information, see Reinitialize Subscriptions.

Para más información, vea sp_replmonitorsubscriptionpendingcmds (Transact-SQL) y Visualización de información y realización de tareas mediante el Monitor de replicación.For more information, see sp_replmonitorsubscriptionpendingcmds (Transact-SQL) and View information and perform tasks using Replication Monitor.

Replicación y otras características de base de datosReplication and Other Database Features

¿Funciona la replicación junto con la creación de reflejo de la base de datos y el trasvase de registros?Does replication work in conjunction with log shipping and database mirroring?

Sí.Yes. Para más información, vea Trasvase de registros y replicación (SQL Server) y Replicación y creación de reflejo de la base de datos (SQL Server).For more information, see Log Shipping and Replication (SQL Server) and Database Mirroring and Replication (SQL Server).

¿Funciona la replicación junto con la agrupación en clústeres?Does replication work in conjunction with clustering?

Sí.Yes. No tienen que tenerse en cuenta consideraciones especiales porque todos los datos se almacenan en un conjunto de discos en el clúster.No special considerations are required because all data is stored on one set of disks on the cluster.

Consulte tambiénSee Also

Preguntas más frecuentes para administradores de replicación Replication Administration FAQ
Best Practices for Replication AdministrationBest Practices for Replication Administration