본문 바로가기

Linux is..../LINUX

경계선 없어진 IT 트랜드에서의 MS사 행보 - Chapter1. MS SQL Server on Linux 소개




오늘은 제목에서도 알수 있듯이 지난 주 오픈 소스 진영을 떠들석하게 했던 한 아이(?)에 대해 잠깐 이야기 해보려 한다.


개인적으로 오픈소스에 대한 MS측 견해를 평소 듣기가 어려웠는데 다행히 올 여름 한국 마이크로소프트에서 개최한 "오픈소스와 MS에 대한 이야기"세미나에서 어느 정도 들을수 있었던 기회가 있었다.


당시만해도 대학생과 개발자 그리고 오픈소스 커뮤니티 그룹들을 초청하여 MS사에서의 현재와 내일에 대한 오픈소스에 생각들을 정리없이 나열하는 수준이였고,

이때까지만 해도 MS사가 입이 닳도록 자랑하는 Microsoft Azure 클라우드 서비스을 통해 기존 가지고 있는 Pool(자원)을 어떻게 해서라도 오픈소스를 활용하여 확대하려나가려나 보다.... 라는 인식이 지배적이였다.

그 이후, 한국 REDHAT과 협약하여 국내에서는 처음 손잡고 "REDHAT-MS ROAD SHOW"주제로 세미나가 열리기도 했었다.


우리에게 알려져 있는 MS제품들은 서버군보다는 클라이언트제품에 대해 익숙하고 친숙하다.

실제로 MS사에서 클라이언트 분야에서 많은 수익을 창출하지만 향후 IT시장에서의 패권 다툼을 위해서라도 현재 출시되고 있는 많은 MS제품군들을 활용하여 진영을 갖추기 원할것이다.

이를 통해 MS측 전략은 오픈소스진영에서 많이 알려져 있는 오픈스택과 가상화 솔루션들과의 비교를 통해 Azure나 Hyper-V에 대한 인식을 바꾸길 원할 것이고 나아가 ceph나 Glusterfs 등이 MS Server Storage 등을 비교대상이 되어 알려지길 원할 것이다.


현재까지도 그래왔지만 앞으로의 IT주어는 상용제품과 오픈소스가 아닌 전략적인 기술과 하루하루 쏟아져나오는 오픈소스와 기술들에 대해 아우를수 있도록 Ecosystem을 구축해나아가는 방향성이 뚜렷했질것이라 생각해본다. (레드햇의 경우는 클라우드폼즈, Cloudforms가 인프라와 개발영역의 전략 요소인셈)


이제 서두는 이만 하는 걸로 하고 예전에는 상상하지도 못했던 SQL Server을 RHEL에 설치를 해보고자 한다. 보다 자세한 내용은 아래 참고URL을 통해 확인할수 있다


[SQL Server on Linux 소개]

https://www.youtube.com/watch?v=oEpJB87Xg9U


[Microsoft loves Linux. SQL Server Public Preview available on Ubuntu]

http://insights.ubuntu.com/2016/11/16/microsoft-loves-linux-ubuntu-available-on-sql-server-public-preview


[Microsoft joins the Linux Foundation]

http://open.microsoft.com/



--------------------------------------------------------------

Environment : Red Hat Enterprise Linux 7 & Centos 7 이상,  3.10.0-327.el7.x86_64



[최소 설치 환경]

◾Minimum 4GB RAM

◾Disk Space 4GB minimum

◾File System XFS Or Ext4 will be supported

◾Distros RHEL 7 / Centos 7 / MAC / Ubuntu 16.04 LTS or above versions

◾Enable 1433 port from Firewall for SQL communication to other clients



그럼, 설치할 준비가 되었으면 하나씩 진행해보자.
기본적으로 msql-server에 대한 패키지는 마이크로소프트사이트에서 레포지토리를 통해 제공한다. 


1. Install MSSQL Server in Linux Process Configuring YUM repo

[root@station1 ~]# cd /etc/yum.repos.d/


[root@station1 yum.repos.d]# wget https://packages.microsoft.com/config/rhel/7/mssql-server.repo

--2016-11-25 10:55:06--  https://packages.microsoft.com/config/rhel/7/mssql-server.repo

Resolving packages.microsoft.com (packages.microsoft.com)... 13.75.127.55

Connecting to packages.microsoft.com (packages.microsoft.com)|13.75.127.55|:443... connected.

HTTP request sent, awaiting response... 200 OK

Length: 220 [application/octet-stream]

Saving to: ‘mssql-server.repo’


100%[======================================>] 220         --.-K/s   in 0s


2016-11-25 10:55:06 (56.6 MB/s) - ‘mssql-server.repo’ saved [220/220] 


[root@station1 yum.repos.d]# yum repolist

