

# Compatibilidad con servidores enlazados con Oracle OLEDB en Amazon RDS para SQL Server
<a name="Appendix.SQLServer.Options.LinkedServers_Oracle_OLEDB"></a>

Los servidores enlazados con Oracle Provider for OLEDB en RDS para SQL Server le permiten acceder a orígenes de datos externos en una base de datos de Oracle. Puede leer datos de orígenes de datos remotos de Oracle y ejecutar comandos en servidores de bases de datos de Oracle remotos fuera de su instancia de base de datos de RDS para SQL Server. Al usar servidores enlazados con Oracle OLEDB puede:
+ Acceder directamente a orígenes de datos distintas de SQL Server
+ Realizar consultas en diversos orígenes de datos de Oracle con la misma consulta sin mover los datos
+ Emitir consultas, actualizaciones, comandos y transacciones distribuidas en orígenes de datos en un ecosistema empresarial
+ Integrar las conexiones a una base de datos de Oracle desde la suite de Microsoft Business Intelligence (SSIS, SSRS, SSAS)
+ Migrar desde una base de datos de Oracle a RDS para SQL Server

Puede activar uno o más servidores enlazados para Oracle en una instancia de base de datos de RDS para SQL Server existente o nueva. A continuación, puede integrar orígenes de datos de Oracle externas con su instancia de base de datos.

