Skip to main content

Linked server desde SQL Server 2012 a Oracle 11G

Primero se debe instalar cliente oracle (modo administrador) y configurar un registro en TNSNAMES (con NETCA) apuntando a la base de datos de destino. Puedes descargar el cliente desde acá.

Luego, en la base de datos primaria (SQL Server), se deben ejecutar los siguientes comandos en la base de datos master:

1.- AllowInProcess:
exec master.dbo.sp_MSset_oledb_prop 'ORAOLEDB.Oracle', N'AllowInProcess', 1
2.- DynamicParameters:
exec master.dbo.sp_MSset_oledb_prop 'ORAOLEDB.Oracle', N'DynamicParameters', 1
3.- Destiny:
exec sp_addlinkedserver N'DESTINO', 'Oracle', 'ORAOLEDB.Oracle', N'//<ip del servidor de destino>/<instancia>', N'FetchSize=2000', ''
4.- RPC out:
exec master.dbo.sp_serveroption @server=N'DESTINO', @optname=N'rpc out', @optvalue=N'true'
5.- Remote server:
exec sp_addlinkedsrvlogin @rmtsrvname='N'DESTINO', @useself=N'FALSE', @rmtuser=N'<usuario>', @rmtpassword='<contraseña>'
6.- Test:
exec ('select 1 a from dual') at DESTINO

Se debe tener en consideración que el cliente Oracle instalado debe ser de la misma arquitectura que el servidor (x86 o x64).
Los pasos del 1 al 5 pueden ser realizados desde la interfaz de Management Studio (Server Objects > Linked Servers), siempre y cuando sea configurado previamente el registro en TNSNAMES.
Paso 6 corresponde a prueba de conexión.

Comments

Popular posts from this blog

How to "safely" truncate history tables in Zabbix 6 before enabling timescale.

The script was tested against Zabbix 6.0 and 6.2. I'll add a proper introduction soon. If you don't fully understand every single line better don't run it in production. --RECREATING HISTORY TABLES WITH DATA. INSTEAD OF "WHERE FALSE" YOU CAN USE "WHERE CLOCK > X" IF YOU WANT TO PRESERVE SOME DATA ALTER TABLE history RENAME TO history_big; CREATE TABLE history as SELECT * FROM history_big where false; ALTER TABLE history_uint RENAME TO history_uint_big; CREATE TABLE history_uint as SELECT * FROM history_uint_big where false; ALTER TABLE history_str RENAME TO history_str_big; CREATE TABLE history_str as SELECT * FROM history_str_big where false; ALTER TABLE history_log RENAME TO history_log_big; CREATE TABLE history_log as SELECT * FROM history_log_big where false; ALTER TABLE history_text RENAME TO history_text_big; CREATE TABLE history_text as SELECT * FROM history_text_big where false; ALTER TABLE history_text RENAME TO history_text_big; CREATE TABLE...

Identificar paquetes DTS (DTS packages) en SQL Server 2000

DTS packages Al trabajar con SQL Server 2000 nos daremos cuenta de que gran parte de las herramientas contenidas en las versiones más nuevas, no existen o no se utilizan de la misma manera. Un claro ejemplo de esto, son los paquetes DTS. Un paquete DTS (Data Transformation Services) es el equivalente a lo que en la versión 2005 y superiores es Microsoft Integration Services, con la diferencia de que este último es mucho más robusto y nos entrega opciones avanzadas para ejecutar tareas de integración de datos desde o hacia otro motor de bases de datos.

Consulta de espacio ocupado de logs SQL SERVER

SQLPERF Pese a que en SQL SERVER disponemos de funciones simples que nos devuelven información relevante sobre el uso de la base de datos, muchas veces necesitamos especificar campos específicos sobre una funcion predeterminada. En el ejemplo siguiente, se muestra la consulta equivalente a realizar una de las DMF más usadas: DBCC sqlperf(logspace) La consulta anterior es exactamente igual a la siguiente: SELECT instance_name AS DatabaseName,        [Data File(s) Size (KB)],        [LOG File(s) Size (KB)],        [Log File(s) Used Size (KB)],        [Percent Log Used] FROM (    SELECT *    FROM sys.dm_os_performance_counters    WHERE counter_name IN    (        'Data File(s) Size (KB)',        'Log File(s) Size (KB)',        'Log File(s) Used Size (KB)',        'Per...