Upgrade Advisor 사용하기.

 

안녕하세요 SQLER 강성욱 입니다.

 

MS 사이트에서 내려 받은 Upgrad Advisior을 이용하여 SQL Server 업그레이드 전 문제사항을 확인 하도록 하자.

 

출저 : http://msdn.microsoft.com/en-us/library/ms144256.aspx

 

 

1. 위의 주소로 접속하여 파일을 다운 로드 한다.

 

각 프로세서 버전에 맞는 버전을 다운로드 한다.

 

 

2. 다운 받은 파일을 실행 한다.

 

 

 

 

3. 설치 완료.

 

4. SQL Server 2008 R2 Upgrade Advisor 실행.

 

 

5. 분석할 구성요소를 선택한다.

 

6. 분석할 인스턴스 명을 입력 한다.

 

 

 

 

7. 분석이 완료 되었다. 보고서를 리뷰하여 문제점을 확인 한다.

 

 

위의 보고서에서 문제점이 발견된다면 그 문제를 해결하고 업그레이드를 진행하도록 하자.

SQL Server Upgrade 하기!

 

안녕하세요 SQLER 강성욱 입니다.

 

많은 사용자들이 SQL 2000 및 2005를 사용하면서 업그레이드에 대한 고민을 하였을 것이다.

하지만 어떻게 해야 안정적인 업그레이드를 할 수 있을지 궁금해 할 것이다.

글을 쓰는 나 또한 많은 책을 찾아 보았지만 업그레이드에 대한 방법은 없었다.

다만 에디션에 따라 업그레이드가 가능한지 정도의 레퍼런스만 안내하고 있었다.

이번 시간을 통하여 SQL Server 2005 에서 SQL Server 2008 업그레이드 방법을 알아보도록 한다.

 

우선 SQL Server 2005를 설치하여 테스트를 한다.

SQL Server 2000도 다루어 보면 좋을 것이나 너무 오래된 버전이기도 하고 지금은 주력 SQL DB 버전이 아니라는 생각이 들어 SQL Server 2005에서 SQL Server 2008 업그레이드만 다루도록 한다.

 

업그레드 버전 확인

출저 : http://msdn.microsoft.com/en-us/library/ms143393.aspx

 

이전버젼

업그레이드 버전

SQL Server 2000 Enterprise / Standard SP4

 

SQL Server 2005 Enterprise / Standard / Developer / Express (32bit / 64bit)

 

SQL Server 2008 Enterprise / Standard / Developer / Express (32bit / 64bit)

 

SQL Server 2008 Enterprise

 

SQL Server 2008 Standard

 

SQL Server 2008 Developer

 

SQL Server 2008 Express

(32bit / 64bit)

 

 

1. 테스트 환경 구축

우선 SQL 2005를 설치 하였다.

물론 업그레이드 테스트 버전이므로 기타 서비스팩이나 핫픽스는 적용하지 않았다.

 

테스트 환경:

VM Ware

OS : Windows7 ProK x64

SQL : SQL Server2005 Standard x86 -> SQL Server 2008R2 Standard x86 업그레이드

RAM : 1G

HDD : 50G

 

 

 

 

2. SQL 2008 업그레이드 준비

SQL 2005가 설치가 완료 되었다 그럼 2008로 업그레이드를 해보도록 하자.

 

업그레이드를 진행하기 전 MS에서 배포한 관련문서를 훑어보는 것도 괜찮은것 같다.

출처 : http://msdn.microsoft.com/en-us/library/bb677622(SQL.105).aspx

출처 : http://msdn.microsoft.com/en-us/library/ms144256.aspx

 

 

 

SQL Server 2008 설치 시디를 실행한다.

 

.NET Framework 3.5와 Windows Installer4.5 가 설치되어 있지 않아 설치한다는 안내문이 나온다.

 

.NET Framework 과 Windows Installer 설치가 끝나고 설치센터에서 시작한다.

 

[설치] – [SQL Server2000, SQL Server 2005 또는 SQL Server2008 에서 업그레이드] 를 선택한다.

 

 

3. 프로세서 선택

기존에 설치된 SQL 프로세서를 확인하여 그에 해당하는 프로세스를 선택한다.

