sql >> Base de Datos >  >> RDS >> Oracle

¿Cómo se configura un servidor vinculado a una base de datos Oracle en SQL 2000/2005?

Pude configurar un servidor vinculado a una base de datos remota de Oracle, que terminó siendo un proceso de varios pasos:

  1. Instale los controladores ODBC de Oracle en SQL Server.
  2. Cree el DSN del sistema para la base de datos de Oracle en SQL Server.
  3. Cree un servidor vinculado en el servidor SQL utilizando System DSN.

Paso 1:Instale los controladores ODBC de Oracle en el servidor

una. Descargue los paquetes necesarios de Oracle Instant Client:Basic, ODBC y SQL*Plus (opcional)

b. Descomprima los paquetes en un directorio local en el servidor SQL, normalmente C:\Oracle . Esto debería resultar en un [directorio] como C:\Oracle\instantclient_10_2 , que será el valor de [directorio] al que se hace referencia en el resto de esta respuesta.

C. Cree un archivo de texto llamado tnsnames.ora dentro del cliente instantáneo [directorio] que contiene lo siguiente:

OracleTnsName = 
(
  DESCRIPTION=
  (
    ADDRESS = (PROTOCOL=TCP)(HOST=10.1.3.42)(PORT=1521)
  )
  (
    CONNECT_DATA = (SERVICE_NAME=acc)
  )
)

Nota:HOST real , PORT y SERVICE_NAME variará según el servidor de Oracle al que esté estableciendo una conexión. Esta información a menudo se puede encontrar utilizando las herramientas de cliente de red de Oracle en oyentes .

El OracleTnsName puede ser cualquier nombre que desee asignar a la fuente de datos de Oracle y se utilizará al configurar el DSN del sistema. También puede usar la sintaxis anterior para definir múltiples nombres TNS en el mismo archivo tnsnames.ora si lo desea.

d. Agregue el [directorio] al sistema PATH variable de entorno.

mi. Cree una nueva variable de entorno del sistema llamada TNS_Admin que tiene un valor de [directorio]

F. Ejecute el [directory]\odbc_install.exe utilidad para instalar los controladores ODBC de Oracle.

gramo. Se recomienda que reinicie el servidor SQL, pero puede que no sea necesario. Además, es posible que desee otorgar permisos de seguridad a este directorio para las identidades de usuario del servidor SQL y del agente SQL.

Paso 2:Cree un sistema DNS que utilice el controlador ODBC de Oracle

una. Abra el Administrador de fuente de datos ODBC herramienta. [ Herramientas administrativas --> Orígenes de datos (ODBC) ]

b. Seleccione la pestaña DSN del sistema y luego seleccione el botón Agregar.

C. En la lista de controladores, seleccione Oracle en instantclient {version} . (por ejemplo, 'Oracle en instantclient 10_2') y luego seleccione el botón Finalizar.

d. Especifique lo siguiente:

  • Data Source Name :{Nombre DSN del sistema}
  • Description :{dejar en blanco/vacío}
  • TNS Service Name :debe tener el OracleTnsName definió en tnsnames.ora archivo de la lista, selecciónelo como el valor.
  • ID de usuario :{nombre de usuario de Oracle}

mi. Seleccione el botón Probar conexión. Se le pedirá que proporcione la {contraseña de usuario de Oracle}. Si todo va bien, la prueba tendrá éxito.

Paso 3:Crear un servidor vinculado en SQL a la base de datos de Oracle

Abra una ventana de consulta en el servidor SQL y ejecute lo siguiente:

EXEC sp_addlinkedserver 
     @server        = '{Linked Server Name}'
    ,@srvproduct    = '{System DSN Name}'
    ,@provider      = 'MSDASQL'
    ,@datasrc       = '{System DSN Name}'

EXEC sp_addlinkedsrvlogin 
     @rmtsrvname    = '{Linked Server Name}'
    ,@useself       = 'False'
    ,@locallogin    = NULL
    ,@rmtuser       = '{Oracle User Name}'
    ,@rmtpassword   = '{Oracle User Password}'

Nota:El {Linked Server Name} puede ser cualquier cosa que desee usar al hacer referencia al servidor de Oracle, pero el {System DNS Name} debe coincida con el nombre del DSN del sistema que creó anteriormente.

El {Oracle User Name} debe ser el mismo que el ID de usuario utilizado por el DSN del sistema y el {Oracle User Password} debe ser el mismo que usó para probar con éxito la conexión ODBC. Consulte KB 280106 para obtener información sobre la solución de problemas del servidor vinculado de Oracle.

Consultar el servidor vinculado de Oracle

Puede usar OPENQUERY para ejecutar consultas de transferencia en el servidor vinculado de Oracle, pero tenga en cuenta que para conjuntos de registros muy grandes puede recibir un ORA-01652 mensaje de error si especifica un ORDER BY cláusula en la consulta de paso a través. Moviendo el ORDER BY La cláusula de la consulta de transferencia a la declaración de selección externa resolvió este problema para mí.