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.
A partir de SQL Server 2005, SQL Server admite suscripciones de inserción a Oracle a través del proveedor OLE DB suministrado por Oracle.
Configuración de un suscriptor de Oracle
Para configurar un suscriptor de Oracle, siga estos pasos:
Instale y configure el software de red cliente de Oracle y el proveedor OLE DB de Oracle en el distribuidor de SQL Server para que el distribuidor pueda realizar conexiones con el suscriptor de Oracle. El software de red cliente de Oracle debe ser la versión más reciente disponible. Oracle recomienda que los usuarios instalen las versiones más recientes del software cliente. Por lo tanto, el software cliente suele ser una versión más reciente que el software de base de datos. La manera más sencilla de instalar el software es usar el Instalador universal de Oracle en el disco cliente de Oracle. En el Instalador universal de Oracle, proporcionará la siguiente información:
Información Descripción Oracle Home Esta es la ruta de acceso al directorio de instalación del software de Oracle. Acepte el valor predeterminado (C:\oracle\ora90 o similar) o escriba otra ruta de acceso. Para obtener más información sobre Oracle Home, consulte la sección "Consideraciones para Oracle Home" más adelante en este tema. Nombre principal de Oracle Alias para la ruta de acceso principal de Oracle. Tipo de instalación En Oracle 10g, seleccione la opción de instalación Runtime o Administrador. Cree un nombre de TNS para el suscriptor. TNS (Sustrato de red transparente) es una capa de comunicación que usan las bases de datos de Oracle. El nombre del servicio TNS es el nombre por el que se conoce una instancia de base de datos de Oracle en una red. Asigne un nombre de servicio de TNS al configurar la conectividad a la base de datos de Oracle. La replicación usa el nombre del servicio TNS para identificar el suscriptor y establecer conexiones.
Después de completar el Instalador Universal de Oracle, use el Asistente de Configuración de Red para configurar la conectividad de red. Debe proporcionar cuatro fragmentos de información para configurar la conectividad de red. El administrador de bases de datos de Oracle configura la configuración de red al configurar la base de datos y el agente de escucha y debe poder proporcionar esta información si no la tiene. Haga lo siguiente:
Acción Descripción Identificación de la base de datos Hay dos métodos para identificar la base de datos. El primer método usa el identificador del sistema (SID) de Oracle y está disponible en cada versión de Oracle. El segundo método usa el nombre del servicio, que está disponible a partir de la versión 8.0 de Oracle. Ambos métodos usan un valor que se configura cuando se crea la base de datos y es importante que la configuración de red del cliente use el mismo método de nomenclatura que el administrador usó al configurar el agente de escucha para la base de datos. Identificación de un alias de red para la base de datos Debe especificar un alias de red, que se usa para acceder a la base de datos de Oracle. El alias de red es básicamente un puntero al SID remoto o al nombre del servicio que se configuró cuando se creó la base de datos; se ha mencionado por varios nombres en diferentes versiones y productos de Oracle, como Net Service Name y TNS Alias. SQL*Plus solicita este alias como el parámetro "Cadena de host" al iniciar sesión. Selección del protocolo de red Seleccione los protocolos adecuados que desea admitir. La mayoría de las aplicaciones usan TCP. Especifica la información del host para identificar el agente de escucha de la base de datos El host es el nombre o alias DNS del equipo en el que se ejecuta el agente de escucha de Oracle, que suele ser el mismo equipo en el que reside la base de datos. Para algunos protocolos, debe proporcionar información adicional. Por ejemplo, si selecciona TCP, debe proporcionar el puerto en el que el agente de escucha está escuchando las solicitudes de conexión a la base de datos de destino. La configuración de TCP predeterminada usa el puerto 1521. Cree una publicación instantánea o transaccional, habilítela para suscriptores que no son de SQL Server y, a continuación, cree una suscripción de inserción para el Suscriptor. Para obtener más información, vea Crear una suscripción para un suscriptor que no sea de SQL Server.
Establecimiento de permisos de directorio
La cuenta con la que se ejecuta el servicio SQL Server en el distribuidor debe tener permisos de lectura y ejecución para el directorio (y todos los subdirectorios) donde está instalado el software de red de cliente de Oracle.
Probar la conectividad entre el distribuidor de SQL Server y el publicador de Oracle
Cerca del final del Asistente para configuración de Net puede haber una opción para probar la conexión al suscriptor de Oracle. Antes de probar la conexión, asegúrese de que la instancia de base de datos de Oracle esté en línea y de que se esté ejecutando el agente de escucha de Oracle. Si la prueba no se realiza correctamente, póngase en contacto con el DBA de Oracle responsable de la base de datos a la que intenta conectarse.
Después de realizar una conexión correcta al suscriptor de Oracle, intente iniciar sesión en la base de datos con la misma cuenta y contraseña que configuró para el Agente de distribución para la suscripción:
Haga clic en Inicio y luego en Ejecutar.
Escriba
cmdy haga clic en Aceptar.En el símbolo del sistema, escriba:
sqlplus <UserSchemaLogin>/<UserSchemaPassword>@<NetServiceName>Por ejemplo:
sqlplus replication/$tr0ngPasswerd@Oracle90ServerSi la configuración de red se realizó correctamente, el inicio de sesión se completará con éxito y verá un indicador
SQL.
Consideraciones para Oracle Home
Oracle admite la instalación simultánea de archivos binarios de aplicaciones, pero solo se puede utilizar un conjunto de archivos binarios por la replicación a la vez. Cada conjunto de archivos binarios está asociado a oracle Home; los archivos binarios están en el directorio %ORACLE_HOME%\bin. Debe asegurarse de que se usa el conjunto correcto de archivos binarios (específicamente la versión más reciente del software de red cliente) cuando la replicación realiza conexiones al suscriptor de Oracle.
Inicie sesión en el distribuidor con las cuentas usadas por el servicio SQL Server y el servicio Agente SQL Server y establezca las variables de entorno adecuadas. La variable %ORACLE_HOME% debe establecerse para hacer referencia al punto de instalación que especificó al instalar el software de red cliente. El %PATH% debe incluir el directorio %ORACLE_HOME% \bin como la primera entrada de Oracle que se encuentra. Para obtener información sobre cómo establecer variables de entorno, consulte la documentación de Windows.
Nota:
Si tiene más de un hogar de Oracle en el distribuidor de SQL Server, asegúrese de que el Agente de distribución usa el proveedor OLE DB de Oracle más reciente. En algunos casos, Oracle no actualiza el proveedor OLE DB de forma predeterminada al actualizar los componentes de cliente en el distribuidor de SQL Server. Desinstale el proveedor OLE DB anterior e instale el proveedor OLE DB más reciente. Para obtener más información sobre cómo instalar y desinstalar el proveedor, consulte la documentación de Oracle.
Consideraciones para suscriptores de Oracle
Además de las consideraciones que se tratan en el tema Suscriptores que no son de SQL Server, tenga en cuenta los siguientes problemas al replicar en suscriptores de Oracle:
Oracle trata las cadenas vacías y los valores NULL como NULL. Esto es importante si define una columna de SQL Server como NOT NULL y está replicando la columna en un suscriptor de Oracle. Para evitar errores al aplicar cambios al suscriptor de Oracle, debe realizar una de las acciones siguientes:
Asegúrese de que las cadenas vacías no se insertan en la tabla publicada como valores de columna.
Use el parámetro -SkipErrors para el Agente de distribución si es aceptable recibir una notificación de errores en el registro del historial del Agente de distribución y continuar con el procesamiento. Especifique el código de error de Oracle 1400 (-SkipErrors1400).
Modifique el script de creación de tabla generado, quite el atributo NOT NULL de cualquier columna de caracteres que pueda tener cadenas vacías asociadas y proporcione el script modificado como script de creación personalizado para el artículo mediante el @creation_script parámetro de sp_addarticle.
Los suscriptores de Oracle admiten una opción de esquema de 0x4071. Para obtener más información sobre las opciones de esquema, vea sp_addarticle (Transact-SQL).
Asignación de tipos de datos de SQL Server a Oracle
En la tabla siguiente se muestran las asignaciones de tipos de datos que se usan cuando los datos se replican en un suscriptor que ejecuta Oracle.
| Tipos de datos de SQL Server | Tipo de datos de Oracle |
|---|---|
bigint |
NÚMERO(19,0) |
binary(1-2000) |
RAW(1-2000) |
binary(2001-8000) |
BLOB |
bit |
NÚMERO(1) |
char(1-2000) |
CHAR(1-2000) |
char(2001-4000) |
VARCHAR2(2001-4000) |
char(4001-8000) |
CLOB |
date |
FECHA |
datetime |
FECHA |
datetime2(0-7) |
TIMESTAMP(7) para Oracle 9 y Oracle 10; VARCHAR(27) para Oracle 8 |
datetimeoffset(0-7) |
TIMESTAMP(7) WITH TIME ZONE utilizado para Oracle 9 y Oracle 10; VARCHAR(34) usado para Oracle 8 |
decimal(1-38, 0-38) |
NÚMERO(1-38, 0-38) |
float(53) |
FLOTAR |
float |
FLOTAR |
geography |
BLOB |
geometry |
BLOB |
hierarchyid |
BLOB |
image |
BLOB |
int |
NUMBER(10,0) |
money |
NÚMERO(19,4) |
nchar(1-1000) |
CHAR(1-1000) |
nchar(1001-4000) |
NCLOB |
ntext |
NCLOB |
numeric(1-38, 0-38) |
NÚMERO(1-38, 0-38) |
nvarchar(1-1000) |
VARCHAR2(1-2000) |
nvarchar(1001-4000) |
NCLOB |
nvarchar(max) |
NCLOB |
real |
REAL |
smalldatetime |
FECHA |
smallint |
NUMBER(5,0) |
smallmoney |
NUMERO(10,4) |
sql_variant |
No disponible |
sysname |
VARCHAR2(128) |
text |
CLOB |
time(0-7) |
VARCHAR(16) |
timestamp |
RAW(8) |
tinyint |
NUMBER(3,0) |
uniqueidentifier |
CHAR(38) |
varbinary(1-2000) |
RAW(1-2000) |
varbinary(2001-8000) |
BLOB |
varchar(1-4000) |
VARCHAR2(1-4000) |
varchar(4001-8000) |
CLOB |
varbinary(max) |
BLOB |
varchar(max) |
CLOB |
xml |
NCLOB |
Véase también
Suscriptores que no son de SQL Server
Suscribirse a publicaciones