한가지 에피소드가 있다면 필자는 SQL 2005는 x86버전을 설치하여 놓고는 업그레이드 버젼은 x64로 계속 시도하여 업그레이드가 안되는 것이었다.

 

SQL Server 설치시 이전 SQL Server 프로세서(32bit / 64bit)을 확인하여 동일 버전을 선택한다.

 

필자는 SQL 2005가 x86 버전이므로 SQL Server 2008 R2 또한 x86으로 선택하였다.

 

4. 업그레이드 시작.

전반적인 설치 과정은 SQL Server 2008 새로 설치와 비슷하다.

설치시 비슷한 내용은 별 다른 설명 없이 캡쳐한 화면으로 대처 하도록 하겠다.

 

 

 

 

 

 

5. 업그레이드 인스턴스 선택.

 

현재 설치되어 있는 SQL Server의 인스턴스가 나타나며 여기에서 업그레이드 할 인스턴스를 선택한다.

 

 

6. 기능 선택

 

기능 선택 메뉴에서는 업그레이드가 진행될 기능이 나타난다.

물론 사용자가 추가로 선택하거나 취소 할 수 없다. 이전 버전에 설치되어 있는 항목이 체크되어 나타나다.

 

7. 인스턴스 구성

 

SQL Server인스턴스의 이름 및 인스턴스 ID를 지정한다.

 

 

 

8. 디스크 공간 요구 사항

SQL Server에 필요한 요구사항을 확인한다.

 

9. 서버 구성

 

서비스에 사용할 계정 및 데이터 정렬 구성을 지정한다.

계정선택에 관한 설명은 지난 세션 [SQL Server 2008 설치] 편을 참고 하길 바란다.

 

 

10. 전체 텍스트 업그레이드

 

이 부분이 기존 SQL Server 2008 설치와 약간 다른 부분이다.

업그레이드 항목에서 사용자 환경에 따라 [전체 텍스트 업그레이드 옵션]을 선택하여 진행 한다.

개인적인 선택으로는 2번째 항목을 이용하여 2008의 향상된 기능을 사용할 수 있도록 한다.

물론 많은 시간과 자원이 필요하다.

 

 

11. 업그레이드 규칙

 

업그레이드 진행 전 규칙을 확인하여 프로세스 차단등을 확인한다.

업그레이드 관리자를 실행하여 분석하는 것이 좋다.

 

12. 업그레이드 준비

업그레이드 할 항목을 나타낸다.

어떤 항목들이 업그레이드 되는지 확인 할 수 있다.

 

13.업그레이드 진행

 

이제 실제 업그레이드가 시작 된다.

필자가 느끼기에는 SQL Server 새로 설치보다 업그레이드가 훨씬 많은 시간을 필요로 하는거 같다.

 

 

14. 설치 확인

SQL Server 2008 정상 설치 되었는지 확인하자.

 

처음 실행 하게 되면 기존 SSMS 2005에서 사용하던 환경을 가져올 것인지 선택 화면이 나타난다. 사용자에 맞게 [예] 또는 [아니오]를 선택한다.

 

기존 서버로 등록된 서버를 추가할 것인지 선택 화면이 나타난다.

사용자에 따라 [예] 또는 [아니오] 를 선택한다.

 

 

SSMS에서 버전을 확인해 보자.

 

 

 

버전이 바뀐 것을 확인 할 수 있다.

 

업그레이드 후 꼭 필수 업데이트를 진행하여 최신의 상태를 유지하도록 하자.

 

이로써 SQL Server 2005 Standard x86에서 SQL Server 2008 R2 Standard x86으로 업그레이드가 완료 되었다.

(x64 프로세서도 업그레이드 방법은 동일 하다.)

 

필자의 개인 생각으로는 SQL Server업그레이드 보다는 새로 설치하여 두 버전을 한동안 같이 운영하면서 문제점이 없다고 확인 될 때 2008을 사용하는 것을 권장한다.

 

항상 새로운 시스템을 도입하기 전 많은 테스트와 관리가 필요 함으로 신중을 기하길 바란다.

 

 

인스턴스 설치 및 예제 데이터베이스 설치

 

안녕하세요 SQLER 강성욱 입니다.

