Crear una suscripción para un suscriptor que no sea de SQL Server
En este tema se describe cómo crear una suscripción para un suscriptor que no sea de SQL Server en SQL Server 2014 mediante SQL Server Management Studio o Transact-SQL. La replicación transaccional y de instantáneas admite la publicación de datos en suscriptores que no son de SQL Server. Para obtener más información sobre plataformas de suscriptores admitidos, vea Non-SQL Server Subscribers.
En este tema
Para crear una suscripción para un suscriptor que no sea de SQL Server con:
Uso de SQL Server Management Studio
Para crear una suscripción para un suscriptor que no sea de SQL Server:
Instale y configure el software de cliente y el proveedor o proveedores OLE DB adecuados en el distribuidor de SQL Server . Para obtener más información, consulte Oracle Subscribers y IBM DB2 Subscribers.
Cree una publicación mediante el Asistente para nueva publicación. Para obtener información sobre cómo crear una publicación de una base de datos de Oracle, vea Crear una publicación a partir de una base de datos de Oracle y Crear una publicación a partir de una base de datos de Oracle. En el Asistente para nueva publicación, especifique las siguientes opciones:
En la página Tipo de publicación , seleccione Publicación de instantáneas o Publicación transaccional.
En la página Agente de instantáneas , desactive Crear una instantánea inmediatamente.
La instantánea se crea una vez habilitada la publicación para los suscriptores que no son deSQL Server a fin de garantizar que el Agente de instantáneas genera scripts de inicialización e instantáneas adecuados para los suscriptores que no son deSQL Server .
Habilite la publicación para suscriptores que no sean SQL Server mediante el cuadro de diálogo Propiedades de publicación : <NombreDe> Publicación. Para obtener más información acerca de este paso, vea Publication Properties, Subscription Options .
Cree una suscripción mediante el Asistente para nuevas suscripciones. En este tema se proporciona más información acerca de este paso.
(Opcional) Cambie la propiedad de artículo pre_creation_cmd para conservar las tablas en el suscriptor. En este tema se proporciona más información acerca de este paso.
Genere una instantánea para la publicación. En este tema se proporciona más información acerca de este paso.
Sincronice la suscripción. Para obtener más información, consulte Synchronize a Push Subscription.
Para habilitar una publicación para suscriptores que no son de SQL Server
Conéctese al publicador en SQL Server Management Studioy luego expanda el nodo del servidor.
Expanda la carpeta Replicación y, a continuación, expanda la carpeta Publicaciones locales .
Haga clic con el botón secundario en la publicación y, a continuación, haga clic en Propiedades.
En la página Opciones de suscripción , seleccione el valor True para la opción Permitir suscriptores que no sean de SQL. Al seleccionar esta opción, se modifican una serie de propiedades para que la publicación sea compatible con suscriptores que no son deSQL Server .
Nota:
Al seleccionar True se asigna el valor 'drop' a la propiedad de artículo pre_creation_cmd . El valor mencionado indica que la replicación debe quitar una tabla en el suscriptor si coincide con el nombre de la tabla del artículo. Si en el suscriptor existen tablas que desea conservar, use el procedimiento almacenado sp_changearticle para cada artículo; asigne el valor 'none' a pre_creation_cmd:
sp_changearticle @publication= 'MyPublication', @article= 'MyArticle', @property='pre_creation_cmd', @value='none'
.Haga clic en OK. Se le pedirá que cree una nueva instantánea para la publicación. Si no desea crear ninguna en este momento, siga los pasos descritos en el procedimiento correspondiente más adelante.
Para crear una suscripción para un suscriptor que no sea de SQL Server
Expanda la carpeta Replicación y, a continuación, expanda la carpeta Publicaciones locales .
Haga clic con el botón secundario en la publicación correspondiente y, a continuación, haga clic en Nuevas suscripciones.
En la página Ubicación del Agente de distribución , asegúrese de que la opción Ejecutar todos los agentes en el distribuidor está seleccionada. Los suscriptores que no son deSQL Server no pueden ejecutar agentes en el suscriptor.
En la página Suscriptores , haga clic en Agregar suscriptor y, a continuación, haga clic en Agregar suscriptor que no sea de SQL Server.
En el cuadro de diálogo Agregar suscriptor que no sea de SQL Server , seleccione el tipo de suscriptor.
Especifique un valor en Nombre del origen de datos:
Para Oracle, es el nombre TNS (transparent network substrate) configurado.
Para IBM, puede ser cualquier nombre. Lo habitual es especificar la dirección de red del suscriptor.
El asistente no valida el nombre del origen de datos especificado en este paso ni las credenciales del paso 9. No se utilizan para la replicación hasta que se ejecuta el Agente de distribución para la suscripción. Asegúrese de que haber comprobado todos los valores conectándose al suscriptor mediante una herramienta cliente (como sqlplus para Oracle). Para obtener más información, consulte Oracle Subscribers y IBM DB2 Subscribers.
Haga clic en OK. En la página Suscriptores del asistente, el suscriptor aparece en la columna Suscriptor con un (destino predeterminado) de solo lectura en la columna Base de datos de suscripciones :
En Oracle, un servidor tiene como máximo una base de datos, por lo que no es necesario especificarla.
Para IBM DB2, la base de datos se especifica en la propiedad Catálogo inicial de la cadena de conexión DB2, la cual puede indicarse en el campo Opciones de conexión adicionales que se describe más adelante en este proceso.
En la página Seguridad de Agente de distribución, haga clic en el botón de propiedades (...) situado junto al suscriptor para acceder al cuadro de diálogo Seguridad de Agente de distribución.
En el cuadro de diálogo Seguridad del Agente de distribución :
En los campos Cuenta de proceso, Contraseñay Confirmar contraseña , especifique la cuenta y contraseña de Microsoft Windows con las que se deberá ejecutar el Agente de distribución y establecer las conexiones locales al distribuidor.
La cuenta requiere los siguientes permisos mínimos: miembro del rol fijo de base de datos db_owner de la base de datos de distribución; miembro de la lista de acceso a la publicación (PAL); disponer de permisos de lectura en el recurso compartido de instantáneas y disponer de permiso de lectura en el directorio de instalación del proveedor OLE DB. Para obtener más información sobre la PAL, vea Secure the Publisher (Proteger el publicador).
En Conectar al suscriptor, en los campos Inicio de sesión, Contraseñay Confirmar contraseña , escriba el nombre de inicio de sesión y la contraseña que deben utilizarse para conectar al suscriptor. Este inicio de sesión ya debería estar configurado y disponer de los permisos suficientes para crear objetos en la base de datos de suscripciones.
En el campo Opciones de conexión adicionales , especifique cualquier opción de conexión para el suscriptor en forma de cadena de conexión (Oracle no requiere opciones adicionales). Las opciones deben ir separadas con punto y coma. A continuación se ofrece un ejemplo de una cadena de conexión DB2 (se han incluido saltos de línea para facilitar la lectura):
Provider=DB2OLEDB;Initial Catalog=MY_SUBSCRIBER_DB;Network Transport Library=TCP;Host CCSID=1252; PC Code Page=1252;Network Address=MY_SUBSCRIBER;Network Port=50000;Package Collection=MY_PKGCOL; Default Schema=MY_SCHEMA;Process Binary as Character=False;Units of Work=RUW;DBMS Platform=DB2/NT; Persist Security Info=False;Connection Pooling=True;
La mayoría de las opciones de la cadena son específicas para el servidor DB2 que está configurando, pero la opción Process Binary as Character siempre debe establecerse en False. Se requiere un valor para que la opción Catálogo original identifique la base de datos de suscripciones.
En la página Programación de sincronización , seleccione una programación para el Agente de distribución en el menú Programación del agente (la programación suele ser Ejecutar continuamente).
En la página Inicializar suscripciones , especifique si la suscripción debe inicializarse y, en ese caso, cuándo debe llevarse a cabo:
Desactive Inicializar únicamente si ha creado todos los objetos y agregado todos los datos necesarios a la base de datos de suscripciones.
Seleccione Inmediatamente en la lista desplegable de la columna Inicializar cuando para que el Agente de distribución transfiera los archivos de instantáneas al suscriptor una vez que el asistente haya finalizado. Seleccione En la primera sincronización para que el agente transfiera los archivos la próxima vez que esté programado para ejecutarse.
En la página Acciones del asistente , incluya de forma opcional la suscripción. Para más información, consulte Scripting Replication.
Para conservar las tablas en el suscriptor
- De forma predeterminada, al habilitar una publicación para suscriptores que no son deSQL Server , se asigna el valor 'drop' a la propiedad de artículo pre_creation_cmd . El valor mencionado indica que la replicación debe quitar una tabla en el suscriptor si coincide con el nombre de la tabla del artículo. Si en el suscriptor existen tablas que desea conservar, use el procedimiento almacenado sp_changearticle para cada artículo; asigne el valor 'none' a pre_creation_cmd.
sp_changearticle @publication= 'MyPublication', @article= 'MyArticle', @property='pre_creation_cmd', @value='none'
.
Para generar una instantánea para la publicación
Expanda la carpeta Replicación y, a continuación, expanda la carpeta Publicaciones locales .
Haga clic con el botón secundario en la publicación y, a continuación, haga clic en Ver estado del agente de instantáneas.
En el cuadro de diálogo Ver Agente de instantáneas Estado - <Publicación>, haga clic en Iniciar.
Cuando el Agente de instantáneas termina de generar la instantánea, aparece un mensaje del tipo "[100%] Se ha generado una instantánea de 17 artículos".
Usar Transact-SQL
Puede crear suscripciones de inserción a suscriptores que no son de SQL Server mediante programación mediante procedimientos almacenados de replicación.
Importante
Cuando sea posible, pida a los usuarios que proporcionen credenciales de seguridad en tiempo de ejecución. Si debe almacenar las credenciales en un archivo de script, proteja el archivo para evitar el acceso no autorizado.
Para crear una suscripción de inserción para una publicación transaccional o de instantáneas a un suscriptor que no sea de SQL Server
Instale el proveedor OLE DB más reciente para el Suscriptor que no sea deSQL Server en el Publicador y el Distribuidor. Para los requisitos de replicación para un proveedor OLE DB, vea Non-SQL Server Subscribers, Oracle Subscribers, IBM DB2 Subscribers.
En la base de datos de publicación del publicador, compruebe que la publicación admite suscriptores que no son de SQL Server ejecutando sp_helppublication (Transact-SQL).
Si el valor de
enabled_for_het_sub
es 1, se admiten suscriptores que no son SQL Server.Si el valor de
enabled_for_het_sub
es 0, ejecute sp_changepublication (Transact-SQL), especificandoenabled_for_het_sub
para @property ytrue
para @value.Nota:
Antes de cambiar
enabled_for_het_sub
atrue
, debe quitar cualquier suscripción existente en la publicación. No puede establecerenabled_for_het_sub
entrue
cuando la publicación también admite las suscripciones de actualización. El cambio deenabled_for_het_sub
afectará a otras propiedades de publicación. Para más información, consulte Non-SQL Server Subscribers.
En la base de datos de publicación del publicador, ejecute sp_addsubscription (Transact-SQL). Especifique @publication, @subscriber, un valor de (destino predeterminado) para @destination_db, un valor de push para @subscription_typey un valor de 3 para @subscriber_type (especifica un proveedor OLE DB).
En el publicador de la base de datos de publicación, ejecute sp_addpushsubscription_agent (Transact-SQL). Especifique lo siguiente:
Los parámetros @subscribery @publication .
Un valor de (destino predeterminado) para @subscriber_db,
Propiedades del origen de datos no SQL Server para @subscriber_provider, @subscriber_datasrc, @subscriber_location, @subscriber_provider_string y @subscriber_catalog.
Las credenciales de Microsoft Windows con las que se ejecuta el Agente de distribución en el distribuidor para @job_login y @job_password.
Nota:
Las conexiones realizadas mediante la autenticación integrada de Windows siempre usan las credenciales de Windows especificadas por @job_login y @job_password. El Agente de distribución siempre realiza la conexión local con el distribuidor mediante la autenticación integrada de Windows. De forma predeterminada, el agente se conectará con el suscriptor mediante la autenticación integrada de Windows.
Un valor de 0 para @subscriber_security_mode y la información de inicio de sesión del proveedor OLE DB para @subscriber_login y @subscriber_password.
Una programación para el trabajo del Agente de distribución de esta suscripción. Para obtener más información, consulte Specify Synchronization Schedules.
Importante
Al crear una suscripción de inserción en un publicador con un distribuidor remoto, los valores suministrados para todos los parámetros, incluidos job_login y job_password, se envían al distribuidor como texto simple. Antes de ejecutar este procedimiento almacenado, se recomienda cifrar la conexión entre el publicador y su distribuidor remoto. Para obtener más información, vea Habilitar conexiones cifradas en el motor de base de datos (Administrador de configuración de SQL Server).
Consulte también
IBM DB2 Subscribers
Oracle Subscribers
Otros suscriptores que no son de SQL Server
Conceptos de procedimientos almacenados del sistema de replicación
Procedimientos recomendados de seguridad de replicación