Loaded plugins: product-id, search-disabled-repos, subscription-manager

This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.

packages-microsoft-com-mssql-server                      | 2.9 kB     00:00

packages-microsoft-com-mssql-server/primary_db             | 2.4 kB   00:00

repo id                              repo name                            status

packages-microsoft-com-mssql-server  packages-microsoft-com-mssql-server      2

rhel7                                rhel7.2 base server                  4,620

repolist: 4,622


이제 mssql-server을 설치할 준비가 되었다. 아래 명령어로 실행해 보자.



2. Install packages using YUM

[root@station1 yum.repos.d]# yum -y install mssql-server

Loaded plugins: product-id, search-disabled-repos, subscription-manager

This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.

Resolving Dependencies

--> Running transaction check

---> Package mssql-server.x86_64 0:14.0.1.246-6 will be installed

--> Processing Dependency: bzip2 for package: mssql-server-14.0.1.246-6.x86_64

--> Processing Dependency: gdb for package: mssql-server-14.0.1.246-6.x86_64

--> Running transaction check

---> Package bzip2.x86_64 0:1.0.6-13.el7 will be installed

---> Package gdb.x86_64 0:7.6.1-80.el7 will be installed

--> Finished Dependency Resolution


Dependencies Resolved


================================================================================

 Package       Arch    Version       Repository                            Size

================================================================================

Installing:

 mssql-server  x86_64  14.0.1.246-6  packages-microsoft-com-mssql-server  138 M

Installing for dependencies:

 bzip2         x86_64  1.0.6-13.el7  rhel7                                 52 k

 gdb           x86_64  7.6.1-80.el7  rhel7                                2.4 M


Transaction Summary

================================================================================

Install  1 Package (+2 Dependent packages)


Total download size: 140 M

Installed size: 145 M

Downloading packages:

(1/3): bzip2-1.0.6-13.el7.x86_64.rpm                       |  52 kB   00:00

(2/3): gdb-7.6.1-80.el7.x86_64.rpm                         | 2.4 MB   00:00

warning: /var/cache/yum/x86_64/7Server/packages-microsoft-com-mssql-server/packages/mssql-server-14.0.1.246-6.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID be1229cf: NOKEY

Public key for mssql-server-14.0.1.246-6.x86_64.rpm is not installed

(3/3): mssql-server-14.0.1.246-6.x86_64.rpm                | 138 MB   00:24

--------------------------------------------------------------------------------

Total                                              5.8 MB/s | 140 MB  00:24

Retrieving key from https://packages.microsoft.com/keys/microsoft.asc

Importing GPG key 0xBE1229CF:

 Userid     : "Microsoft (Release signing) <gpgsecurity@microsoft.com>"

 Fingerprint: bc52 8686 b50d 79e3 39d3 721c eb3e 94ad be12 29cf

 From       : https://packages.microsoft.com/keys/microsoft.asc

Running transaction check

Running transaction test

Transaction test succeeded

Running transaction

  Installing : bzip2-1.0.6-13.el7.x86_64                                    1/3

  Installing : gdb-7.6.1-80.el7.x86_64                                      2/3

  Installing : mssql-server-14.0.1.246-6.x86_64                             3/3


+-------------------------------------------------------------------+

| Please run /opt/mssql/bin/sqlservr-setup to complete the setup of |

|                  Microsoft(R) SQL Server(R).                      |

+-------------------------------------------------------------------+


  Verifying  : mssql-server-14.0.1.246-6.x86_64                             1/3

  Verifying  : gdb-7.6.1-80.el7.x86_64                                      2/3

  Verifying  : bzip2-1.0.6-13.el7.x86_64                                    3/3


Installed:

  mssql-server.x86_64 0:14.0.1.246-6


Dependency Installed:

  bzip2.x86_64 0:1.0.6-13.el7             gdb.x86_64 0:7.6.1-80.el7


Complete!


오우.....사실 난 DB개발자나 엔지니어도 아니다....근데 리눅스 터미널에서 mssql, ms라는 단어가 보일줄이야...10년전에 상상도 했겠는가?! 

설치가 정상적으로 되었다면 SQL Server구동을 해보자.


3. Run MSSQL Server Setup

[root@station1 bin]# cd /opt/mssql/bin/

[root@station1 bin]# pwd

/opt/mssql/bin

[root@station1 bin]# ./sqlservr-setup

Microsoft(R) SQL Server(R) Setup


You can abort setup at anytime by pressing Ctrl-C. Start this program

with the --help option for information about running it in unattended

mode.


The license terms for this product can be downloaded from

http://go.microsoft.com/fwlink/?LinkId=746388 and found

in /usr/share/doc/mssql-server/LICENSE.TXT.


Do you accept the license terms? If so, please type "YES": YES