이번 시간에는 인스턴스 설치와 예제 데이터 베이스 설치에 대해서 알아 보도록 한다.

 

1. 인스턴스란? (출처 : 네이버)

①일반적으로 어떤 집합에 대해서, 그 집합의 개별적인 요소. 객체 지향 프로그래밍(OOP)에서, 어떤 등급에 속하는 각 객체를 인스턴스라고 한다. 예를 들면 '목록(list)'이라는 등급을 정의하고 그 다음에 '본인 목록(my list)'이라는 객체를 생성(기억 장치 할당)하면 그 등급의 인스턴스가 생성된다. 또한 변수가 포함되어 있는 어떤 논리식의 변수에 구체적인 값을 대입하여 식을 만들면 원래 식의 인스턴스가 만들어진다. 이런 의미에서 인스턴스를 실현치라고 한다.
프로그램 작성 언어 에이다(Ada)에서 매개 변수를 사용해서 절차를 일반적으로 정의한 범용체(generic package)에 대해, 그것으로부터 도출한 구체적인 실체.

 

SQL Server 2008 (R2) 에서도 이전 버전과 같이 멀티 인스턴스를 지원한다.

위의 용어에서 보면 인스턴스에 대해서 구구절절하게 설명되어 있지만 필자는 무슨 말인지 모르겠다.

필자가 생각하기엔 쉽게 말해서 하나의 컴퓨터에 SQL Server를 여러 개 설치한다고 생각하면 편할 것이다.

 

 

 

물론 추가 인스턴스를 설치 할 때 마다 호스트PC의 자원을 공유해서 사용하기 때문에 시스템 자원이 할당 되고 성능이 저하 된다.

 

그렇다면 왜 우리는 인스턴스를 설치해야 하는가? 의문을 가질 필요가 있다.

 

2. 인스턴스의 필요성?

여러분들이 생각하기에는 왜 추가 인스턴스를 설치해야 한다고 생각하는가?

 

국내 출판된 책에서 인스턴스의 필요성을 살펴보니 간략하게 몇 가지로 정의되어 있었다.

 

(1) 개발 및 테스트 환경이 필요 할 때. :

(2) 보안상 독립적인 DB 환경이 필요 할 때.

(3) 여러 개의 DB를 설치하여 테스트가 필요 할 때.

 

이 외에도 이런 상황에서 필요 하다고 생각한다.

필자는 현업에 있으면서 여러 DB를 다루어 보고 수 많은 DB를 관리해 왔다.

단일 인스턴스에 DB명만 다르게 해서 서비스를 하고 있는 것도 있고 가상화 환경에서 각각 독립적으로 DB를 운영하는 것도 있다.

이처럼 여러 환경에서 늘 고민 되는게 각 서비스의 정확한 요구사항을 파악하기 어렵다는 점에 있다.

예를 들면 어떤 새로운 서비스를 시작한다고 하자. 필자는 게임회사에 몸담고 있기 때문에 게임을 예로 들어 본다.

새로운 게임을 개발해서 오픈 할려고 한다. 그런데 초기 회원이 얼마나 가입할 지, 실제 시스템에 부하가 얼마나 걸릴지 모르게 때문에 무턱대고 비싼 장비와 시스템을 구축 할 수는 없다.

어느 오너가 확실하지도 않은 것에 많은 돈을 투자하려 하겠는가.

그래서 우리는 월드 단위(서버단위)로 인스턴스구성 방법을 생각해 본다.

 

 

이렇게 구성하면 어떤 장점이 있을가?

우리는 늘 의문을 가지고 접근하는 사고 방식을 가져야 한다.

 

통상 게임 서버를 오픈 하고 나면 1번 서버에만 유저가 대거 몰리는 경향이 있다.

즉 GameDB01에만 데이터가 쌓일 것이다. 서비스가 지속 되는 동안 유저 데이터는 점점 늘어날 것이다. 결국 GameDB01의 성능 때문에 다른 GameDB02, GameDB03, GameDB04 의 서비스가 영향을 받게 된다.

