필자는 항상 여러개의 인스턴스를 쓰면서도 인스턴스의 개념을 정확하게 알지 못했다.
내가 스스로 정의하길 한대의 서버에 여러개의 DB가 있는 것으로 알고 있었다.
Java배울때 붕어빵틀이 클래스면 인스턴스는 붕어빵이라고 배웠다.
책에 내용에 보니 비슷하다고 한다.
SQL Server 프로그램(붕어빵틀)는 1개지만 , 컴퓨터에서 구동되는 SQL Server인스턴스(붕어빵)은 여러개 일수 있다.
물론 이말이 꼭 같은 붕어빵틀(복사)로 붕어빵을 찍어내는(붙여넣기) 개념이 아니다.
쉽게 말해서 하나의 서버에 여러개의 SQL Server를 설치하여 사용한다고 볼 수 있다.
SQL Server 는 멀티 인스턴스를 지원하며 Enterprise 에디션의 경우 50개의 인스턴스까지 지원한다.
여기서 중요한건 처음에 설치하는 SQL Server 또한 인스턴스다 (기본 인스턴스)
그렇다면 왜 구지 1개의 인스턴스로 사용하면 될것이지....왜 인스턴스를 추가할까?
① 개발/테스트 환경 구축
- 실무에서 가장 많은 이유때문에 사용할 것이다. 서버에 테스트용과 실제 라이브 용도로 쓸수 있기 때문에 추가적으로 인스턴스를 구축 할 수 있다.
② 보안상
- 보안 문제로 별도의 SQL Server 인스턴스가 필요할 때 사용할 수 있다.
③ 업그레이드 전에 버전과 동시에 운영해 보고 싶을 때
- 만약 SQL Server 2005 를 운영하던 중에 SQL Server 2008로 업그레이드를 원한다면, 바로 업그레이드 하지 않고 SQL Server 2005가 기본 인스턴스로 운영되고 있는 상태에서 SQL Server 2008을 추가 인스턴스로 설치해서 같이 운영이 가능하다.
다음 그림은 1대의 컴퓨터에서 인스턴스를 설치했을 경우와 여러대의 컴퓨터에서 인스턴스를 설치했을 상황을 도식화 하였다.
다음과 같이 여러대의 컴퓨터에 인스턴스를 각각 설치한다면 각각의 컴퓨터에 기본 인스턴스가 된다.
이렇게 함으로써 각각의 컴퓨터에서 SQL Server를 운영 할 수 있다.
다음과 같이 한대의 컴퓨터에서 여러개의 인스턴스를 설치 할 경우 기본 인스턴스를 우선 설치후 인스턴스를 추가 할 수가 있다.
참조 : 뇌를 자극하는 SQL Server 2008