생계/SQL Server2018. 6. 8. 15:53

SQL Server 에서 Linked Server 만들어 보자. 

링크드 서버란 오라클의 DB Link 와 동일한 역할을 수행.

원격지 DB 의 데이터를 로컬 DB에서 조회할수 있게 만들어준다.


MSSQL 간의 링크드 서버 뿐만 아니라 oracle 과도 링크드서버 구성이 가능하다. 


하나의 서버에 MSSQL, oracle을 설치하고 연결하는 테스트를 해보자.


* 사전 준비

- MSSQL, oracle 설치 

- 오라클에 테스트 user, test  생성 및 데이터 입력 




1. 공급자 옵션 선택 

   서버개체 -> 연결된 서버 -> 공급자 -> 'OraOLEDB.Oracle' 우클릭, 속성





     Inprocess 허용 체크 



2. '새 연결된 서버' 만들기

   서버 개체 -> '연결된 서버' 우클릭 -> 새 연결된 서버 





 일반 탭에서 ...

    연결된 서버 -> 링크드 서버로 사용할 이름

    공급자 -> Oracle Provider for OLE DB 선택

    제품이름 -> 아무거나 써도 상관없다.

    데이터 원본 -> tnsnames.ora 에 있는 이름



  보안 탭에서 ...


   '다음 보안 컨텍스트를 사용하여 연결' 선택 후

     계정 이름과 패스워드 입력 후 '확인' 버튼 




   '연결된 서버' 항목 하위에 앞서 입력한 연결된 서버 이름 'ORA11G' 가

   생성되었다. 



 3. 테스트


SELECT * FROM OPENQUERY(연결된서버 이름, 'SELECT * FROM t_test');





반응형
Posted by 돌고래트레이너
생계/SQL Server2018. 6. 8. 10:53

SQL Server 에서 Linked Server 만들어 보자. 

링크드 서버란 오라클의 DB Link 와 동일한 역할을 수행합니다. 

원격지 DB 의 데이터를 로컬 DB에서 조회할수 있게 만들어줍니다. 


로컬 서버에 SQL Server 를 설치하고 원격지 서버(구글 클라우드 플램폼을 이용하겠습니다.) 의 DB 의 데이터를 조회하는 테스트를 알아보겠습니다. 


## 구글 클라우드 플랫폼 무료 계정 만들기는 아래 링크를 따라가시면 됩니다. ##

구글 클라우드 플랫폼(GCP) 무료계정 



1. 로컬 서버에 MSSQL 설치 


2. 원격지 서버에  MSSQL 설치 


3. 연결된 서버 새로 만들기


SSMS 에서 서버개체 -> 연결된서버 (우클릭) -> 새연결된서버 


일반 탭 -> 연결된 서버 : 디비링크 이름 입력 

공급자 : SQL Server Native Client 선택

데이터원본 : 타겟의 IP




보안 탭에서 가장 아래 (다음 보안 컨텍스트를 사용하여 연결) 선택

원격지DB 의 dblink 라는 로그인을 타고 접속하겠습니다.

물론 원격지DB에 dblink 라는 로그인이 만들어져있고 권한도 있어야함. 


서버옵션 탭 : RPC, RPC 내보내기 -> true 선택,  만들기 클릭




연결된 서버에 입력한 이름으로 Linked Server 가 만들어졌습니다.

원격지 DB 의 테이블 데이터를 조회해 봅니다.



   [LinkeServer이름].[디비명].[owner].[테이블명] 을 from 절에 써줍니다. (길죠? ㅠ)






반응형
Posted by 돌고래트레이너
생계/SQL Server2018. 5. 14. 13:13

SQLServer 백업본으로 신규서버에 restore 해보자  


1. 백업


backup database TESTDB to disk= 'D:\testdb.bak'

 

 

2. 신규서버에 복원 


Restore FileListOnly FROM DISK = N'D:\testdb.bak'

-- 백업DB의 논리명 확인 


restore database TESTDB from disk=N'D:\testdb.bak'

with move 'TESTDB'      to 'D:\DB파일경로\testdb.mdf',

     move 'TESTDB_LOG' to 'D:\LOG파일경로\testdb_log.ldf'

       

 

3. 기타 object 생성


- login

 -> 사용자매핑 

       use TESTDB

ALTER USER testuser WITH LOGIN = testuser


- 유지관리계획, 작업, 디비링크, 복제 등은 새로 생성

      


4. 검증


SELECT  CASE TYPE 

        WHEN 'U' THEN 'User Defined Tables' 

        WHEN 'S' THEN 'System Tables'

        WHEN 'IT' THEN 'Internal Tables'

        WHEN 'P' THEN 'Stored Procedures'

        WHEN 'PC' THEN 'CLR Stored Procedures'

        WHEN 'X' THEN 'Extended Stored Procedures'

    END typeofobject, 

    COUNT(*) as CNT    

