Share via


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 2012 mediante SQL Server Management Studio o Transact-SQL. La replicación transaccional y la replicación de instantáneas admiten 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 Suscriptores que no son de SQL Server.

En este tema

  • Para crear una suscripción para un suscriptor que no sea de SQL Server con:

    SQL Server Management Studio

    Transact-SQL

Usar SQL Server Management Studio

Para crear una publicación para un suscriptor que no sea de SQL Server:

  1. 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, vea Suscriptores de Oracle y Suscriptores de IBM DB2.

  2. Cree una publicación mediante el Asistente para nueva publicación. Para obtener más información sobre la creación de publicaciones, vea Crear una publicación 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 de SQL 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 de SQL Server.

  3. Habilitar la publicación para los suscriptores que no son de SQL Server mediante el cuadro de diálogo Propiedades de la publicación: <nombreDePublicación>. Para obtener más información acerca de este paso, vea Propiedades de la publicación, Opciones de suscripción.

  4. Cree una suscripción mediante el Asistente para nuevas suscripciones. En este tema se proporciona más información acerca de este paso.

  5. (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.

  6. Genere una instantánea para la publicación. En este tema se proporciona más información acerca de este paso.

  7. Sincronice la suscripción. Para obtener más información, vea Sincronizar una suscripción de inserción.

Para habilitar una publicación para suscriptores que no son de SQL Server

  1. Conéctese al publicador en SQL Server Management Studio y, a continuación, expanda el nodo de servidor.

  2. Expanda la carpeta Replicación y, a continuación, expanda la carpeta Publicaciones locales.

  3. Haga clic con el botón secundario en la publicación y, a continuación, haga clic en Propiedades.

  4. 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 de SQL 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'.

  5. Haga clic en Aceptar. 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

  1. Expanda la carpeta Replicación y, a continuación, expanda la carpeta Publicaciones locales.

  2. Haga clic con el botón secundario en la publicación correspondiente y, a continuación, haga clic en Nuevas suscripciones.

  3. 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 de SQL Server no pueden ejecutar agentes en el suscriptor.

  4. 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.

  5. En el cuadro de diálogo Agregar suscriptor que no sea de SQL Server, seleccione el tipo de suscriptor.

  6. 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, vea Suscriptores de Oracle y Suscriptores de IBM DB2.

  7. Haga clic en Aceptar. 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:

    • Para 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.

  8. En la página Seguridad del Agente de distribución, haga clic en el botón de propiedades () situado junto al suscriptor para obtener acceso al cuadro de diálogo Seguridad del Agente de distribución.

  9. En el cuadro de diálogo Seguridad del Agente de distribución:

    • En los campos Cuenta de proceso, Contraseña y 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 acerca de PAL, vea Proteger el publicador.

    • En Conectar al suscriptor, en los campos Inicio de sesión, Contraseña y 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 (Procesar valor binario como carácter) siempre debe establecerse en False. Se requiere un valor para que la opción Catálogo inicial identifique la base de datos de suscripciones.

  10. 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).

  11. 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.

  12. En la página Acciones del asistente, incluya de forma opcional la suscripción. Para obtener más información, vea Crear script para la replicación.

Para conservar las tablas en el suscriptor

  • De forma predeterminada, al habilitar una publicación para suscriptores que no son de SQL 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

  1. Expanda la carpeta Replicación y, a continuación, expanda la carpeta Publicaciones locales.

  2. 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.

  3. En el cuadro de diálogo Ver estado del agente de instantáneas - <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".

Icono de flecha usado con el vínculo Volver al principio[Top]

Usar Transact-SQL

Puede crear suscripciones de inserción para suscriptores que no sean de SQL Server mediante programación con procedimientos almacenados de replicación.

Nota de seguridadNota de seguridad

Cuando sea posible, pida a los usuarios que proporcionen credenciales de seguridad en tiempo de ejecución. Si debe almacenar credenciales en un archivo de script, protéjalo 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

  1. Instale el proveedor OLE DB más reciente para el Suscriptor que no sea de SQL Server en el Publicador y el Distribuidor. Para los requisitos de replicación para un proveedor OLE DB, vea Suscriptores que no son de SQL Server, Suscriptores de Oracle, Suscriptores de IBM DB2.

  2. En el publicador de la base de datos de publicación, compruebe que la publicación admita suscriptores que no sean de SQL Server mediante la ejecución de sp_helppublication (Transact-SQL).

    • Si el valor de enabled_for_het_sub es 1, se admiten Suscriptores que no sean de SQL Server.

    • Si el valor de enabled_for_het_sub es 0, ejecute sp_changepublication (Transact-SQL), especificando enabled_for_het_sub para @property y true para @value.

      [!NOTA]

      Antes de cambiar enabled_for_het_sub a true, debe quitar cualquier suscripción existente en la publicación. No puede establecer enabled_for_het_sub en true cuando la publicación también admite las suscripciones de actualización. El cambio de enabled_for_het_sub afectará a otras propiedades de publicación. Para obtener más información, vea Suscriptores que no son de SQL Server.

  3. 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).

  4. En la base de datos de publicación del publicador, ejecute sp_addpushsubscription_agent (Transact-SQL). Especifique lo siguiente:

    • Los parámetros @subscriber y @publication.

    • Un valor de (destino predeterminado) para @subscriber_db,

    • Las propiedades del origen de datos que no es de 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 que se realicen con 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 Agente de distribución de esta suscripción. Para obtener más información, vea Especificar programaciones de sincronización.

    Nota de seguridadNota de seguridad

    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).

Icono de flecha usado con el vínculo Volver al principio[Top]

Vea también

Conceptos

Suscriptores de IBM DB2

Suscriptores de Oracle

Otros suscriptores que no son de SQL Server

Conceptos sobre los procedimientos almacenados del sistema de replicación

Prácticas recomendadas de seguridad de replicación