물론 유저가 많이 유입되고 매출이 높다면 하드웨어 튜닝을 통한 방법으로 해결 가능할 것이다. 하지만 돈으로 해결 하는데에도 한계가 있는 만큼 하나의 서비스 때문에 다른 서비스가 영향을 받으면 안된다. 또한 DB를 분리하여 확장할 경우에도 최소한의 노력과 비용으로 가능하도록 설계를 해야 한다.

멀티 인스턴스로 구성하였을 경우에는 가장 자원을 많이 먹는 DB만 분리하여 다른 물리적 서버로 이동한 후 접속하는 프로그램들의 IP만 바꾸면 될 것이다.

물론 위의 상황은 지극히 개인적인 생각이다. 사용자들의 환경에 맞게 인스턴스를 적절히 활용하면 쾌적한 시스템 환경을 꾸밀 수 있으리라 생각한다.

 

3. 추가 인스턴스 설치하기

 

설치 CD를 넣고 설치를 시작한다. 전반적인 설치과정은 지난 세션에 다룬 [SQL Server 설치]와 동일하다. 다만 인스턴스 추가 부분만 다르므로 크게 어렵지는 않을 것이다.

 

지난 세션에 다룬 SQL Server에서 인스턴스 추가 부분만 다루도록 한다.

 

기존에 설치 되어 있는 인스턴스 이름이 나타난다. 아무런 SQL Server가 설치되어 있지 않다면 [설치된 인스턴스]항목에는 아무것도 나타나지 않는다.

 

기능 선택창에서 비활성화 되어있는 부분은 SQL Server에서 공유해서 사용하는 것이므로 이미 SQL Server가 설치되어 있다면 체크되어서 비활성화 된다.

 

추가로 설치한 인스턴스의 이름을 지정한다. [SECOND] 라는 이름으로 추가 인스턴스 설치.

 

만약 기본 인스턴스가 설치되어 있는데 또 다시 기본 인스턴스로 설치하려 한다면 아래와 같은 에러가 발생한다.

 

나머지 설치 방법은 기존과 동일함으로 따로 설명하지 않겠다.

 

설치가 완료 되면 SSMS를 이용하여 [SECOND] 서버에 접속을 한다.

IP(또는 컴퓨터 이름) 다음에 \SECOND(인스턴스명)을 입력한다.

 

[SECOND]인스턴스 서버에 정상적으로 접속 되었음을 알 수 있다.

 

SQL 구성관리자에서도 [SECOND]에 대한 정보가 나타남을 확인 할 수 있다.

 

4. 인스턴스에 포트번호 부여하기.

하나의 컴퓨터에 여러 개의 인스턴스를 설치 하였다.

그렇다면 외부에서 SQL Server에 접속할 때 컴퓨터 이름과 인스턴스 이름으로만 접속해야하는가?

SQL Server에서는 인스턴스에 포트번호를 부여함으로써 해당 포트의 DB로 접속 할 수 있다.

(공유기나 기타 현업에서 ip를 여러 개 부여 받을 수 있는 상황이라면 인스턴스별로 IP를 할당하여 사용한다. 이렇게 하면 차후 시스템 분리시 IP 재설정을 하지 않아도 된다.)

 

그럼 인스턴스에 포트번호를 부여해 보자.

SQL Server 구성관리자를 실행한다. SECOND(인스턴스)에 대한 프로토콜 설정에서 TCP/IP속성을 클릭하여 [IP주소]탭에서 IP ALL 항목에서 TCP 포트번호를 부여 한다.

포트번호는 기본적으로 5000 이상을 사용하도록 한다.

5000 이하는 윈도우 시스템에서 사용하므로 가급적 피하는 것이 좋다고 생각한다.

 

설정을 바꾸고 나면 서비스 재시작이 필요하다.

 

지정 포트로 접속을 하여 본다.

 

이렇게 인스턴스를 구분하여 사용하면 마치 독립된 서버를 운영하는 것과 같은 환경을 구축 할 수 있다.

 

5. 예제 데이터 베이스 설치하기.

 

SQL Server2000 에서는 초기 DB를 설치하고 나면 예제 데이터 베이스들이 자동으로 설치되어 사용할 수 있었으나 2005, 2008에서는 따로 추가 설치를 해야 한다.

 

우선 인터넷에서 예제 데이터 베이스를 다운 받도록 하자.

 

