프로시져에서 타 시스템 DB 연결시
ms sql 디비 서버에서 프로시져를 작성중입니다.
필요에 의해서 물리적으로 구분된 다른 시스템 DB서버의 오라클 디비등에 접속할경우
어떤 구문으로 연결을 해야 하는지 궁금합니다... ?
일단 MSSQL에서는 연결된 서버(Linked Server) 라는 기능이 있습니다.
이 기능을 사용하시면 오라클, Mysql과 같은 데이터베이스 연결이 가능하십니다.
더 필요한 부분이 있으면 추가적으로 질문해주십시오.
본문내용 :
ms sql 디비 서버에서 프로시져를 작성중입니다.
필요에 의해서 물리적으로 구분된 다른 시스템 DB서버의 오라클 디비등에 접속할경우
어떤 구문으로 연결을 해야 하는지 궁금합니다... ?
MSSQL에서 Oracle의 정보를 가져와야 할 일이 생겨 DB link가능 여부를 체크하고 테스트했던것을 정리하는 글입니다.
테스트환경 :
MSSQL 2008 (64bit)
Oracle 11.2.0.1 (64bit)
사전준비 사항
MSSQL이 설치된 서버에 서버의 bit수와 동일한 Oracle Client가 설치되어 있어야 합니다.
MSSQL 설정
설치사이트
64bit의 경우
https://www.oracle.com/kr/database/technologies/112010-win64soft.html
32bit의 경우
https://www.oracle.com/database/technologies/112010-win32soft.html1. DB접속 후 Server Objects -> Linked Servers -> Providers에 OraOLEDB.Oracle이 있는지 확인해줍니다.
2.Client의 SQLNET.ora를 수정합니다.
아래의 내용 추가
SQLNET.AUTHENTICATION_SERVICES = (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, HOSTNAMES)
SQLNET.EXPIRE_TIME = 303.Client의 TNSNAMES.ORA에 Oracle DB의 접속정보를 추가합니다.
아이피는 예시입니다.
YSBAE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ysbae)
)
)tnsping ysbae와 sqlplus test/test@ysbae를 통해서 접속 테스트를 진행하여도 됩니다.
4. DB LINK를 생성합니다. New Linked Server..를 클릭합니다.
5. General 내용을 작성합니다.
Linked server : DB링크 이름
Provider : Oracle Provider for OLE DB
Data source : TNS 이름
6. Security 내용을 작성합니다.
Remote Login,With password칸에 Oracle DB의 스키마 이름과 비밀번호를 입력합니다.
7.Server Options내용을 작성합니다. 설정이 완료되었으므로 OK를 클릭 후 테스트를 진행합니다.
RPC RPC Out을 TRUE로 설정합니다.
8. Oracle의 sysdate를 구하는 쿼리로 테스트를 진행합니다.
*MS-SQL과 Oracle 의 문법차이를 숙지 부탁드립니다.
select * from OPENQUERY( DBLINK_TEST, 'select sysdate from dual' );
완료입니다.
mssql db서버에서 oracle db서버로 연결하기 위해서는 연결된서버(linked server)를 사용하면됩니다.조건은 mssql <-> oracle db 서버간에 방화벽등이 풀려있어야 합니다.
1. mssql db가 세팅되어있는 서버에 오라클 클라이언트를 설치합니다.
2. 오라클 클라이언트가 설치된 폴더에서 tnsname.ora 파일을 세팅합니다.
2-1. c드라이브의 오라클 설치된 폴더 /app/oracle/product/11.2.0/server/network/admin/sample
경로에 tnsname.ora 샘플파일을 /app/oracle/product/11.2.0/server/network/admin/ 경로로 복사
2-2. tnsname.ora 파일에 연결정보 입력
ex) *TNS명 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = *IP주소)(PORT = *포트번호))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = *DB명)
)
)3. mssql 접속이 가능한 툴 (mssql management studio) 에서 admin 권한 계정으로 접속하여 oracle db에 연결합니다.
3-1. 서버개체 > 연결된서버 > 공급자에 OraOLEDB.Oracle 우클릭하여 속성에 Inprocess 허용을 체크
3-2. 서버개체 > 연결된서버 우클릭하여 새연결된서버 선택하고 oracle db 연결정보 입력
4. 정상적으로 연결되었으면 아래와 같이 sql문으로 쿼리를 실행해보시기 바랍니다.
SELECT * FROM [Linked Server명]..[DB명].[테이블명]
이해가 안가거나 어려움이 있으시면
구글에 "mssql 오라클 연결된서버" 를 검색해보시기 바랍니다
명령문으로 처리하지 않고 SSMS 에서 [서버개체] - [연결된 서버] 에 연결시킬 DB를 등록합니다.
당연히 DB간 통신이 가능한 네트워크 상태여야겠지요 (방화벽등)
연결된서버에 등록할 때 보안 탭에서 아래쪽에 다음보안컨텍스트를 사용하여 연결을 선택하고 해당 DB의 로그인 username 과 password를 입력해야합니다
연결된 서버이름을 CON_ORA 라고 했을 때 mssql 문법으로 select , update , delete ,insert 가능합니다
select * from [CON_ORA]..[DB명].[테이블명]
이런식으로 사용하시면 됩니다
MS SQL SSMS사용하시나요?
거기서 서버개체-> 연결된 서버 -> 공급자에
오라클관련 공급자를 추가해주어야 해요(OraOLEDB.Oracle)
위 항목이 없다면
아래링크에서 ODAC XCopy 다운받으시고 설치하시면 되요
설치방법 : cmd -> cd 경로(압축해재한 ODAC폴더)
ex) install.bat all C:\app\user........\product\oracle\client_1 odac
그러고나서 서버개체->연겨된 서버 -> 새연겨된 서버에서
Oracle Provider for ole db로 환경을 만들어주세요(TNS들어가야함)
환경잡아주면 공급자에 OraOLEDB.Oracle이 생기세요
=>https://www.oracle.com/database/technologies/odac-downloads.html
저게 생기면 db링크 연괼되었다고 보시면 됩니당.~
근데 이방법 저는 비추에요
이기종간 db링크가 잘 안되더라구요
저같은 경우 DBMS타입이 다르면, 중간에 Data를 I/F해주는 프로그램을 하나 개발하는 편입니다.
Application에서 2개 db에 붙거 한쪽에서 읽어서 반대쪽으로 저장해주는 플로우로요
커버 사진 수정지식프로필 편집
Lv.
6
지식파워 1045.1?
soundbar
0
팔로워
0팔로잉
답변 대기 중인 질문의 답변은 본인과 질문자에게만 공개됩니다.
자바개발자가 되려면 어떻게 해야되나요?안녕하세요.
프로그래밍은 원래 혼자서 독학해야 하는 직종입니다. 대부분의 모르는 것들은 구글에 검색하면 다 나옵니다. 혼자서 독학하기에 좋은 프로그래밍 인강 사이트는 유료로 한다면 인프런 이라는 사이트가 있고 일단 맛보기라도 먼저 해보고 싶으시다면 생활코딩이라는 사이트를 접속하셔서 한 번 영상 훑어보시는 것도 좋습니다.
시작하기 좋은 프로그래밍언어는 nodejs 혹은 javascript, python 등이 있습니다. 만약 앱개발을 원하신다면 무조건 자바를 하셔야 합니다. 안드로이드가 자바기반으로 되어 있으며 코틀린 언어를 사용하셔도 됩니다.
현업에서는 C언어를 거의 사용하지 않습니다. 파이썬을 사용하는 부서는 있으며 주로 자바나 자바스크립트 nodejs 를 사용하는 부서가 가장 많습니다.
그 외의 프로그래밍이라면 html, css, javascript 등과 같은 것은 https://w3schools.com 에서도 충분히 학습하실 수 있습니다.