Cómo crear una suscripción para un suscriptor que no sea de SQL Server (SQL Server Management Studio)
Actualizado: 12 de diciembre de 2006
La réplica transaccional y la réplica de instantáneas permiten la publicación de datos en suscriptores que no son de Microsoft SQL Server. Para crear una publicació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, vea Suscriptores de Oracle y Suscriptores de IBM DB2.
- Cree una publicación mediante el Asistente para nueva publicación. Para obtener más información sobre la creación de publicaciones, vea Cómo crear publicaciones y definir artículos (SQL Server Management Studio) y Cómo crear una publicación a partir de una base de datos de Oracle (SQL Server Management Studio). 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 secuencias de comandos de inicialización e instantáneas adecuados para los suscriptores que no son de SQL Server.
- Habilite 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>. En este tema se proporciona más información acerca de este paso.
- 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, vea Cómo sincronizar una suscripción de inserción (SQL Server Management Studio).
[!NOTA] Este proceso es aplicable a los publicadores que ejecutan Microsoft SQL Server 2005 y versiones posteriores.
Para habilitar una publicación para suscriptores que no son de SQL Server
Conéctese al publicador en SQL Server Management Studio y, a continuación, expanda el nodo de servidor.
Expanda la carpeta Réplica 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 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 réplica 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 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
Expanda la carpeta Réplica 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 de SQL 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 réplica 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.
Haga clic en Aceptar. En la página Suscriptores del asistente, el suscriptor aparece en la columna Suscriptor con un (destino predeterminado) de sólo 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.
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.
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 de la función fija de base de datos db_owner de la base de datos de distribución; miembro de la lista de acceso de 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.
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 obtener más información, vea Crear secuencias de comandos para la réplica.
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 réplica 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 Réplica 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 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".
Vea también
Conceptos
Suscriptores que no son de SQL Server
Otros recursos
How to: Create a Subscription for a Non-SQL Server Subscriber (Replication Transact-SQL Programming)