Please enter a password for the system administrator (SA) account:

Please confirm the password for the system administrator (SA) account:


Setting system administrator (SA) account password...


Do you wish to start the SQL Server service now? [y/n]: y

Do you wish to enable SQL Server to start on boot? [y/n]: y

Created symlink from /etc/systemd/system/multi-user.target.wants/mssql-server.service to /usr/lib/systemd/system/mssql-server.service.

Created symlink from /etc/systemd/system/multi-user.target.wants/mssql-server-telemetry.service to /usr/lib/systemd/system/mssql-server-telemetry.service.


Setup completed successfully. 




[root@station1 bin]# systemctl status mssql-server

● mssql-server.service - Microsoft(R) SQL Server(R) Database Engine

   Loaded: loaded (/usr/lib/systemd/system/mssql-server.service; enabled; vendor preset: disabled)

   Active: active (running) since Fri 2016-11-25 11:03:40 KST; 2min 2s ago

 Main PID: 2708 (sqlservr)

   CGroup: /system.slice/mssql-server.service

           ├─2708 /opt/mssql/bin/sqlservr

           └─2721 /opt/mssql/bin/sqlservr


Nov 25 11:03:44 station1.example.com sqlservr[2708]: 2016-11-25 02:03:44.88 s...

Nov 25 11:03:44 station1.example.com sqlservr[2708]: 2016-11-25 02:03:44.88 S...

Nov 25 11:03:44 station1.example.com sqlservr[2708]: 2016-11-25 02:03:44.88 S...

Nov 25 11:03:44 station1.example.com sqlservr[2708]: 2016-11-25 02:03:44.89 s...

Nov 25 11:03:44 station1.example.com sqlservr[2708]: 2016-11-25 02:03:44.94 s...

Nov 25 11:03:44 station1.example.com sqlservr[2708]: 2016-11-25 02:03:44.94 s...

Nov 25 11:03:44 station1.example.com sqlservr[2708]: 2016-11-25 02:03:44.94 s...

Nov 25 11:03:44 station1.example.com sqlservr[2708]: 2016-11-25 02:03:44.96 s...

Nov 25 11:03:45 station1.example.com sqlservr[2708]: 2016-11-25 02:03:45.03 s...

Nov 25 11:05:17 station1.example.com systemd[1]: Started Microsoft(R) SQL Se....

Hint: Some lines were ellipsized, use -l to show in full.


RHEL7버전부터는 firewalld 라는 Packet Filter 방화벽를 담당하는 아주 동적인 녀석이 있다.

아래 명령어로 손쉽게 MSSQL Server서비스포트(1433/tcp)한해 열어줄수 있다.


[root@station1 bin]# firewall-cmd --permanent --add-port=1433/tcp

success

[root@station1 bin]# firewall-cmd --reload

success 


이제 서버쪽에서 확인을 다되었으니 SQL Management Studio를 통해 MSSQL인스턴스에 접근해보도록 해보자.


4. Access MSSQL Instance from Windows Through SQL Management Studio


[SSMS 다운로드]

https://msdn.microsoft.com/ko-kr/library/mt238290.aspx




처음 설치해봤는데 뭔가 왜케 무겁고 느린가....물론 내 PC가 너무 오래되었기....쿨럭;;

암튼 인내의 고통 시간 속에 설치가 완료된것을 볼수 있었다.





기본적으로 설치하면서 체험느낀것은 아주 깔끔하게 설치가 매끄럽다는 것이다.

설치가 대수냐 일수 있는데 불안정한 경우 DB기동할때와 중지할 때 이런저런 모습들을 볼수 있는데 SQL Server경우 그런 모습을 보이지 않고 보편적으로 커뮤니티 내에서도 동일한 주장이다.

SQL Server를 리눅스로 포팅하거나 설계할때 노고(?)를 짐작케 하는 대목이다.


현재 해외나 국내 커뮤니티에서 운영체제 환경에서의 동일 DBMS에 대한 성능 지표를 각자 입장의 차이에서 생각을 내놓고 있는데 사실 결론만 보면 논란의 중심이긴 하다.

과연 언제까지 갈것인지는 모르겠으나 IT인프라측면에서 생각해고 밥벌어 먹고 사는 입장에서는 항상 고민해보아야할 부분이긴 한거 같다...



간만에 작성하려니 두서없지만 기회가 된다면 Chapter2 에서는 SQL Server 각각의 운영체제에서 성능 벤치마킹 자료를 만들어 보고 싶은 욕심이 있다.


이상 끝.


'Linux is.... > LINUX' 카테고리의 다른 글

Chapter 1. RHEL 8.0 BETA 에 대해 살펴보자.  (0) 2018.11.19
RHEL7 - NetworkManager CLI(1) nmcli  (0) 2015.03.10