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.
Al crear una publicación, elija las tablas y otros objetos de base de datos que desea publicar. Puede publicar los siguientes objetos de base de datos mediante la replicación.
| Objeto Database | Replicación de instantáneas y replicación transaccional | Replicación de mezcla |
|---|---|---|
| Tablas | X | X |
| Tablas con particiones | X | X |
| Procedimientos almacenados: definición (Transact-SQL y CLR) | X | X |
| Procedimientos almacenados: ejecución (Transact-SQL y CLR) | X | No |
| Vistas | X | X |
| Vistas indexadas | X | X |
| Vistas indizadas como tablas | X | No |
| User-Defined Tipos (CLR) | X | X |
| Las Funciones de User-Defined (Transact-SQL y CLR) | X | X |
| Tipos de datos de alias | X | X |
| Índices de texto completo | X | X |
| Objetos de esquema (restricciones, índices, desencadenadores DML de usuario, propiedades extendidas e intercalación) | X | X |
Creación de publicaciones
Para crear una publicación, proporcione la siguiente información:
Distribuidor.
Ubicación de los archivos de instantáneas.
Base de datos de publicación.
Tipo de publicación que se va a crear (instantánea, transaccional, transaccional con suscripciones actualizables o mezcla).
Los objetos de datos y de base de datos (artículos) que se van a incluir en la publicación.
Filtros de fila estáticos y filtros de columna para todos los tipos de publicaciones, y filtros de fila con parámetros y filtros de combinación para publicaciones de combinación.
La programación del Agente de instantáneas.
Cuentas con las que se ejecutarán los siguientes agentes: el Agente de instantáneas para todas las publicaciones; el Agente de registro del Log para todas las publicaciones transaccionales; El Agente de lectura de cola para publicaciones transaccionales que permiten actualizar suscripciones.
Nombre y descripción de la publicación.
Para obtener información sobre cómo trabajar con publicaciones, consulte los temas siguientes:
Create a Publication (Creación de una publicación)
Nota:
Al eliminar un artículo o publicación no se quitan objetos del suscriptor.
Publicar tablas
El objeto publicado con más frecuencia es una tabla. Los vínculos siguientes proporcionan información adicional sobre las áreas relacionadas con la publicación de tablas:
Al publicar una tabla para la replicación, puede especificar qué objetos de esquema se deben copiar en el suscriptor, como la integridad referencial declarada (restricciones de clave principal, restricciones de referencia, restricciones únicas), índices, desencadenadores DML de usuario (los desencadenadores DDL no se pueden replicar), las propiedades extendidas y la intercalación. Las propiedades extendidas solo se replican en la sincronización inicial entre el publicador y el suscriptor. Si agrega o modifica una propiedad extendida después de la sincronización inicial, el cambio no se replica.
Para especificar las opciones de esquema, vea Especificar opciones de esquema o SchemaOption.
Tablas e índices con particiones
La replicación admite la publicación de tablas e índices con particiones. El nivel de compatibilidad depende del tipo de replicación que se usa y de las opciones que especifique para la publicación y los artículos asociados a tablas con particiones. Para obtener más información, vea Replicar tablas e índices con particiones.
Publicación de procedimientos almacenados
Todos los tipos de replicación permiten replicar definiciones de procedimientos almacenados: CREATE PROCEDURE se copia a cada suscriptor. En el caso de procedimientos almacenados de Common Language Runtime (CLR), también se copia el ensamblado asociado. Los cambios en los procedimientos se replican en los suscriptores; los cambios en los conjuntos asociados no se replican.
Además de replicar la definición de un procedimiento almacenado, la replicación transaccional permite replicar la ejecución de procedimientos almacenados. Esto resulta útil para replicar los resultados de los procedimientos almacenados orientados al mantenimiento que afectan a grandes cantidades de datos. Para obtener más información, consulte la publicación de la ejecución de procedimientos almacenados en replicación transaccional.
Opciones de publicación
Todos los tipos de replicación permiten replicar vistas. La vista (y su índice asociado, si se trata de una vista indizada) se puede copiar al Suscriptor, pero la tabla base también debe replicarse.
Para las vistas indizadas, la replicación transaccional también permite replicar la vista indizada como una tabla en lugar de una vista, lo que elimina la necesidad de replicar también la tabla base. Para ello, especifique una de las opciones de "vista indexada basada en registros" para el parámetro @type de sp_addarticle (Transact-SQL). Para obtener más información sobre el uso de sp_addarticle, vea Definir un artículo.
Publicación de funciones de User-Defined
Las instrucciones CREATE FUNCTION para las funciones CLR y las funciones Transact-SQL se copian a cada suscriptor. En el caso de las funciones CLR, también se copia el ensamblado asociado. Los cambios en las funciones se replican en Suscriptores; los cambios en los ensamblados asociados no se replican.
Publicación de tipos de User-Defined y tipos de datos de alias
Las columnas que usan tipos definidos por el usuario o tipos de datos de alias se replican a los suscriptores como cualquier otra columna. La instrucción CREATE TYPEstatement para cada tipo replicado se ejecuta en el suscriptor antes de crear la tabla. En el caso de los tipos definidos por el usuario, la asamblea asociada también se copia a cada suscriptor. Los cambios en los tipos definidos por el usuario y los tipos de datos de alias no se replican en los suscriptores.
Si se define un tipo en una base de datos, pero no se hace referencia a él en ninguna columna cuando se crea una publicación, el tipo no se copia a Suscriptores. Si posteriormente crea una columna de ese tipo en la base de datos y quiere replicarla, primero debe copiar manualmente el tipo (y el ensamblado asociado para un tipo definido por el usuario) en cada suscriptor.
Publicación de índices de texto completo
La instrucción CREATE FULLTEXT INDEX se copia en cada suscriptor y el índice de texto completo se crea en el suscriptor. No se replican los cambios realizados en los índices de texto completo mediante ALTER FULLTEXT INDEX.
Realizar cambios de esquema en objetos publicados
La replicación admite una amplia gama de cambios de esquema en los objetos publicados. Al realizar cualquiera de los siguientes cambios de esquema en el objeto publicado adecuado en un publicador de SQL Server, ese cambio se propaga de forma predeterminada a todos los suscriptores de SQL Server:
MODIFICAR TABLA
ALTER VIEW
ALTER PROCEDURE
ALTER FUNCTION
ALTER TRIGGER
Para más información, vea Realizar cambios de esquema en bases de datos de publicaciones.
Consideraciones para la publicación
Tenga en cuenta los siguientes problemas al publicar objetos de base de datos:
La base de datos es accesible para los usuarios durante la creación de la publicación y la instantánea inicial, pero es aconsejable crear publicaciones durante tiempos de menor actividad en el publicador.
No se puede cambiar el nombre de una base de datos después de crear una publicación en ella. Para cambiar su nombre, primero debe quitar la replicación de la base de datos.
Si va a publicar un objeto de base de datos que depende de uno o más objetos de base de datos, debe publicar todos los objetos a los que se hace referencia. Por ejemplo, si publica una vista que depende de una tabla, también debe publicar la tabla.
Nota:
Si agrega un artículo a una publicación de combinación y un artículo existente depende del nuevo artículo, debe especificar un orden de procesamiento para ambos artículos mediante el parámetro @processing_order de sp_addmergearticle y sp_changemergearticle. Tenga en cuenta el siguiente escenario: publique una tabla, pero no publique una función a la que hace referencia la tabla. Si no publica la función, la tabla no se puede crear en el Subscriber. Al agregar la función a la publicación: especifique un valor de 1 para el parámetro @processing_order de sp_addmergearticle; y especifican un valor de 2 para el parámetro @processing_order de sp_changemergearticle, especificando el nombre de la tabla para el parámetro @article. Este orden de procesamiento garantiza que Usted cree la función en el Suscriptor antes de la tabla que depende de ella. Puede usar números diferentes para cada artículo siempre que el número de la función sea inferior al número de la tabla.
Los nombres de publicación no pueden incluir los siguientes caracteres: % * [ ] | : " ? \ / <>.
Limitaciones en la publicación de objetos
El número máximo de artículos y columnas que se pueden publicar difiere según el tipo de publicación. Para obtener más información, vea la sección "Replication Objects" (Objetos de replicación) de Especificaciones de capacidad máxima para SQL Server.
Los procedimientos almacenados, las vistas, los desencadenadores y las funciones definidas por el usuario que se definen como WITH ENCRYPTION no se pueden publicar como parte de la replicación de SQL Server.
Las colecciones de esquemas XML se pueden replicar, pero los cambios no se replican después de la instantánea inicial.
Las tablas publicadas para la replicación transaccional deben tener una clave principal. Si una tabla está en una publicación de replicación transaccional, no puede deshabilitar los índices asociados a las columnas de clave principal. Estos índices son necesarios para la replicación. Para deshabilitar un índice, primero debe quitar la tabla de la publicación.
Los valores predeterminados enlazados creados con sp_bindefault (Transact-SQL) no se replican (los valores predeterminados enlazados están en desuso en favor de los valores predeterminados creados con la palabra clave DEFAULT de ALTER TABLE o CREATE TABLE).
Las funciones que contienen la sugerencia
NOEXPANDen las vistas indexadas no se pueden publicar en la misma publicación que las tablas y vistas indexadas a las que se hace referencia, debido al orden en que el agente de distribución las entrega. Para solucionar este problema, sitúe la creación de la tabla y la vista indexada en una primera publicación y agregue funciones que contengan la pistaNOEXPANDen las vistas indexadas a una segunda publicación que se publique tras completar la primera publicación. O bien, cree scripts para estas funciones y entregue el script mediante el parámetro @post_snapshot_script desp_addpublication.
Esquemas y propiedad del objeto
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.
Publicación de datos en suscriptores que ejecutan versiones anteriores de SQL Server
Si va a publicar en un suscriptor que ejecuta una versión anterior de SQL Server, se limita a la funcionalidad de esa versión, tanto en términos de funcionalidad específica de replicación como de la funcionalidad del producto en su conjunto.
Las publicaciones de mezcla usan un nivel de compatibilidad, que determina qué características se pueden usar en una publicación y permite admitir suscriptores que ejecutan versiones anteriores de SQL Server.
Publicación de tablas en más de una publicación
La replicación admite la publicación de artículos en varias publicaciones (incluidos los datos de nueva publicación) con las restricciones siguientes:
Si un artículo se publica en una publicación transaccional y una publicación de combinación, asegúrese de que la propiedad @published_in_tran_pub esté establecida en TRUE para el artículo de combinación. Para obtener más información sobre cómo establecer propiedades, vea Ver y modificar propiedades de publicación y Ver y modificar propiedades de artículo.
También debe establecer la propiedad @published_in_tran_pub si un artículo forma parte de una suscripción transaccional y se incluye en una publicación de combinación. Si este es el caso, tenga en cuenta que, de forma predeterminada, la replicación transaccional espera que las tablas del suscriptor se traten como de solo lectura; si la replicación de mezcla realiza cambios de datos en una tabla de una suscripción transaccional, puede producirse una no convergencia de datos. Para evitar esta posibilidad, se recomienda especificar dicha tabla como solo para descarga en la publicación de combinación. Esto impide que un suscriptor de combinación cargue los cambios de datos en la tabla. Para más información, vea Optimizar el rendimiento de la replicación de mezcla con artículos de solo descarga.
No se puede publicar un artículo tanto en una publicación de combinación como en una publicación transaccional con suscripciones de actualización en cola.
Los artículos incluidos en publicaciones transaccionales que admiten la actualización de suscripciones no se pueden volver a publicar.
Si un artículo se publica en más de una publicación transaccional que admite suscripciones de actualización en cola, las siguientes propiedades deben tener el mismo valor para el artículo en todas las publicaciones:
Propiedad Parámetro en sp_addarticle Gestión de rangos de identidades @auto_identity_range (en desuso) y @identityrangemangementoption Rango de identidades del editor @pub_identity_range Intervalo de identidades @identity_range Umbral de intervalo de identidad @threshold Para obtener más información sobre estos parámetros, vea sp_addarticle (Transact-SQL).
Si un artículo se publica en más de una publicación de combinación, las siguientes propiedades deben tener el mismo valor para el artículo en todas las publicaciones:
Propiedad Parámetro en sp_addmergearticle Seguimiento de columnas @column_tracking Opciones del esquema @schema_option Filtrado de columnas @vertical_partition Opciones de carga del suscriptor @subscriber_upload_options Seguimiento del borrado condicional @delete_tracking Compensación de errores @compensate_for_errors Gestión del rango de identidades @auto_identity_range (en desuso) y @identityrangemangementoption Rango de identidad del editor @pub_identity_range Intervalo de identidades @identity_range Umbral de intervalo de identidad @threshold Opciones de partición @partition_options Streaming de columnas de blobs @stream_blob_columns Tipo de filtro @filter_type (parámetro en sp_addmergefilter) Para obtener más información sobre estos parámetros, vea sp_addmergearticle (Transact-SQL) y sp_addmergefilter (Transact-SQL).
La replicación transaccional y la replicación de mezcla sin filtrar admiten la publicación de una tabla en varias publicaciones y, a continuación, la suscripción dentro de una sola tabla de la base de datos de suscripciones (lo que se conoce normalmente como escenario de acumulación). "El proceso de consolidación se usa a menudo para agregar subconjuntos de datos de varias ubicaciones en una tabla central en un nodo central." Las publicaciones de combinación filtradas no admiten el escenario de suscriptor central. Para la replicación de mezcla, la consolidación se implementa normalmente a través de una sola publicación con filtros de fila con parámetros. Para obtener más información, vea Filtros de fila con parámetros.
Véase también
Agregar y quitar artículos de publicaciones existentes
Configurar distribución
Inicializar una suscripción
Replicación de scripts
Proteger al publicador
Suscribirse a publicaciones