MS에서는 필요한 코드 및 정보는 www.codeplex.com를 통하여 배포하고 있다.

예제 데이터 베이스도 여기서 다운받도록 하자.

 

 

 

http://msftdbprodsamples.codeplex.com/releases/view/55926 <- 파일 받기.

 

 

받을 받기 완료 설치를 시작한다.

 

 

 

 

설치가 완료 되었다.

 

[Show Details]를 클릭하면 각종 정보가 나타난다.

 

 

SSMS를 이용하여 예제 DB가 설치되었는지 확인한다.

 

이로써 인스턴스 설치 및 예제 데이터 베이스까지 설치가 완료 되었다.

 

인스턴스에 대한 설계는 지극히 필자의 개인적인 생각이므로 현업에 적용 시 정책 및 환경을 고려하여 설계하여 사용함을 권장한다.

 

CPU affinity mask, NUMA, 최대 메모리설정을 필요에 따라 반드시 설정 할 것

 

 

SSMS 실행 및 기본 확인 사항.

 

안녕하세요 SQLER 강성욱 입니다.

 

이번 세션에서는 SSMS(SQL Server Management Studio)를 실행하여 DB를 접속하는 방법과 SQL Server 설치 후 기본적으로 확인 해야 하는 방화벽 옵션 및 TCP/IP설정 등을 알아 보도록 하자.

 

1. SSMS 실행하기.

[시작] – [프로그램] - [SQL Server 2008 R2] – [SQL Server Management Studio]

 

SQL Server를 설치하고 SSMS를 처음 실행하면 아래 화면과 같이 나타난다.

 

2. 서버에 연결

SSMS가 실행되고 [서버에 연결] 창이 나온다.

여기서 우리가 접속하여야 할 서버 유형은 [데이터베이스 엔진]을 선택하고

서버이름은 접속하려는 서버의 컴퓨터 이름 또는 IP를 입력 한다.

인증에서는 현재 로그인한 윈도우의 인증을 사용할 경우에는 [Windows 인증]을 선택하고

SQL Server 인증을 사용할 경우에는 SQL Server 인증을 선택한다.

 

 

(1)윈도우 인증 : 현재 로그인한 윈도우 로그온 ID를 이용하여 인증한다.

서버 이름은 컴퓨터의 이름을 사용해도 되지만 IP를 입력하여도 된다.

 

(2)SQL Server인증 사용 : SQL Server 설치 후 따로 SQL 계정을 아직 생성하지 않았음 으로 SA 계정과 SQL 설치 시 입력했던 암호를 입력한다.

 

3. SQL Server 접속 확인.

접속이 정상적으로 이루어 지면 아래와 같은 화면이 나타난다.

여기서 몇 가지 정보를 확인 할 수 있다.

 

위 화면은 데이터 베이스에 정상적으로 접속 후 화면 이다.

 

빨간색 박스의 내용을 살펴 보도록 한다.

1) 접속한 데이터 베이스 서버 : 그림에서는 192.168.0.13 서버이다.

2) 10.50.1600 : 현재의 SQL Server 버전을 의미 추후 업데이트를 하거나 하면 숫자가 높아진다.

3) KANGSUNGWOOK, SA : 현재 로그인한 계정명.

 

4. 운영중인 데이터 베이스 목록 보기.

[개체 탐색기] – [데이터베이스] 를 클릭하면 트리뷰가 확장 되면서 현재 운영중인 DB의 목록이 나타난다.

아래의 그림에는 ReportServer, ReportServer TempDB가 설치되어 있다.

 

5. 새 쿼리

이게 기본적으로 우리가 쿼리 명령어를 입력할 수 있는 창을 실행해 보자.

화면 왼쪽 상단의 [새 쿼리(N)] 버튼을 클릭 또는 [Alt+N]을 실행한다.

.

(1) 새 쿼리창을 실행하면 흰색의 쿼리를 입력할 수 있는 창이 나타난다.

(2) master : 현재 쿼리창이 연결되어 있는 DB명.

(3) 쿼리창의 제목탭에 마우스를 포인터를 위치해보면 정보가 나타난다.

 

쿼리 실행 방법 및 기초 쿼리문에 대해서는 이번 세션에서는 다루지 않는다.

 

