Documentos de Académico
Documentos de Profesional
Documentos de Cultura
cl/>
* <http://www.linkedin.com/in/felipedonosobastias>
* <http://facebook.com/Sr.Felipe.Donoso>
* <https://twitter.com/>
* <https://www.felipedonoso.cl/feeds/posts/default>
* <https://www.youtube.com/>
* Home <https://www.felipedonoso.cl/>
* Desarrollos propios <#>
o Java - Monitor maitenance plan
<http://www.felipedonoso.cl/p/mydevelopments.html>
o VBA - AWR Analyzer <https://www.felipedonoso.cl/p/awr-analyzer.html>
o VBA - SAR Analyzer <https://www.felipedonoso.cl/p/sar-anal.html>
o GitHub scripts <https://github.com/felipower/scripts_oracle>
* Documentacion y tips <#>
o Principales Eventos de espera
<https://www.felipedonoso.cl/p/principales-eventos-de-espera-de-base.html>
o Principales Hints de Optimizador
<https://www.felipedonoso.cl/p/principales-hints-de-base-de-datos.html>
* Links <#>
o Neuronet <http://www.neuronet.cl/>
o CLOUG <http://www.cloug.cl/>
o Craig Shallahamer <http://blog.orapub.com/>
o Jonathan Lewis <https://jonathanlewis.wordpress.com/>
o Christian Antognini <https://antognini.ch/blog>
o Tom Kyte <https://asktom.oracle.com/>
o Tim Hall <https://oracle-base.com/>
o Tanel Poder <http://blog.tanelpoder.com/>
* Virtual Machines(Labs)
<http://www.felipedonoso.cl/p/virtual-machines.html>
* About me <http://www.felipedonoso.cl/p/blog-page_1.html>
* Guitarra Clásica
<https://www.felipedonoso.cl/p/proyectos-musicales.html>
18 Feb 2015
// microsoft <https://www.felipedonoso.cl/search/label/microsoft>,
Oracle <https://www.felipedonoso.cl/search/label/Oracle>, Sql Server
<https://www.felipedonoso.cl/search/label/Sql%20Server> // 7
comments
<https://www.blogger.com/comment.g?
blogID=6195294447788566353&postID=3381045536250017487>
<https://www.blogger.com/post-edit.g?
blogID=6195294447788566353&postID=3381045536250017487&from=pencil>
Cómo configurar DBLink de Oracle Hacia SQLServer y evitar típicos errores tal como:
ORA-28545: error diagnosed by Net8 when connecting to an agent
Quizás a muchos les ha sucedido que les aparece el error ORA-28545: error
diagnosed by Net8 when connecting to an agent, cuando consultan una tabla desde
Oracle hacia un dblink en sqlserver, luego de haberlo configurado después de muchas
batallas.
Ese error se produce por tres cosas:
1.- Mal configuración del DNS u ODBC. Es decir se definió mal el nombre, servidor o
ip del servidor sql de destino.
2.- Se está ocupando un driver ODBC DNS de 32 Bits para conectarse desde un
servidor Oracle 64 bits hacia el dblink sqlserver. Lamentablemente no tengo el link
Oracle en este minuto en donde comentan que para conectarse desde un motor oracle
64 bits se necesitan los drivers ODBC para sqlserver de 64 Bits, yo en lo personal
he probado con uno de 32 Bits y me dio problemas.
3.- La configuración de los archivos init[ODBC_NAME].ora, tnsnames o listener.ora
tienen problemas de configuración
Para evitar tales problemas revisemos cómo se realiza correctamente la
configuración de un dblink desde oracle hacia sqlserver. En este ejemplo he
utilizado Oracle 11gR2 sobre windows 2008 R2 y como destino SQL Server 2012.
Como primer paso debemos configurar el ODBC hacia el ambiente sqlserver que
deseamos, no detallare esto pues muchos han realizado este paso y para no retrasar
más esto, les pongo el ejemplo del ODBC que he creado, le puse por nombre hsodbc,
el cual se conecta a una base de datos sqlserver en un servidor llamado TEST, la
base de datos sqlserver a la cual nos conectaremos lleva por nombre también hsodbc:
*
*
Esto es importante: este alias en la fotografía anterior llamado hsodbc debe ser
del tipo System DNS, no User DNS. Además es importante utilizar un driver ODBC
adecuado para los ambientes. Como me estoy conectando desde un ambiente Oracle de
64 bits hacia un ambiente sql también de 64 Bits deben instalar los drivers de 64
Bits del ODBC para sqlserver. Estos pueden ser descargados desde la siguiente
página:: https://www.microsoft.com/en-us/download/confirmation.aspx?id=36434
<https://www.microsoft.com/en-us/download/confirmation.aspx?id=36434>
(recordar solo bajar los de 64 Bits) luego de instalarlo podrán ver que aparecerá
un nuevo registro en la pestaña drivers. Al crear el alias deben usar este driver
instalado:
*
*
Bueno luego que ya han configurado el driver ODBC es necesario que ingresen a la
carpeta %ORACLE_HOME%\hs\admin (Oracle_home) en dicha carpeta deberian ver los
siguientes archivos:
De estos archivos copiaran el primero de ellos el archivo initdg4odbc.ora y le
pondrán por nombre: inithsodbc.ora. Este archivo con extensión *.ora es el archivo
de configuración para conectarse al ODBC creado anteriormente y debe llevar por
nombre init[NOMBRE_ODBC_CREADO].ora es decir inithsodbc.ora
Este archivo debería contener las siguientes líneas (puede contener muchas más pero
para este ejemplo sólo bastará lo siguiente):
HS_FDS_CONNECT_INFO = hsodbc
HS_FDS_TRACE_LEVEL = 0
*
*
El parámetro HS_FDS_CONNECT_INFO llevará como valor el ODBC creado anteriormente:
Ejemplo;
*
*
*
*
Como se podrán dar cuenta hasta aquí con esta configuración estaremos usando una
excelente tecnología de Oracle llamada Heterogeneous Agent el cual es parte del
software Oracle Database Gateway for ODBC (en realidad ese era el nombre que tenia
antes esta herramienta Heterogeneus Agent ahora llamada asi a secas Database
Gateway). De hecho si ejecutan el binario dg4odbc podrán ver la versión del gateway
instalada en vuestro servidor:
*
*
Bueno realizado esto sobre el archivo init nuestro, nos queda configurar el
listener.ora y tnsnames.ora. Para esto bueno nos vamos a la carpeta
ORACLE_HOME/network/admin y antes de editar esos archivos sugiero respaldarlos. Ojo
que dentro de la carpeta ORACLE_HOME\hs\admin existen ya unos archivos ejemplo para
tnsnames y listener que pueden utilizar. Eso se los doy como un tips.
*
*
Partamos por la configuración del listener.ora Para ese archivo debemos agregar las
siguientes líneas al registro SID_LIST_LISTENER nuestro configurado (si desean
incluso pueden generar un nuevo listener como ustedes deseen):
(SID_DESC=
(SID_NAME=hsodbc)
(ORACLE_HOME = D:\oracle\product\11.2.0\dbhome_1)
(PROGRAM=dg4odbc)
)
Es muy importante utilizar el PROGRAM=dg4odbc siempre debe estar con ese valor
independiente del nombre ODBC que ocupemos, si en este ejemplo usamos un valor tal
como: PROGRAM=hsodbc al momento de invocar el dblink desde el ambiente Oracle
aparecerá el error: ORA-28545: error diagnosed by Net8 when connecting to an agent.
Así que no olvidar aquello. Esto es porque en las versiones 10g o más antiguas se
ocupaba el hsodbc, pero para este caso que es un oracle 11g debemos usar dg4odbc.
Para que no queden dudas Heteregoneous Services es un producto que fue reemplazado
en 11g por Database Gateway, en este caso la versión de DG que estamos ocupando no
requiere pago de licencia adicional, ver la nota Oracle Support ID 232482.1 en
dónde explican y detallan esto.
Bueno aclarando lo anterior y siguiendo con nuestra configuración lo anterior es la
única configuración que he hecho pues ese nuevo nombre de servicio lo sacaré por el
mismo listener con el cual contaba anteriormente.
*
*
Ahora es necesario configurar el tnsnames.ora agregando un nuevo registro como el
siguiente:
hsodbc =
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1532))
(CONNECT_DATA=(SID=hsodbc))
(HS=OK)
)
*
*
En el PORT usamos bueno el puerto del listener actual. El SID debemos usar el
nombre del init creado o del ODBC creado en un comienzo. Lo que no debe olvidarse
es usar el (HS=OK) Si no esto no nos funcionará. De ahi el nombre de dicha keyword
HS -> Heterogeneous Services.
*
*
Bueno a continuación les dejo como ejemplo mis dos archivos listener.ora y
tnsnames.ora configurados:
# listener.ora Network Configuration File:
D:\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.
*
*
listener.ora
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = test1)
(ORACLE_HOME = D:\oracle\product\11.2.0\dbhome_1)
(SID_NAME = test1)
)
(SID_DESC =
(PROGRAM = extproc)
(SID_NAME = CLRExtProc)
(ORACLE_HOME = D:\oracle\product\11.2.0\dbhome_1)
)
(SID_DESC=
(SID_NAME=hsodbc)
(ORACLE_HOME = D:\oracle\product\11.2.0\dbhome_1)
(PROGRAM=dg4odbc)
)
)
*
*
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =localhost)(PORT = 1532))
)
*
*
ADR_BASE_LISTENER = D:\oracle
*
*
TNSNAMES.ORA
hsodbc =
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1532))
(CONNECT_DATA=(SID=hsodbc))
(HS=OK)
)
*
*
Luego de configurado estos dos archivos deben recargar la configuración del
listener con el comando lsnrctl reload y si gustan pueden hacer alguna prueba con
el comando tnsping hsodbc 3 el cual no debería darles problemas:
*
*
Y bueno ya hecho eso sólo nos queda configurar el dblink desde el ambiente
SQLSERVER:
*
*
SQL> create database link "TEST" connect to "USUARIO" identified by "PASSWORD"
using 'hsodbc';
*
*
Database link created.
*
*
De lo anterior TEST es el nombre del dblink, USUARIO y PASSWORD son los datos de
conexión hacia el ambiente sqlserver. No olividar que el usuario y password DEBEN
ir en comillas dobles sino tendrán el error ORA-28545. Por último dentro del
comando using debemos poner el nombre de nuestro ODBC configurado.
*
*
Luego de esto deberíamos estar en condiciones de probar nuestro dblink el cual no
debería dar problemas: En este ejemplo consultaré una tabla que tengo en mi
servidor sqlserver llamada tabla_test:
*
*
SQL> select * from tabla_test@TEST;
*
*
CAMPO_XXXX CAMPO_YYYY
---------- --------------------------------------------------
1111111111 Oracle
2222222222 SQL Server
*
*
SQL>
*
*
y sería absolutamente todo. Eso es todo lo que deben configurar nada más. Por lo
menos para lo básico. Espero que haya sido algo de utilidad este tutorial cualquier
consulta me la pueden enviar a felipe@felipedonoso.cl
<mailto:felipe@felipedonoso.cl> o dba@felipedonoso.cl <mailto:dba@felipedonoso.cl>
*
*
PD: Este tutorial nación de un problema que tuve al crear un dblink en un cliente.
A pesar que había configurado bastantes veces este dblink me estaba topando con un
problema que no podía resolver, obtenía el error: ORA-28545: error diagnosed by
Net8 when connecting to an agent y no podía arreglarlo. Finalmente la causa de todo
este problema radicaba en que en el registro del listener.ora estaba usando
(PROGRAM=hsodbc) en vez de usar el correcto (PROGRAM=dg4odbc). Recuerden que
estamos haciendo la prueba para un Oracle11g si fuese 10g o más antiguo se debe
ocupar (PROGRAM=hsodbc). Es lo que les comentaba anteriormente, por simples
detalles pueden perder bastante tiempo, cuando lo arreglé me sentí asi de glorioso
y victorioso:
*
*
<https://www.blogger.com/email-post.g?
blogID=6195294447788566353&postID=3381045536250017487>
Email This
<https://www.blogger.com/share-post.g?
blogID=6195294447788566353&postID=3381045536250017487&target=email>BlogThis!
<https://www.blogger.com/share-post.g?
blogID=6195294447788566353&postID=3381045536250017487&target=blog>Share
to Twitter
<https://www.blogger.com/share-post.g?
blogID=6195294447788566353&postID=3381045536250017487&target=twitter>Share
to Facebook
<https://www.blogger.com/share-post.g?
blogID=6195294447788566353&postID=3381045536250017487&target=facebook>
Related Posts:
* <https://www.felipedonoso.cl/2010/12/no-me-puedo-conectar-remotamente-sql.html>
¡No me puedo conectar remotamente a sql server 2008! ¿Qué sucede?
¿Tendrá algo que ver que he Instalado SQL SERVER con un nombre de
Instancia que yo he definido y nó el por defecto?
<https://www.felipedonoso.cl/2010/12/no-me-puedo-conectar-remotamente-sql.html>
* <https://www.felipedonoso.cl/2013/11/hello-friends-this-time-today-i-want-
to.html>
Block size issues causing performance or transactions to slow down
<https://www.felipedonoso.cl/2013/11/hello-friends-this-time-today-i-want-
to.html>
* <https://www.felipedonoso.cl/2013/12/no-lifts-cluster-service-data-base.html>
No lifts the Cluster service data base? Check if the SQL BROWSER is
up :-D
<https://www.felipedonoso.cl/2013/12/no-lifts-cluster-service-data-base.html>
* <https://www.felipedonoso.cl/2013/11/pal-best-tool-for-to-generate-
graphics.html>
PAL, The best tool for to generate graphics on performance monitor
files of windows.
<https://www.felipedonoso.cl/2013/11/pal-best-tool-for-to-generate-
graphics.html>
* <https://www.felipedonoso.cl/2015/02/como-demonios-puedo-migrar-un-
esquema.html>
¿Como demonios puedo migrar un esquema Oracle hacia un base de datos
SQL SERVER de manera rápida y fácil ?
<https://www.felipedonoso.cl/2015/02/como-demonios-puedo-migrar-un-
esquema.html>
Newer Post
<https://www.felipedonoso.cl/2015/06/problemas-con-el-workflow-notification.html>
Older Post
<https://www.felipedonoso.cl/2015/02/rac-rac-onenode-demo-overview_8.html>
Home <https://www.felipedonoso.cl/>
7 Comments:
<https://www.blogger.com/profile/03717508922919510868>
Unknown <https://www.blogger.com/profile/03717508922919510868> said...
<https://www.blogger.com/profile/01958655473781803535>
Felipe Rodrigo Donoso Bastias
<https://www.blogger.com/profile/01958655473781803535> said...
<https://www.blogger.com/profile/17121460162412148343>
xumeiqing <https://www.blogger.com/profile/17121460162412148343> said...
<https://www.blogger.com/profile/16292373778424936611>
Unknown <https://www.blogger.com/profile/16292373778424936611> said...
<https://www.blogger.com/profile/04969844246077682911>
caiyan <https://www.blogger.com/profile/04969844246077682911> said...
<https://www.blogger.com/profile/04608652971148348518>
ninest123 <https://www.blogger.com/profile/04608652971148348518> said...
<https://www.blogger.com/profile/07126467365618669731>
Unknown <https://www.blogger.com/profile/07126467365618669731> said...
www0816
*hugo boss sale* <http://www.hugobosssale.name/>
*salomon* <http://www.salomon-shoes.us.com/>
*canada goose outlet* <http://www.canadagoosesoutlet.name/>
*valentino shoes* <http://www.valentino-shoes.us.org/>
*ugg boots clearance* <http://www.uggoutletsonline.in.net/>
*basket nike* <http://www.basketnike.fr/>
*nike air max 90* <http://www.airmax90sale.us.com/>
*michael kors outlet* <http://www.michaelkorsoutletssale.us.com/>
*nike requin* <http://www.nikerequin.fr/>
*ray ban sunglasses* <http://www.raybansunglasseson.us.com/>
Links:
Site Statistics
Felipe Donoso
<https://cl.linkedin.com/in/felipedonosobastias?trk=profile-badge>
||
Felipe Donoso
Felipe Donoso
<https://cl.linkedin.com/in/felipedonosobastias?trk=profile-badge-name>
Principal Consultant at Oracle
* OracleOracle
<https://www.linkedin.com/company/oracle?trk=profile-badge-company>
* Universidad Técnica Federico Santa MaríaUniversidad Técnica Federico
Santa María
<https://www.linkedin.com/edu/universidad-t%C3%A9cnica-federico-santa-mar
%C3%ADa-11003?trk=profile-badge-school>
View profile
<https://cl.linkedin.com/in/felipedonosobastias?trk=profile-badge-cta>LinkedIn
<https://www.blogger.com/rearrange?
blogID=6195294447788566353&widgetType=HTML&widgetId=HTML3&action=editWidget§ion
Id=sidebarwidgetsarea>
History
<https://www.blogger.com/rearrange?
blogID=6195294447788566353&widgetType=BlogArchive&widgetId=BlogArchive1&action=edit
Widget§ionId=sidebarwidgetsarea>
Topics
<https://www.blogger.com/rearrange?
blogID=6195294447788566353&widgetType=Feed&widgetId=Feed6&action=editWidget§ion
Id=sidebarwidgetsarea>
<https://www.blogger.com/rearrange?
blogID=6195294447788566353&widgetType=Feed&widgetId=Feed7&action=editWidget§ion
Id=sidebarwidgetsarea>
<https://www.blogger.com/rearrange?
blogID=6195294447788566353&widgetType=Feed&widgetId=Feed8&action=editWidget§ion
Id=sidebarwidgetsarea>
Donaciones
<https://www.blogger.com/rearrange?
blogID=6195294447788566353&widgetType=BlogSearch&widgetId=BlogSearch1&action=editWi
dget§ionId=sidebarwidgetsarea>
<#containernbt>