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.
Se aplica a:SQL Server
Azure SQL Managed Instance
Al crear una publicación puede elegir las tablas y otros objetos de base de datos que desee publicar. Puede publicar los siguientes objetos de base de datos utilizando la replicación.
| Objeto de base de datos | Replicación de instantáneas y replicación transaccional | Replicación de mezcla |
|---|---|---|
| Tablas | X | X |
| Tablas particionadas | 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 |
| Tipos definidos por el usuario (CLR) | X | X |
| Funciones definidas por el usuario (Transact-SQL y CLR) | X | X |
| Tipos de datos con 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, proporciona la siguiente información:
- El distribuidor.
- La ubicación de los archivos de instantáneas.
- La base de datos de publicaciones.
- El tipo de publicación que se va a crear (de instantánea, transaccional, transaccional con suscripciones actualizables o de mezcla).
- Los datos y los objetos de la base de datos (artículos) que se incluirán en la publicación.
- Filtros de fila estáticos y de columna para todos los tipos de publicaciones, y filtros de fila con parámetros y filtros de combinación para publicaciones de mezcla.
- La programación del Agente de instantáneas.
- Cuentas bajo las cuales se ejecutan los siguientes agentes: el Agente de instantáneas para todas las publicaciones; el Log Reader Agent para todas las publicaciones transaccionales; el Attach Queue Reader para publicaciones transaccionales que permiten actualizar suscripciones.
- Un nombre y una descripción para la publicación.
Para información sobre cómo trabajar con publicaciones, consulte los siguientes artículos:
- Create a Publication (Creación de una publicación)
- Definir un artículo
- Ver y modificar propiedades de publicación
- Ver y modificar las propiedades de un artículo
- Eliminar una publicación
- Eliminar un artículo
Nota:
Eliminar un artículo o publicación no elimina objetos del Suscriptor.
Tablas de publicación
El objeto que se publica con más frecuencia es la tabla. Los siguientes enlaces ofrecen más información sobre tablas de publicación:
- Filtrar datos publicados
- Opciones de artículo para la replicación transaccional
- Opciones de artículos para replicación de mezcla
- Replicar columnas de identidad
Cuando publicas una tabla para replicación, puedes especificar qué objetos de esquema copiar al Suscriptor, como la integridad referencial declarada (restricciones de clave primaria, restricciones de referencia, restricciones únicas), índices, disparadores DML de usuario (los disparadores DDL no pueden replicarse), propiedades extendidas y recopilació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 opciones de esquema, vea Especificar las opciones del esquema o SchemaOption.
Tablas e índices con particiones
La replicación permite publicar tablas e índices particionados. El nivel de soporte depende del tipo de replicación que utilices y de las opciones que especifiques para la publicación y los artículos asociados a tablas particionadas. 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: la CREATE PROCEDURE instrucción se copia a cada Suscriptor. En el caso de los procedimientos almacenados CLR (Common Language Runtime), también se copia el ensamblado asociado. Los cambios en los procedimientos se replican a los Suscriptores; los cambios en los ensamblajes asociados no.
Además de replicar la definición de un procedimiento almacenado, la replicación transaccional permite replicar la ejecución de procedimientos almacenados. Esta función es útil para replicar los resultados de procedimientos almacenados orientados al mantenimiento que afectan grandes cantidades de datos. Para más información, consulte Publicar la ejecución de procedimientos almacenados en la replicación transaccional.
Publicar vistas
Todos los tipos de replicación permiten replicar vistas: Puedes copiar la vista y su índice correspondiente (si es una vista indexada) al Suscriptor, pero también debes replicar la tabla base.
En las vistas indizadas, la replicación transaccional también permite replicar la vista indizada en forma de tabla y no como vista, eliminando la necesidad de replicar también la tabla base. Para ello, especifique una de las opciones "vista indexada basada en el registro" del parámetro @type de sp_addarticle (Transact-SQL). Para obtener más información sobre cómo usar sp_addarticle, vea Definir un artículo.
Publicación de funciones definidas por el usuario
Las instrucciones CREATE FUNCTION para las funciones CLR y de Transact-SQL se copian en cada suscriptor. En el caso de las funciones CLR, también se copia el ensamblado asociado. Los cambios en las funciones se replican a los suscriptores; pero los cambios en los ensamblados asociados no.
Publicación de tipos definidos por el usuario y tipos de datos con alias
La replicación trata columnas que usan tipos de datos definidos por el usuario o alias como otras columnas y las replica a los suscriptores. El proceso ejecuta la instrucción CREATE TYPE para cada tipo replicado en el Suscriptor antes de crear la tabla. Para los tipos definidos por el usuario, la replicación también copia el ensamblado asociado a cada suscriptor. La replicación no replica los cambios en los tipos definidos por el usuario ni en los tipos de datos de alias a los suscriptores.
Si defines un tipo en una base de datos pero no lo referencias en ninguna columna cuando creas una publicación, la replicación no copia el tipo a Suscriptores. Si más adelante creas una columna de ese tipo en la base de datos y quieres replicarla, primero debes copiar manualmente el tipo (y el ensamblador asociado para un tipo definido por el usuario) a 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. Los cambios realizados en los índices de texto completo que usan ALTER FULLTEXT INDEX no se replican.
Realizar cambios en el esquema de objetos publicados
La replicación admite una gran variedad de cambios en el esquema de objetos publicados. Cuando realizas cualquiera de los siguientes cambios de esquema en el objeto publicado correspondiente en un SQL Server Publisher, la replicación por defecto propaga ese cambio a todos los suscriptores SQL Server:
ALTER TABLE
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
Ten en cuenta las siguientes consideraciones al publicar objetos de base de datos:
Los usuarios pueden acceder a la base de datos durante la creación de la publicación y la instantánea inicial, pero es mejor crear publicaciones en tiempos de menor actividad en el Publisher.
No puedes renombrar una base de datos después de crear una publicación en ella. Para renombrar la base de datos, primero debes eliminar la replicación de la base de datos.
Si publicas un objeto de base de datos que depende de uno o más otros objetos de base de datos, debes publicar todos los objetos referenciados. Por ejemplo, si publica una vista que depende de una tabla, también debe publicar la tabla.
Nota:
Si añades un artículo a una publicación de fusión y un artículo existente depende del nuevo artículo, debes especificar un orden de procesamiento para ambos artículos usando el parámetro @processing_orderde sp_addmergearticle y sp_changemergearticle. Considera el siguiente escenario: publicas una tabla pero no publicas una función a la que la tabla hace referencia. Si no publicas la función, la tabla no puede crearse en el Suscriptor. Al agregar la función a la publicación: especifique el valor 1 para el parámetro @processing_order de sp_addmergearticley el valor 2 para el parámetro @processing_order de sp_changemergearticle; especifique el nombre de la tabla para el parámetro @article. Este orden de procesamiento garantiza que la función se cree en el suscriptor antes que la tabla que depende de él. Puede usar números distintos para cada artículo, siempre que el número de la función sea inferior al de la tabla.
Los nombres de las publicaciones no pueden incluir los siguientes caracteres: % * [ ] | : " ? \ / <>.
Limitaciones en la publicación de objetos
El número máximo de artículos y columnas que puedes publicar varía según el tipo de publicación. Para obtener más información, vea la sección "Replication Objects" (Objetos de replicación) de Maximum Capacity Specifications for SQL Server (Especificaciones de capacidad máxima para SQL Server).
No puedes publicar procedimientos almacenados, vistas, disparadores y funciones definidas por el usuario que están definidas como CON CIFRADO como parte de la replicación de SQL Server.
Puedes replicar colecciones de esquemas XML 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 puedes desactivar ningún índice asociado a columnas clave primarias. La replicación requiere estos índices. Para deshabilitar un índice, primero debe quitar la tabla de la publicación.
Los valores predeterminados vinculados creados con sp_bindefault (Transact-SQL) no se replican (los valores predeterminados vinculados se deprecan en favor de los predeterminados creados con la DEFAULT palabra clave de ALTER TABLE o CREATE TABLE).
No puedes publicar funciones que contienen la sugerencia NOEXPAND en vistas indexadas en la misma publicación que las tablas referenciadas y las vistas indexadas, debido al orden en que el agente de distribución las entrega. Para evitar este problema, coloque la creación de tablas y vistas indizadas en una primera publicación, y agregue las funciones que contienen la sugerencia NOEXPAND en las vistas indizadas en una segunda publicación que se publique después de que se complete la primera publicación. O bien, cree scripts para estas funciones y entregue el script mediante el parámetro @post_snapshot_script de sp_addpublication.
Esquemas y propiedad de objetos
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:
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. Si en el suscriptor no existen esquemas que posean objetos, se crean de forma automática.
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.
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 Compact): de manera predeterminada, el propietario se deja en blanco. 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.
Puedes cambiar el propietario del objeto a través del 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 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.
Publicar datos en suscriptores que ejecutan versiones anteriores de SQL Server
Si publicas para un suscriptor que ejecuta una versión anterior de SQL Server, estás limitado a la funcionalidad de esa versión. Esta limitación se aplica tanto a la funcionalidad específica de replicación como a la funcionalidad general del producto.
Las publicaciones de fusión utilizan un nivel de compatibilidad, que determina qué funciones puedes usar en una publicación y te permite soportar a los suscriptores que ejecutan versiones anteriores de SQL Server.
Publicar tablas en más de una publicación
La replicación permite publicar artículos en múltiples publicaciones, incluyendo la republicación de datos, con las siguientes restricciones:
Si publicas un artículo tanto en una publicación transaccional como en una publicación de fusión, establece la propiedad de @published_in_tran_pub en VERDADERO para el artículo de fusión. Para obtener más información, vea Ver y modificar propiedades de publicación y Ver y modificar las propiedades de un artículo.
Establece la propiedad @published_in_tran_pub si un artículo forma parte de una suscripción transaccional y está incluido en una publicación de fusión. Por defecto, la replicación transaccional espera que las tablas en el Suscriptor sean de solo lectura. Si la replicación por fusión realiza cambios de datos en una tabla en una suscripción transaccional, puede producirse una no convergencia de datos. Para evitar este problema, especifique cualquier tabla de este tipo como solo para descarga en la publicación de combinación. Esta configuración impide que un suscriptor de fusión suba los cambios de datos a la tabla. Para más información, vea Optimizar el rendimiento de la replicación de mezcla con artículos de solo descarga.
No puedes publicar un artículo tanto en una publicación de fusión como en una publicación transaccional con suscripciones actualizadas en cola.
No puedes volver a publicar artículos incluidos en publicaciones transaccionales que permitan actualizar suscripciones.
Si publicas un artículo en más de una publicación transaccional que soporta suscripciones de actualización en cola, el artículo debe tener el mismo valor para las siguientes propiedades en todas las publicaciones:
Propiedad Parámetro en sp_addarticle Gestión del rango de identidades @auto_identity_range (en desuso) y @identityrangemangementoption Intervalo de identidad del publicador @pub_identity_range Intervalo de identidad @identity_range Umbral del rango de identidad @threshold Para obtener más información sobre estos parámetros, consulte sp_addarticle (Transact-SQL).
Si publicas un artículo en más de una publicación de fusiones, el artículo debe tener el mismo valor para las siguientes propiedades 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 de suscriptor @subscriber_upload_options Seguimiento condicional de eliminaciones @delete_tracking Compensación de errores @compensate_for_errors Gestión del rango de identidades @auto_identity_range (en desuso) y @identityrangemangementoption Intervalo de identidad del publicador @pub_identity_range Intervalo de identidad @identity_range Umbral del rango de identidad @threshold Opciones de partición @partition_options Secuencias de columnas de tipo Blob @stream_blob_columns Tipo de filtro @filter_type (parámetro de sp_addmergefilter) Para obtener más información sobre estos parámetros, consulte sp_addmergearticle (Transact-SQL) y sp_addmergefilter (Transact-SQL).
La replicación transaccional y la replicación de fusiones sin filtros permiten publicar una tabla en varias publicaciones y luego suscribirse dentro de una única tabla en la base de datos de suscripción (comúnmente conocido como escenario de agrupamiento). El rollup se utiliza a menudo para agregar subconjuntos de datos de múltiples ubicaciones en una sola tabla en un suscriptor central. Las publicaciones de combinación filtradas no admiten el escenario de suscriptor central. Para la replicación de fusión, el rollup suele implementarse a través de una única publicación con filtros de fila parametrizados. Para obtener más información, consulte Filtros de fila con parámetros.