6. SQL Server 구성 관리자

SQL Server 설치 후 데이터 베이스에 접속 해 보았다.

이제 SQL 설치 후 기본적으로 확인 하여야 할 사항을 알아 보자.

 

[시작] - [프로그램] – [SQL Server 2008 R2] – [SQL Server 구성관리자] 실행

 

 

 

7. SQL Server 서비스

현재 설치되어 있는 SQL Server의 목록을 나타내며 실행여부와 시작모드의 상태를 나타낸다.

 

현재 설치된 SQL Server명은 [MSSQLSERVER] 이며 [실행 중] 이며 시작 모드는 [자동] 인 것을 확인 할 수 있다.

(혹시나 독자들 중에는 초기 SQL Server설치 시 다른 이름을 사용했다면 필자와 다른 이름이 나타날 수도 있다.)

 

 

8. SQL Server 네트워크 구성

현재 SQL Server의 네트워크 속성을 나타낸다.

혹시 독자 중에 위의 DB접속하기에서 에러가 난다면 이 부분을 확인 해 보도록 하자.

SQL 2005 부터는 기본 보안설정이 TCP/IP 사용안함으로 되어 있다. 사용자가 직접 설정하여 사용하여야 한다.

 

구성 관리자에서 속성을 변경 하였을 경우 반드시 SQL Server를 재시작 하여야 한다.

 

 

 

 

(1) 프로토콜 : TCP/IP를 [사용] 선택한다.

[아니오]를 선택하게 되면 TCP/IP를 이용한 서비스를 사용할 수 없게 된다.(접속 불가 현상 발생)

 

 

(2) IP주소 : 현재 SQL 포트는 Well Know포트라고 해서 기본 1433이 알려진 상태이다.

근래에 들어서 SQL 포트를 이용한 인젝션 공격 및 해킹사례가 많이 발생한다.

특정포트로 바꾸어서 사용하길 권장하며 포트 주소는 사용자 환경에 맞게 설정하도록 한다.

(실습에서는 기본 포트를 사용하도록 하겠다.)

 

 

이렇게 하여 기본 SSMS를 이용한 SQL Server 접속 방법 및 기본 확인사항을 실습해 보았다.

물론 더 많은 옵션과 기능들이 있지만 자세한 내용은 추후 세션에서 다루기로 한다.

 

9. OS 방확벽 설정.

TCP/IP 설정 및 포트 설정을 완료 했음에도 불구하고 접속이 되지 않을 시에는 SQL Server를 재시작 하며 OS의 방화벽 및 네트워크 방화벽을 확인해 보도록 하자.

 

[시작] – [제어판] – [시스템 및 보안] – [윈도우 방화벽]

 

 

 

(1) 고급 설정에서 인바운드와 아웃 바운드를 설정한다.

인바운드 규칙 : 외부에서 내 컴퓨터로 연결 허용

아웃 바운드 : 내 컴퓨터에서 외부로 연결 허용

 

먼저 인바운드 설정을 한다.

[고급 설정] – [인바운드 규칙] – [새규칙]

 

SQL Server 가 사용할 포트를 오픈해야 함으로 포트를 선택한다.

 

 

[TCP]를 선택하고 [특정로컬포트]에서 사용자가 지정한 포트를 입력한다.

(참고로 SQL 기본 포트는 1433 이다. 현업에서는 외부 침입을 방지하기 위하여 기본포트를 사용하지 않는다.)

 

 

사용자 환경에 따라 프로필 설정을 한다.

 

인바운드 목록에 나타낼 이름을 정한다. 필자는 SQL 서버가 사용하는 포트이므로

SQL Port라 정하였다. 설명 부분은 기입하지 않아도 무방하다.

 

이로써 방화벽 정책에서 1433 포트 인바운드 허용이 완료 되었다.

인바운드 목록에 SQL Port라는 목록이 추가되었음을 확인 할 수 있다.

 

아웃 바운드 설정 또한 위의 인바운드와 같은 방식이므로 따로 설명하지 않는다.

 

사용자들이 OS의 방화벽 옵션을 설정하지 않아서 접속되지 않았던 문제가 빈번하게 발생했던 기억이 난다.

+ Recent posts