프로그래밍/DB

[DB] MSSQL DBLink(디비링크) 방법

ss-pro 2020. 9. 3. 23:23
반응형

이번시간에는 디비링크에 대해 알아보겠습니다.
디비링크란 네트워크상에 다른데이터베이스와의 연결을 통하여 마치 로컬데이스베이스형태로 사용할수 있습니다. 
그럼 디비링크는 언제 사용할까요?  물론 여러용도가 있겠지만 스케쥴러를 통하여 원격지에 있는 데이터를 로컬쪽에 수집한다거나 로컬자료를 원격지에 전송할때 아주 편리하게 작업할수 있습니다. 
디비링크는 이기종간에도 지원하니 관련부분을 알아보도록 하겠습니다.

1. MSSQL to MSSQL 디비링크방법
먼저 연결서버를 생성해보겠습니다. 연결서버 명칭을 MSSQL_DBLINK로 하여 연결해보겠습니다. 

MSSQL_DBLINK라는 연결서버명칭으로 생성해보겠습니다. 

1
2
3
4
5
6
 EXEC sp_addlinkedserver
       @server = 'MSSQL_DBLINK',    --연결서버명칭
       @srvproduct = '',
       @provider = 'SQLOLEDB',
       @datasrc = '192.168.0.7',    --연결서버IP
       @catalog = 'TEST'            --DB명 EXEC sp_addlinkedserver
cs

원격지서버의 계정생성 하는방법입니다.

1
2
3
4
5
   EXEC sp_addlinkedsrvlogin
      @rmtsrvname= 'MSSQL_DBLINK',        --연결서버명칭
      @useself= 'false',
      @rmtuser = 'sa',                    --계정명
      @rmtpassword = ''​                    --패스워
cs

계정이 생성이완료되면 아래와 같이 연결된서버에 MSSQL_DBLINK가 추가된것을 확인할수 있습니다. 

디비링크 후 테이블을 조회하면 아래와 같이 연결된서버에서 데이터가 조회되는것을 확인할수 있습니다. 
쿼리문시 SELECT * FROM 연결서버명.DB명.소유자명.테이블명 이런식으로 Full로 조회해야 원하는 결과를 얻을수 있습니다. 

 

2.MSSQL to ORACLE 디비링크방법
이번에는 MSSQL에서 오라클디비와 연결하는 방법을 알려드리겠습니다. 오라클과 연결하기 위해서는 먼저 오라클 클라이언트를 설치해야합니다. 오라클 클라이언트 설치시 꼭 32비트,64비트인지 맞쳐서 설치하여셔 합니다.  근래에는 대부분 64비트로 설치하기때문에 64비트기준으로 설명드리겠습니다. 

1) 오라클 클라이언트 설치 
아래사이트에서 오라클 클라이언트 11g를 다운받아 설치하겠습니다. 
www.oracle.com/downloads

압축해제후 setup.exe를 클릭합니다. 설치유형을 관리자로 해서 설치하도록 하겠습니다.

 

2) trnsname.ora 파일을 설정합니다. 
서비스이름을 TESTDB로 하여 설정해보도록 하겠습니다.
Net Manager를 통해서 하면 손쉽게 trnsname.ora정보를 설정할수 있습니다. 

Net Manager를 통하여 설정하면 trsnames.ora파일이 아래와 같이 저장되며 이제 오라클서버와 연결이 가능하게 되었습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# tnsnames.ora Network Configuration File: C:\app\yoon\product\11.2.0\client_1\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.
 
TESTDB =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.7)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = TESTDB)
    )
  )
 
 
cs

 3)  마짐막으로 SQL Management Tool을 이용하여 연결서버를 설정합니다. 
이때 공급자 옵션에 Inprocess허용을 필히 체크해야합니다. 

 

 

이제 연결된 서버에서 마우스 오른쪽 버튼을 클릭하여 새 연결된서버를 선택합니다. 

 

 

새연결된서버에 공급자를 Oracle Provider for OLE DB로 선택합니다. 
이때 해당공급자를 선택하면 동작하지않고 시스템이 멈춘것 같이 행이 걸리는경우가 있습니다. 
이럴경우에는 서버를 재부팅 설정하시기 바랍니다. 
서버를 재부팅하지 않고 할경우에는 안되는경우가 있으니 오라클 클라이언트 설치후 재부팅후 진행바랍니다. 
제품이름,데이터원본에 서비스명을 입력
보안페이지에 로그인정보를 입력합니다. 

 

 

이제 위작업을 완료하면 오라클 DB와 연결되는것을 확인할수 있습니다.  
QPENQUERY를 사용해서 하거나,  MSSQL과 다르게 점이 두개가 찍히는부분이 있으니 주의하시기 바랍니다. 
SELECT * FROM TESTDB..TEST.MYUSERS
SELECT * FROM OPENQUERY(MYSERVER, 'SELECT * FROM TEST.MYUSERS')