**Contents**
+ [Versiones y regiones compatibles](#LinkedServers_Oracle_OLEDB.VersionRegionSupport)
+ [Limitaciones y recomendaciones](#LinkedServers_Oracle_OLEDB.Limitations)
+ [Activación de servidores enlazados con Oracle](#LinkedServers_Oracle_OLEDB.Enabling)
  + [Creación del grupo de opciones para OLEDB\$1ORACLE](#LinkedServers_Oracle_OLEDB.OptionGroup)
  + [Agregar la opción `OLEDB_ORACLE` al grupo de opciones](#LinkedServers_Oracle_OLEDB.Add)
  + [Modificación de la opción de la versión de `OLEDB_ORACLE` a otra versión](#LinkedServers_Oracle_OLEDB.Modify)
  + [Asociación del grupo de opciones a su instancia de base de datos](#LinkedServers_Oracle_OLEDB.Apply)
+ [Modificación de las propiedades del proveedor de OLEDB](#LinkedServers_Oracle_OLEDB.ModifyProviderProperties)
+ [Modificación de las propiedades del controlador OLEDB](#LinkedServers_Oracle_OLEDB.ModifyDriverProperties)
+ [Activación de servidores enlazados con Oracle](#LinkedServers_Oracle_OLEDB.Disable)

## Versiones y regiones compatibles
<a name="LinkedServers_Oracle_OLEDB.VersionRegionSupport"></a>

RDS para SQL Server admite servidores vinculados con Oracle OLEDB en todas las regiones para las ediciones Standard y Enterprise de SQL Server en las siguientes versiones:
+ SQL Server 2022, todas las versiones
+ SQL Server 2019, todas las versiones
+ SQL Server 2017, todas las versiones

Los servidores vinculados con Oracle OLEDB son compatibles con las siguientes versiones de Oracle Database:
+ Oracle Database 21c, todas las versiones
+ Oracle Database 19c, todas las versiones
+ Oracle Database 18c, todas las versiones

Los servidores vinculados con Oracle OLEDB son compatibles con las siguientes versiones de controlador de OLEDB Oracle:
+ 21.7
+ 21.16

## Limitaciones y recomendaciones
<a name="LinkedServers_Oracle_OLEDB.Limitations"></a>

Tenga en cuenta las siguientes limitaciones y recomendaciones que se aplican a los servidores enlazados con Oracle OLEDB:
+ Permita el tráfico de red añadiendo el puerto TCP correspondiente en el grupo de seguridad para cada instancia de base de datos de RDS para SQL Server. Por ejemplo, si está configurando un servidor vinculado entre una instancia de base de datos de Oracle de EC2 y una instancia de base de datos de RDS para SQL Server, debe permitir el tráfico desde la dirección IP de la instancia de base de datos de Oracle de EC2. También debe permitir el tráfico en el puerto que utiliza SQL Server para escuchar la comunicación de la base de datos. Para obtener más información acerca de los grupos de seguridad, consulte [Control de acceso con grupos de seguridad](Overview.RDSSecurityGroups.md).
+ Reinicie la instancia de base de datos de RDS para SQL Server después de activar, desactivar o modificar la opción `OLEDB_ORACLE` del grupo de opciones. El estado del grupo de opciones muestra `pending_reboot` para estos eventos y es obligatorio. Para las instancias Multi-AZ de RDS para SQL Server con las opciones AlwaysOn o Mirroring habilitadas, se espera una conmutación por error cuando la instancia se reinicie tras la creación o restauración de la instancia nueva.
+ Solo se admite la autenticación simple con un nombre de usuario y una contraseña para el origen de datos de Oracle.
+ No se admiten los controladores de Open Database Connectivity (ODBC). Solo se admiten las versiones de controladores OLEDB indicadas anteriormente.
+ Se admiten transacciones distribuidas (XA). Para activar las transacciones distribuidas, active la opción `MSDTC` del grupo de opciones de su instancia de base de datos y asegúrese de que las transacciones XA estén activadas. Para obtener más información, consulte [Compatibilidad con el Coordinador de transacciones distribuidas de Microsoft en RDS for SQL Server](Appendix.SQLServer.Options.MSDTC.md).
+ No se admite la creación de nombres de orígenes de datos (DSN, por sus siglas en inglés) para usarlos como atajos para una cadena de conexión.
+ No se admite el rastreo del controlador OLEDB. Puede utilizar eventos extendidos de SQL Server para rastrear eventos de OLEDB. Para obtener más información, consulte [Set up Extended Events in RDS for SQL Server](https://aws.amazon.com/blogs/database/set-up-extended-events-in-amazon-rds-for-sql-server/) (Configuración de eventos extendidos en RDS para SQL Server).
+ SQL Server Management Studio (SSMS) no admite el acceso a la carpeta de catálogos para un servidor vinculado a Oracle.

## Activación de servidores enlazados con Oracle
<a name="LinkedServers_Oracle_OLEDB.Enabling"></a>

Active los servidores enlazados con Oracle al agregar la opción `OLEDB_ORACLE` a la instancia de instancia de base de RDS para SQL Server. Utilice el siguiente proceso:

1. Cree un nuevo grupo de opciones o elija un grupo de opciones ya existente.

1. Añada la opción `OLEDB_ORACLE` al grupo de opciones.

1. Elija una versión del controlador OLEDB que desee utilizar.

1. Asocie el grupo de opciones a la instancia de base de datos.

1. Reinicie la instancia de base de datos.

### Creación del grupo de opciones para OLEDB\$1ORACLE
<a name="LinkedServers_Oracle_OLEDB.OptionGroup"></a>

Para trabajar con servidores enlazados con Oracle, cree un grupo de opciones o modifique un grupo de opciones que corresponda a la edición y versión de SQL Server de la instancia de base de datos que planea utilizar. Para completar este procedimiento, utilice la Consola de administración de AWS o la AWS CLI.

#### Consola
<a name="LinkedServers_Oracle_OLEDB.OptionGroup.Console"></a>

El siguiente procedimiento crea un grupo de opciones para SQL Server Standard Edition 2019.

**Para crear el grupo de opciones**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En el panel de navegación, elija **Option groups** (Grupos de opciones).

1. Elija **Create group**.

1. En la ventana **Create option group** (Crear grupo de opciones), haga lo siguiente:

   1. En **Nombre**, escriba un nombre para el grupo de opciones que sea exclusivo dentro de su cuenta de AWS, como **oracle-oledb-se-2019**. El nombre solo puede contener letras, dígitos y guiones.

   1. En **Descripción**, escriba una breve descripción del grupo de opciones, como **OLEDB\$1ORACLE option group for SQL Server SE 2019**. La descripción se utiliza para fines de visualización.

   1. Para **Engine (Motor)**, elija **sqlserver-se**.

   1. En **Major engine version** (Versión principal del motor), elija **15.00**.

1. Seleccione **Crear**.

#### CLI
<a name="LinkedServers_Oracle_OLEDB.OptionGroup.CLI"></a>

El siguiente procedimiento crea un grupo de opciones para SQL Server Standard Edition 2019.

**Para crear el grupo de opciones**
+ Ejecute uno de los siguientes comandos.  
**Example**  

  Para Linux, macOS o Unix:

  ```
  aws rds create-option-group \
      --option-group-name oracle-oledb-se-2019 \
      --engine-name sqlserver-se \
      --major-engine-version 15.00 \
      --option-group-description "OLEDB_ORACLE option group for SQL Server SE 2019"
  ```

  Para Windows:

  ```
  aws rds create-option-group ^
      --option-group-name oracle-oledb-se-2019 ^
      --engine-name sqlserver-se ^
      --major-engine-version 15.00 ^
      --option-group-description "OLEDB_ORACLE option group for SQL Server SE 2019"
  ```

### Agregar la opción `OLEDB_ORACLE` al grupo de opciones
<a name="LinkedServers_Oracle_OLEDB.Add"></a>

A continuación, utilice la Consola de administración de AWS o la AWS CLI para agregar la opción `OLEDB_ORACLE` al grupo de opciones.

#### Consola
<a name="LinkedServers_Oracle_OLEDB.Add.Console"></a>

**Para añadir la opción OLEDB\$1ORACLE**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En el panel de navegación, elija **Option groups** (Grupos de opciones).

1. Elija el grupo de opciones que acaba de crear, **oracle-oledb-se-2019** en este ejemplo.

1. Elija **Agregar opción**.

1. En **Option details** (Detalles de la opción), elija **OLEDB\$1ORACLE** para **Option name** (Nombre de la opción).

1. En **Versión**, elija la versión del controlador OLEDB Oracle que desee instalar.

1. En **Scheduling** (Programación), elija si desea agregar la opción inmediatamente o en el siguiente período de mantenimiento.

1. Elija **Add option** (Agregar opción).

#### CLI
<a name="LinkedServers_Oracle_OLEDB.Add.CLI"></a>

**Para añadir la opción OLEDB\$1ORACLE**
+ Agregue la opción `OLEDB_ORACLE` al grupo de opciones.  
**Example**  

  Para Linux, macOS o Unix:

  ```
  aws rds add-option-to-option-group \
      --option-group-name oracle-oledb-se-2019 \
      --options OptionName=OLEDB_ORACLE, OptionVersion=21.16 \
      --apply-immediately
  ```

  Para Windows:

  ```
  aws rds add-option-to-option-group ^
      --option-group-name oracle-oledb-se-2019 ^
      --options OptionName=OLEDB_ORACLE, OptionVersion=21.16 ^
      --apply-immediately
  ```

### Modificación de la opción de la versión de `OLEDB_ORACLE` a otra versión
<a name="LinkedServers_Oracle_OLEDB.Modify"></a>

Para modificar la versión de la opción `OLEDB_ORACLE` a otra versión, utilice la Consola de administración de AWS o la AWS CLI.

#### Consola
<a name="LinkedServers_Oracle_OLEDB.Modify.Console"></a>

**Modificación de la opción OLEDB\$1ORACLE**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En el panel de navegación, elija **Option groups** (Grupos de opciones).

1. Elija el grupo de opciones con la opción `OLEDB_ORACLE` (**oracle-oledb-se-2019** en los ejemplos anteriores).

1. Elija **Modify option** (Modificar opción).

1. En **Option details** (Detalles de la opción), elija **OLEDB\$1ORACLE** para **Option name** (Nombre de la opción).

1. En **Versión**, elija la versión del controlador OLEDB Oracle que desee utilizar.

1. En **Programación**, elija si desea modificar la opción inmediatamente o en el siguiente periodo de mantenimiento.

1. Elija **Modify option** (Modificar opción).

#### CLI
<a name="LinkedServers_Oracle_OLEDB.Add.CLI"></a>

Para modificar la versión de la opción `OLEDB_ORACLE`, use el comando [https://docs.aws.amazon.com/cli/latest/reference/rds/add-option-to-option-group.html](https://docs.aws.amazon.com/cli/latest/reference/rds/add-option-to-option-group.html)AWS CLI con el grupo de opciones y la versión de la opción que desea usar.

**Modificación de la opción OLEDB\$1ORACLE**
+   
**Example**  

  Para Linux, macOS o Unix:

  ```
  aws rds add-option-to-option-group \
      --option-group-name oracle-oledb-se-2019 \
      --options OptionName=OLEDB_ORACLE, OptionVersion=21.7 \
      --apply-immediately
  ```

  Para Windows:

  ```
  aws rds add-option-to-option-group ^
      --option-group-name oracle-oledb-se-2019 ^
      --options OptionName=OLEDB_ORACLE, OptionVersion=21.7 ^
      --apply-immediately
  ```

### Asociación del grupo de opciones a su instancia de base de datos
<a name="LinkedServers_Oracle_OLEDB.Apply"></a>

Para asociar el grupo de opciones `OLEDB_ORACLE` y el grupo de parámetros con su instancia de base de datos, utilice la Consola de administración de AWS o la AWS CLI 

#### Consola
<a name="LinkedServers_Oracle_OLEDB.Apply.Console"></a>

Para terminar de activar los servidores enlazados para Oracle, asocie su grupo de opciones `OLEDB_ORACLE` a una instancia de base de datos nueva o existente:
+ Para una nueva instancia de base de datos, asóciela cuando inicie la instancia. Para obtener más información, consulte [Creación de una instancia de base de datos de Amazon RDS](USER_CreateDBInstance.md).
+ Para una instancia de base de datos existente, asóciela modificando la instancia. Para obtener más información, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md).

#### CLI
<a name="LinkedServers_Oracle_OLEDB.Apply.CLI"></a>

Puede asociar el grupo de opciones `OLEDB_ORACLE` y el grupo de parámetros con una instancia de base de datos nueva o existente.

**Para crear una instancia con el grupo de opciones `OLEDB_ORACLE` y el grupo de parámetros**
+ Especifique el mismo tipo de motor de base de datos y la misma versión principal que ha utilizado al crear el grupo de opciones.  
**Example**  

  Para Linux, macOS o Unix:

  ```
  aws rds create-db-instance \
      --db-instance-identifier mytestsqlserveroracleoledbinstance \
      --db-instance-class db.m5.2xlarge \
      --engine sqlserver-se \
      --engine-version 15.0.4236.7.v1 \
      --allocated-storage 100 \
      --manage-master-user-password \
      --master-username admin \
      --storage-type gp2 \
      --license-model li \
      --domain-iam-role-name my-directory-iam-role \
      --domain my-domain-id \
      --option-group-name oracle-oledb-se-2019 \
      --db-parameter-group-name my-parameter-group-name
  ```

  Para Windows:

  ```
  aws rds create-db-instance ^
      --db-instance-identifier mytestsqlserveroracleoledbinstance ^
      --db-instance-class db.m5.2xlarge ^
      --engine sqlserver-se ^
      --engine-version 15.0.4236.7.v1 ^
      --allocated-storage 100 ^
      --manage-master-user-password ^
      --master-username admin ^
      --storage-type gp2 ^
      --license-model li ^
      --domain-iam-role-name my-directory-iam-role ^
      --domain my-domain-id ^
      --option-group-name oracle-oledb-se-2019 ^
      --db-parameter-group-name my-parameter-group-name
  ```

**Para modificar una instancia y asociar el grupo de opciones `OLEDB_ORACLE`**
+ Ejecute uno de los siguientes comandos.  
**Example**  

  Para Linux, macOS o Unix:

  ```
  aws rds modify-db-instance \
      --db-instance-identifier mytestsqlserveroracleoledbinstance \
      --option-group-name oracle-oledb-se-2019 \
      --db-parameter-group-name my-parameter-group-name \
      --apply-immediately
  ```

  Para Windows:

  ```
  aws rds modify-db-instance ^
      --db-instance-identifier mytestsqlserveroracleoledbinstance ^
      --option-group-name oracle-oledb-se-2019 ^
      --db-parameter-group-name my-parameter-group-name ^
      --apply-immediately
  ```

## Modificación de las propiedades del proveedor de OLEDB
<a name="LinkedServers_Oracle_OLEDB.ModifyProviderProperties"></a>

Puede ver y cambiar las propiedades del proveedor de OLEDB. Solo el usuario `master` puede realizar esta tarea. Todos los servidores enlazados de Oracle que se crean en la instancia de base de datos utilizan las mismas propiedades de ese proveedor de OLEDB. Ejecute el procedimiento almacenado `sp_MSset_oledb_prop` para cambiar las propiedades del proveedor de OLEDB.

Para cambiar las propiedades del proveedor de OLEDB

```
				
USE [master]
GO
EXEC sp_MSset_oledb_prop N'OraOLEDB.Oracle', N'AllowInProcess', 1 
EXEC sp_MSset_oledb_prop N'OraOLEDB.Oracle', N'DynamicParameters', 0
GO
```

Se pueden modificar las siguientes propiedades:


****  

| Nombre de la propiedad | Valor recomendado (1 = activado, 0 = desactivado) | Descripción | 
| --- | --- | --- | 
| `Dynamic parameter` | 1 | Permite los marcadores de posición de SQL (representados por “?”) en consultas parametrizadas. | 
| `Nested queries` | 1 | Permite sentencias `SELECT` anidadas en la cláusula `FROM`, como las subconsultas. | 
| `Level zero only` | 0 | Solo las interfaces OLEDB de nivel base se invocan contra el proveedor. | 
| `Allow inprocess` | 1 | Si está activado, Microsoft SQL Server permite crear instancias del proveedor como un servidor en proceso. Defina esta propiedad en 1 para usar servidores enlazados de Oracle. | 
| `Non transacted updates` | 0 | Si no es cero, SQL Server permite las actualizaciones. | 
| `Index as access path` | False | Si no es cero, SQL Server intenta usar los índices del proveedor para obtener datos. | 
| `Disallow adhoc access` | False | Si está configurado, SQL Server no permite ejecutar consultas de transferencia con el proveedor de OLEDB. Si bien se puede marcar esta opción, a veces es adecuado ejecutar consultas de transferencia. | 
| `Supports LIKE operator` | 1 | Indica que el proveedor admite consultas con la palabra clave LIKE. | 

## Modificación de las propiedades del controlador OLEDB
<a name="LinkedServers_Oracle_OLEDB.ModifyDriverProperties"></a>

Puede ver y cambiar las propiedades del controlador OLEDB al crear un servidor vinculado para Oracle. Solo el usuario `master` puede realizar esta tarea. Las propiedades del controlador definen la forma en que el controlador OLEDB gestiona los datos cuando trabaja con un origen de datos remoto de Oracle. Las propiedades del controlador son específicas de cada servidor vinculado de Oracle creado en la instancia de base de datos. Ejecute el procedimiento almacenado `master.dbo.sp_addlinkedserver` para cambiar las propiedades del controlador OLEDB.

Ejemplo: Para crear un servidor vinculado y cambiar la propiedad `FetchSize` del controlador OLEDB

```
	
EXEC master.dbo.sp_addlinkedserver
@server = N'Oracle_link2',
@srvproduct=N'Oracle',
@provider=N'OraOLEDB.Oracle',
@datasrc=N'my-oracle-test.cnetsipka.us-west-2.rds.amazonaws.com:1521/ORCL',
@provstr='FetchSize=200'
GO
```

```
	
EXEC master.dbo.sp_addlinkedsrvlogin
@rmtsrvname=N'Oracle_link2',
@useself=N'False',
@locallogin=NULL,
@rmtuser=N'master',
@rmtpassword='Test#1234'
GO
```

**nota**  
Especifique una contraseña distinta de la que se muestra aquí como práctica recomendada de seguridad.

## Activación de servidores enlazados con Oracle
<a name="LinkedServers_Oracle_OLEDB.Disable"></a>

Para desactivar los servidores enlazados con Oracle, quite la opción `OLEDB_ORACLE` de su grupo de opciones.

**importante**  
La eliminación de la opción no elimina las configuraciones de servidor enlazado a la instancia de la base de datos. Debe eliminarlos manualmente para eliminarlos de la instancia de base de datos.  
Puede volver a activar la opción `OLEDB_ORACLE` después de eliminarla para volver a utilizar las configuraciones del servidor enlazado que se configuraron previamente en la instancia de base de datos.

### Consola
<a name="LinkedServers_Oracle_OLEDB.Disable.Console"></a>

El procedimiento siguiente quita la opción `OLEDB_ORACLE`.

**Para quitar la opción OLEDB\$1ORACLE de su grupo de opciones**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En el panel de navegación, elija **Option groups** (Grupos de opciones).

1. Elija el grupo de opciones con la opción `OLEDB_ORACLE` (`oracle-oledb-se-2019` en los ejemplos anteriores).

1. Elija **Delete option (Eliminar opción)**.

1. En **Deletion options** (Eliminar opciones), elija **OLEDB\$1ORACLE** para **Options to delete** (Opciones para eliminar).

1. En **Apply immediately** (Aplicar inmediatamente), seleccione **Yes** (Sí) para eliminar la opción inmediatamente o **No** para eliminarla en el siguiente período de mantenimiento.

1. Elija **Delete** (Eliminar).

### CLI
<a name="LinkedServers_Oracle_OLEDB.Disable.CLI"></a>

El procedimiento siguiente quita la opción `OLEDB_ORACLE`.

**Para quitar la opción OLEDB\$1ORACLE de su grupo de opciones**
+ Ejecute uno de los siguientes comandos.  
**Example**  

  Para Linux, macOS o Unix:

  ```
  aws rds remove-option-from-option-group \
      --option-group-name oracle-oledb-se-2019 \
      --options OLEDB_ORACLE \
      --apply-immediately
  ```

  Para Windows:

  ```
  aws rds remove-option-from-option-group ^
      --option-group-name oracle-oledb-se-2019 ^
      --options OLEDB_ORACLE ^
      --apply-immediately
  ```