Oracle linked server és az újabb OLEDB driver telepítése

Történt egy nap, hogy több telefont és emailt is kaptam Oracle és MSSQL hibrid megoldással kapcsolatban. Az egyik replikáció a másik egy sima linked server beállítás volt. Mindkét esetben az Oracle-el foglalkozó kolléga eléggé “érdekesen” állt a dologhoz sajnos, de megoldani egyik esetben sem tudták a problémát. Nem is csodálkozom ezen, hisz nekem is “csak” kb. 2-3 órámba került, amiben benne volt 2 virtuális gép telepítése is: 1 SQL Server 2008 R2 Standard 64 bites, Express 64 és 32 bites példányokkal, illetve egy Oracle 11g VM is Windows Server 2008 R2 Standard operációs rendszeren. Ez utóbbi nehezebb dió volt, hisz én nem ezzel foglalkozom nap mint nap, de a szegényes doksik ellenére azért megoldottam :-).

A probléma

A beépített MSDAORA OLEDB driver a numeric adattípusok esetén nem működik megfelelően, de azért lenne rá workaround (Google segít a megtalálásban :-) ) Az Oracle 11g-hez kiadott OraOLEDB.Oracle driver-re van szükség, amely már jobban kezeli a konverziókat is, illetve enged újabb verziókhoz való csatlakozást is.

Megoldás

Miután végigbírkoztam több verzióval is, az alábbi megoldás született: az Oracle client nem elég az OLEDB driver regisztrációhoz, szükség van az Oracle Data Access Components (ODAC) telepítésre is a szerveren. Ehhez arra is szükség van, hogy a Client build megegyezzen az ODAC build-del is, mert egyébként nem tölti be az SQL Server az oledb prvider listába. Én a 11.2.0.3.20 verzióval jártam sikerrel.

Mit kell telepítenem?

A különböző platformokhoz az alábbi letöltések kellenek:

A telepítés

A telepítés folymata rém egyszerű:

  • A letöltött ORA Client setup.exe elindítása után a InstantClient opciót kell választani, majd Next.

  • A következő oldalakon meg kell adni a telepítés helyét és egyéb paramétereket – én ezeket hagytam az alapból felajánlott értékeken, majd a telepítés végén zárjuk be a telepítőt.

  • A következő lépés az ODAC telepítése. Kitömörítés után a setup.exe segítségével indítsuk el.
  • A Welcome oldlaon az Installed Products gombra kattintva ellenőrizzük, hogy az ORA Client fent van e.

  • Ha nem jelenik meg az ORA Client, akkor az a verzió (32/64 bit) nincs telepítve, rossz ODAC-kal próbálkozunk. Ha rendben van, akkor a Close gomb megnyomása után az Next  gombtra kattintva válasszuk ki a telepíteni kívánt komponenst.
  • Válasszuk ki az Oracle Data Access Components for Oracle Client elemet, majd nyomjuk meg a Next gombot.

  • A további oldalakon hagytam az alapértelemezett beállításokat, majd az Available Product Components oldalon elég kiválasztanai az Oracle Provider for OLEDB 11.2.0.3.0 komponenst.

  • A telepítés végén zárjuk be a telepítőt.
  • Nyissunk egy SSMS-t, és ha jól dolgoztunk (illetve az Oracle fejlesztők is ;-) ), akkor az SSMS-ben az alábbi Provider-t fogjuk látni:

Konklúzió

A 32 bites SQL Server *csak* a 32 bites ORA Client és ODAC verziókkal működik együtt, a 64 bites pedig *csak*a 64 bites verziókkal. 64 bites operációs rendszer esetében is az SQL Server platformot (32/64 bit) kell figyelembe venni, hiszen a 32 bites SQL Server csak a 32 bites alkalmazásokat, driver-eket látja.

Remélem segít másoknak is a fenti leírás. Minden észrevételt/véleményt szívesen fogadok.

Comments (2) -

  • Kovács Zsolt

    11/10/2013 4:58:42 PM | Reply

    Azt már én is tapasztaltam, hogy a Microsoft-os Oracle driver használhatósága erősen korlátozott. Mindig az lett a dolog vége, hogy ODAC-ot kellett letölteni és telepíteni.
    Azóta ezzel kezdek, ha valahova valamilyen Oracle kapcsolat kell Smile

  • Janos

    11/11/2013 3:49:16 PM | Reply

    Zsolt, én eleve azt nem értem,hogy miért kell mindig hibrid rendszerekkel "bírkozni" és miért van az, hogy egy másik platformot képviselő kolléga szerint, csak az MS alkalmazásban van/lehet a "hiba" ;)

Add comment