FROM SYS.OBJECTS

WHERE TYPE IN ('U', 'P', 'PC', 'S', 'IT', 'X')

GROUP BY TYPE




      

반응형
Posted by 돌고래트레이너
생계/SQL Server2018. 4. 5. 14:59


구글 클라우드 플랫폼을 사용해서 테스트용 서버를 구축 할 수 있다. 

이렇게되면 인터넷만 되는 환경이라면 어디서든 접속할수 있는 장점이 있다.  

이전 포스팅에도 작성했지만 구글 클라우드 플랫폼에서는 $300 까지 

무료로 제공이 된다. 



1. 구글 클라우드 플랫폼 준비


GCP 계정이 없다면 이전에 작성한 내용을 참고해서 만들어보자. 간단하다 


http://riorio.tistory.com/107



2. SQL Server 2017 설치하기


아래 링크를 따라가면 SQL Server 를 다운받을수 있다. 

https://www.microsoft.com/en-us/sql-server/sql-server-downloads


free trial / developer / express 어느 버전을 다운받아도 크게 상관은 없다. 


## SQL Server 2017 부터는 SSMS 를 따로 다운로드해야한다. 

아래 링크에서 다운 받아 설치하면 된다. 


https://docs.microsoft.com/ko-kr/sql/ssms/download-sql-server-management-studio-ssms


설치는 매우 간단해서 따로 작성하진 않겠다. 그냥 next, next 하면 된다. 


## 나는 VM을 지역을 미국쪽으로 선택을 했다. 그래서 SQL Server 도 

영문 버전으로 다운받아야 했다. 

## VM 을 미국지역에 설치하는 이점 

  1. 미국지역 선택 시 추가요금이 없다. 

  2. 가끔 인터넷을 하다가 한국에서 접속이 안되는 서비스들이 있다. 

   (ex. amazon prime membership 의 스트리밍 서비스는 

     한국에서 이용이 불가하다. )

    그런 서비스들은 미국에 테스트 서버를 만들어 놓으면 여기서 

    이용할수가 있다. 


3. 방화벽 설정


GCP 에 SQL Server 를 설치하고 나서 바로 접속하려면 접속이 되지 않는다. 

몇가지 작업을 해줘야 한다. 


- VPC 네트워크 설정

    GCP 콘솔로 들어간 후 왼쪽의 스크롤바를 내려서 VPC 네트워크를 확인한다.  


 


  콘솔로 이동!


왼쪽에 길게 늘어선 메뉴 스크롤바를 내린다


봥화벽 규칙을 만들자 

디폴트로 만들어진 방화벽 규칙 말고는 없다. 

이 상태에서는 외부에서 테스트 DB 서버로 접속이 안된다. 



방화벽 규칙의 이름을 만들자

대상은 네트워크의 모든 인스턴스로 선택



테스트 서버로 접속을 허용할 ip 또는 ip 대역을 입력한다. 

나는 내 pc 로만 접속할거라 내 pc 의 ip 를 입력했다. 

0.0.0.0 을 입력하면 모든 ip 가 허용된다.

SQL Server 접속을 테스트할 예정이니 SQL Server 가 

사용할 포트 (default 1433) 를 규칙에 맞게 써준다. 

만들기 클릭




시간이 좀 지나면 방화벽 규칙이 만들어진걸 확인 할 수가 있다.

 

- SQL Server 설정 확인


 SQL Server 의 기본 port 는 1433 이다. 따로 바꾸지 않았다면 해당 포트를 

사용하겠지만 한번 확인해보자.  


시작 -> SQL Server Configuration Manager 를 연다. 

Protocols for MSSQLSERVER 클릭 -> TCP/IP  status 확인

disabled 상태면 Enabled 로 바꿔준다. 우클릭해서 속성을 확인


설정을 변경했다면 SQL Server 를 재시작하자. 



- 테스트서버 방화벽


테스트 서버의 윈도우즈 방화벽에 mssql 전용 inbound rule 을 추가하자.


제어판 -> 시스템 및 보안 -> 윈도우즈 방화벽 -> 고급설정 


Inbound Rules 에서 New Rule 추가 




SQL Server 포트를 입력 하자 



새로운 방화벽 규칙에 이름을 지어주자. 


4. 테스트 


여기까지 설정했으면 외부서버에서 테스트 서버의 SQL Server 에 접속이 되는지

테스트 해보자.


접속 테스트는 각자 편한 툴로 사용하면된다. 

나는 개인적으로 Oracle SQL Developer 를 선호한다. 

한가지 툴로 oracle, mysql, mariadb, mssql, sybase 까지

접속이 가능하기 때문이다. 

물론 oracle 을 제외하고는 따로 커넥터를 다운 받아야 한다. 



잘 따라했으면 접속이 될 것이다.

 

반응형
Posted by 돌고래트레이너