11 Mart 2012 Pazar

[TR] Database Gateway for Microsoft SQL (DG4MSQL) kurulum operasyonu

OPERASYON: alfadb1 (10.1.3.143) üzerine DG4MSQL kurulumu. (Linux)


Kurulum
-------


DG4MSQL software mevcut ORACLE_HOME'dan farklı bir dizine kuruldu (/oradata/DG4MSQL).

Mevcut ORACLE_HOME'a kurulsaydı bazı dosyaları ezme riski vardı. Bu durum Metalinkte de belirtiliyor.

Kurulumdan önce "Oracle® Database Gateway Installation and Configuration Guide 11g Release 2 (11.2) for AIX 5L Based Systems (64-Bit), HP-UX Itanium, Solaris Operating System (SPARC 64-Bit), Linux x86, and Linux x86-64 E12013-02" dökümanından öngereksinimler kontrol edildi. Herhangi bir eksiklik yoktu.

Kurulum sırasında aşağıdaki bilgilerin girilmesi gerekiyor.



SQL Server Database Server Host Name : SOP-ARC-DB
SQL Server Database Server Port number : 1433
SQL Server Database Name : ARC153SGHT
SQL Server Instance Name : ARC153SGHT

Bu bilgilerle kurulum başarıyla tamamlandı.



AYARLAMALAR
-----------


1. Gateway'in initdg4msql.ora dosyası düzenlendi.

Varsayılanda şu dizinde bulunuyor: $ORACLE_HOME/dg4msql/admin ($ORACLE_HOME, gateway'in ORACLE_HOME'udur. Database ORACLE_HOME'u ile karıştırılmamalı.)

İçerisinde yalnızca "HS_FDS_CONNECT_INFO" parametresi düzenlenir. Aşağıdaki şekilde olmalı;

HS_FDS_CONNECT_INFO=sql_server_ip_adresi:portu//sql_server_db_adi



Operasyon sırasında bu parametrenin aşağıdaki gibi olduğu görüldü.

HS_FDS_CONNECT_INFO=[SOP-ARC-DB]:1433//ARC153SGHT

Yani kurulumda verdiğimiz bilgiler otomatik gelmişti. /etc/host dosyasını düzenlemekle uğraşmamak için host_name, ip ile değiştirildi. Son durum aşağıdaki gibi oldu;


HS_FDS_CONNECT_INFO=[10.12.18.110]:1433//MatrixAtmSolution



2. Database ORACLE_HOME'undaki listener.ora yedeklendikten sonra içerisindeki SID_LIST_LISTENER kaydına aşağıdaki tanım eklendi ve ardından listener restart edildi.


(SID_DESC =
(SID_NAME=dg4msql)
(ORACLE_HOME= /oradata/DG4MSQL)
(ENV="LD_LIBRARY_PATH=/oradata/DG4MSQL/dg4msql/driver/lib:/oradata/DG4MSQL/lib")
(PROGRAM=dg4msql)
)

-- /oradata/DG4MSQL, DG4MSQL_HOME'dur.

Sonuç olarak listener.ora içeriği aşağıdaki gibiydi.

# listener.ora Network Configuration File: /oradata/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
# Generated by Oracle configuration tools.


LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = alfadb1)(PORT = 1521))
)
)


SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = ALFADB)
(ORACLE_HOME = /oradata/oracle/product/11.2.0/dbhome_1)
(SID_NAME = ALFADB)
)
(SID_DESC =
(SID_NAME=dg4msql)
(ORACLE_HOME= /oradata/DG4MSQL)
(ENV="LD_LIBRARY_PATH=/oradata/DG4MSQL/dg4msql/driver/lib:/oradata/DG4MSQL/lib")
(PROGRAM=dg4msql)
)
)

ADR_BASE_LISTENER = /oradata/oracle



3. Database ORACLE_HOME'undaki tnsnames.ora dosyasına aşağıdaki kayıt eklendi ve ardından "tnsping DG4MSQL" ile test edildi.
Testin başarılı olduğu görüldü.


-- 10.1.3.143 Oracle db'nin kurulu olduğu sunucunun ip'sidir.
-- 1521, Oracle db listener'ın dinlediği porttur.


DG4MSQL =
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=10.1.3.143)(PORT=1521))
(CONNECT_DATA=(SID=dg4msql))
(HS=OK)
)


4. Db link yaratıldı.


CREATE DATABASE LINK DENEME_LINK
CONNECT TO "oradba"
IDENTIFIED BY "Deneme123"
USING 'DG4MSQL';


5. Db link test edildi ancak başarılı olmadı.

telnet 10.12.18.110 1433

Komutu ile bağlantı test edildi. Başarısız oldu.

Network ekibinden 10.1.3.143 ip'li sunucu için, 10.12.18.110 ip'li sunucunun 1433 nolu portuna yetki vermeleri istendi.

Yetki verildikten sonra "telnet 10.12.18.110 1433" komutu başarılı oldu.




6. Kontrol

SELECT * FROM DUAL@DENEME_LINK;

===> SELECT * FROM DUAL@DENEME_LINK

DUMMY
-----
X
1 row selected.

1 yorum:

  1. Merhaba,
    Öncelikle paylaşımınız için teşekkürler, bende bir iş için varolan oracle 10g üzerinden sql server'a bağlantı yapmak için ayrı bir home'a DG4MSQL'i kurdum, fakat aynı işlemleri yaptığımda aşağıdaki hatayı alıyorum:

    ORA-28545: error diagnosed by Net8 when connecting to an agent
    Unable to retrieve text of NETWORK/NCR message 65535
    ORA-02063: preceding 2 lines from HALO

    Bu hatayla ilgili bir öneriniz var mıdır ?

    Halil

    YanıtlaSil