SQL Linux Instance Name 변경

 

·         Version : SQL Linux, Ubuntu

 

SQL Linux 에서 인스턴스 이름을 변경하는 방법에 대해서 알아본다. 인스턴스 이름을 변경하는 방법은 Windows 환경의 SQL Server 인스턴스 이름 변경 방법과 동일하다. 아래 실습을 통해서 SQL Linux에서 변경하는 방법에 대해서 알아 본다.

 

sqlcmd 유틸리티를 사용하여 SQL Linux 접속하여 현재의 인스턴스 이름을 확인한다. 현재 필자의 SQL Linux 인스턴스 이름은 “ubuntu” 것을 확인할 있다.

sqlcmd -S localhost -U sa

 

select @@servername

go

 

 

아래 명령은 기존의 SQL Linux 인스턴스 이름을 삭제하는 명령이다. 명령어 뒤에 위에서 검색한 서버 이름을 입력한다.

sp_dropserver ubnutu

 

아래 명령을 실행하여 시스템 메타데이터에 새로운 인스턴스 이름을 추가한다.

sp_addserver sqlmvp, local

 

 

인스턴스 이름을 변경하고 SQL Linux 서비스를 재시작하기 전까지 새로운 이름이 반영되지 않는다. sqlcmd 유틸리티를 종료하고 linux 에서 아래 명령을 사용하여 서비스를 재시작 한다.

systemctl restart mssql-server

 

 

서비스 재시작이 완료되면 SQL Linux 접속하여 서버 이름을 확인한다. 서버 이름이 변경된 것을 확인할 있다.

 

 

 

2018-06-22 / Sungwook Kang / http://sqlmvp.kr

 

SQL Server, SQL Linux, Instance name change, 인스턴스 이름 변경, SQL 이름 변경, 명명된 인스턴스

'SQL Server > SQL on Linux' 카테고리의 다른 글

SQL Linux 업그레이드  (0) 2019.03.25
SQL Linux에서 Job Agent 설치  (0) 2017.09.13
SQL Linux에서 Windows SQL 백업 파일 복원  (1) 2017.09.13
Linux에서 Network I/O 확인  (0) 2017.09.13
SQL Linux에서traceflag 활성화  (0) 2017.09.13

SQL Linux 업그레이드

 

·         Version : SQL Linux, Ubuntu

 

SQL Linux 최신버전으로 업그레이드 하는 방법에 대해서 살펴본다. 필자는 Ubuntu SQL Linux 설치된 상태이다. SQL Linux 업그레이드 진행 하기전 전체 사용자 데이터베이스 백업을 진행한다. 만약 업그레이드가 잘못되어 데이터베이스를 복원해야 경우를 대비해서 백업본을 보관하는 것이 좋다.

 

서버 로컬 접속 또는  Putty등을 사용하여 Ubuntu 서버에 연결한다.필자의 경우 Putty 사용하여 Ubuntu 서버에 접속 하였다.

 

Ubuntu에서 기존에 실행되고 있는 SQL Linux 버전을 확인한다. Sqlcmd 유틸리티를 사용하여 SQL Linux 연결하여 정보를 확인 있다. (Sqlcmd외에도 다양한 연결방법이 있으니 sqlcmd 사용할 필요는 없다.)

sqlcmd -S localhost -U sa

 

SELECT @@VERSION

GO

 

 

“apt-get” 명령을 사용하여 설치된 패키지 mssql-server 세부 사항을 확인할 수도 있다. apt-get 유틸리티는 Ubuntu APT(Advanced Packaging Tool)라이브러리를 사용하여 소프트웨어 패키지 설치, 기존 소프트웨어 패지키 제거, 기존 소프트웨어 패키지 업그레이드 등에 사용되는 무료 패키지 관리 명령어 프로그램이다. 아래 명령을 사용하여 mssql-server 버전, 체크섬 크기, 설치된 크기, 카테고리 간단한 설명과 함께 패치지 정보를 확인할 있다.

apt-cache show mssql-server

 

 

SQL Server 업그레이드 있는 사용가능한 업데이트 파일이 있는지 확인한다. 필요한 작업은 아니지만 업그레이드 프로세스를 이해하는데 도움이 된기 때문에 간단히 살펴본다. 명령은 설치된 모든 패키지에 대해 사용가능한 업데이트를 표시한다.

apt-get --just-print upgrade

 

 

현재 mssql-server 보류중인 업데이트가 있으므로 apt-get update 실행하여 /etc/apt/sources.list 파일에 지정된 소스에서 패키지 인덱스 파일을 동기화 한다. Update 명령은 패키지 인덱스 파일을 최신 버전으로 업데이트 한다. 아래 명령을 사용하여 패키지를 업데이트 한다.

sudo apt-get update

 

패키지 인데스 업데이트가 완료 되었으면 아래 명령을다시 실행하여 사용가능한 업데이트를 확인한다. 아래 스크린샷에서는 개의 패키지가 있음을 수있다. 하나는 이전 버전이고 다른 하나는 mssql-server 업그레이드하기 위해 적용해야하는 새로운 업데이트이다.

apt-cache show mssql-server

 

 

사용가능한 최신버전으로 업레이드하기 위해 아래 명령을 실행한다. 아래 명령은 최신 패키지를 다운로드 하고 /opt/mssql 있는 바이너리를 교체한다. 작업은 SQL 엔진을 교체하는 작업으로  사용자 데이터베이스에는 영향을 미치지 않지만 혹시 발생할 오류를 대비해서 처음 언급 한것처럼 백업을 것을 권장한다.

sudo apt-get install mssql-server

 

 

작업이 완료되면 SQL Server 빈드 버전이 14.0.3026.27에서 14.0.3029.16 업그레이드 것을 확인할 있다.

 

 

[참고자료]

https://www.mssqltips.com/sqlservertip/4647/upgrading-sql-server-running-on-ubuntu-to-latest-update/

 

 

2018-06-21 / Sungwook Kang / http://sqlmvp.kr

 

SQL Server, SQL Linux, SQL Upgrade, apt-get, apt-get update, apt-get install, 리눅스, linux,

SQL Linux에서 Job Agent 설치

 

·         Version : ubuntu, SQL Server Linux

 

SQL Server Linux에서Job Agent 설치하는 방법에 대해서 알아본다. SQL Server Job Agent 반복적인 작업을 예약하여 실행 있는 서비스이다.

 

SQL Linux Job Agent 설치하기에 앞서 update 명령을 사용하여 설치된 패키지를 최신버전으로 업데이트 있도록 한다.

sudo apt-get update

 

 

패키지 동기화가 완료되면 아래 명령을 사용하여 SQL Server vNext 최신 버전을 설치한다.

sudo apt-get install mssql-server

 

 

설치가 완료되었으며 update 명령을 사용하여 다시 한번 최신 버전을 동기화 한다.

sudo apt-get update

 

 

SQL Server 설치 update 완료되었으면 아래 명령을 실행하여 SQL Job Agent 설치 한다.

Sudo apt-get install mssql-server-agent

 

 

설치가 완료되면 안내 구문에 따라 SQL Server서비스를 재시작 한다.

systemctl restart mssql-server

 

아래 명령은 서비스가 정상적으로 실행되고 있는지 상태를 나타낸다.

Systemctl status mssql-server

 

SQL Server 재시작이 완료되고 서비스가 정상적으로 실행 되었으면  SSMS 실행하여 SQL Linux 연결한다. SSMS에서 Job Agent 실행중인 것을 확인할 있으며, 예약 작업을 등록하여 사용할 있다.

 


[참고자료]

https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-sql-agent

 

 

2017-08-08 / 강성욱 / http://sqlmvp.kr

 

SQL Linux, Linux SQL, 리눅스에서 Job Agent 설치, SQL Linux  Job Agent, SQL 2017, SQL vNext, install SQL job agent


'SQL Server > SQL on Linux' 카테고리의 다른 글

SQL Linux Instance Name 변경  (0) 2019.03.25
SQL Linux 업그레이드  (0) 2019.03.25
SQL Linux에서 Windows SQL 백업 파일 복원  (1) 2017.09.13
Linux에서 Network I/O 확인  (0) 2017.09.13
SQL Linux에서traceflag 활성화  (0) 2017.09.13

SQL Linux에서 Windows SQL 백업 파일 복원

 

·         Version : ubuntu, SQL Server Linux

 

Windows SQL Server에서 생성한 백업 파일을 Linux SQL 에서 복원하는 방법에 대해서 알아본다. 기본적으로 Windows SQL Server에서 수행한 백업에서 Linux SQL Server에서 복원하는 방법은 Windows 거의 유사하다. 다른점은 Windows  Linux 디렉터리 구조가 다르므로 RESTORE 명령과 함께 MOVE 옵션을 사용하여 디렉터리 경로를 입력하면 된다. (Windows에서도 물리적 위치를 변경할 경우 move 명령을 사용한다.- 결국 복원 방식은 동일함.)

 

편의상 실습은 SQL Linux에서 Adventurework2014.bak 샘플 데이터베이스를 다운로드 받아서 복원한다. (필자는 편의상 /var/tmp 디렉터리를 사용하였다.)백업 파일 정보를 확인하는 명령을 실행하여 현재 bak 파일에 포함되어 있는 경로를 확인한다. Windows 경로가 포함되어 있는 것을 확인 있다.

restore filelistonly from disk = ‘/var/tmp/AdventureWork2014.bak’

 

 

아래 백업 명령을 실행하여 데이터베이스를 복원한다. 이때 MOVE 옵션을 사용하여 디렉터리를 변경한다.

restore database AdventureWorks2014 from disk = ‘/var/tmp/AdventureWorks2014.bak’ with recovery,

move ‘AdventureWorks2014_Data’, to ‘/var/opt/mssql/data/AdventureWorks2014.mdf’,

move ‘AdventureWorks2014_Log’ to ‘/var/opt/mssql/data/AdventureWorks2014_log.ldf’

 

 

 

정상적으로 데이터 파일이 생성되고 DB 복원된 것을 확인할 있다.

 

 

2017-07-28 / 강성욱 / http://sqlmvp.kr

 

SQL Linux, Linux SQL, 리눅스에서 복원, SQL Linux 백업 파일 복원, SQL 2017, restore database


'SQL Server > SQL on Linux' 카테고리의 다른 글

SQL Linux 업그레이드  (0) 2019.03.25
SQL Linux에서 Job Agent 설치  (0) 2017.09.13
Linux에서 Network I/O 확인  (0) 2017.09.13
SQL Linux에서traceflag 활성화  (0) 2017.09.13
SQL Linux에서 dump file 위치 변경  (0) 2017.09.13

Linux에서 Network I/O 확인

 

·         Version : ubuntu

 

SQL Server Linux 버전 출시로 MS SQL DBA분들이 Linux 대한 관심이 많이 높아졌다. 이번 팁에서는 Linux에서 SQL Server 사용할때 알아두면 좋은 리눅스 팁을 공유한다. 이번 포스트는 Linux에서 Network I/O 확인하는 방법이다.

 

[netstat]

네트워크 통계의 약자인 netstat 명령어는Windows 사용자에게도 알려져있는 명령이다. 사용방법은 Windows 거의 동일하지만 Linux에서는 명령을 사용하면 많은 정보를 얻을 있다.

netstat -i

 

-i 옵션은 네트워크 인터페이스를 나열한다. 명령을 사용하면 인터페이스 이름과 보내고 받은 패킷을 확인할 있다.

·         RX-OK / TX-OK : 정상적인 패킷

·         RX-ERR / TX-ERR : 체크섬 오류로 거부된 패킷

·         RX-DRP / TX-DRP : 전체 퍼버에서 누락된 패킷

·         RX-OVR / TX-OVR : 시스템이 바빠서 누락된 패킷

 

netstat -ltu

 

 

-ltu 옵션은 수신포트(l) TCP(t) UDP(u) 표시한다. 또한 -p옵션을  (-ltup) 추가하면 수신 대기중인 프로그램이 표시 된다.

 

[slurm]

Slurm 터미널 기반의 네트워크 모니터링 도구이다. 유틸리티 표준 배포와 함께 배포되지 않으므로 아래 명령을 사용하여 설치 해야 한다.

sudo apt-get install slurm

 

설치가 완료되었으면 모니터할 인터페이스 이름을 인수로 전달하여 명령어를 실행 한다. 예를 들어 enp0s3 인터페이스를 모니터링 할려면 다음과 같이 명령어를 실행 한다. (인터페이스 이름은 netstat -i 확인한다.)

slurm -i enp0s3

 

그림에서 보듯이 네트워크 활동을 표시하는 그래프가 상단 패널에, 텍스트 정보는 하단 패널에 나타난다.

 

[speedometer]

기본 배포에 포함되어 있지 않으므로 아래 명령어를 설치를 해야한다.

sudo apt-get install sppedometer

 

아래 명령어는 enp0s3 인터페이스의 RX/TX 모니터링하는 명령이다.

speedometer -tx enp0s3 -rx enp0s3

 

 

여러 인터페이스를 모니터링 하려면 각각의 인터페이스명을 나열 한다.

speedometer -tx enp0s3 -rx enp0s3 -tx enp0s8 -tx enp0s8

 

[ifstat]

기본 배포에 포함되어 있지 않으므로 아래 명령어를 설치를 해야한다.

sudo apt-get install ifstat

 

명령을 실행하면 아래와 같이 네트워크 사용량이 지속적으로 나타난다.

 

[nethogs]

응용프로그래별로 네트워크 사용량을 확인할 편리 하다. 기본 배포에 포함되어 있지 않으므로 아래 명령어를 설치를 해야한다.

sudo apt-get install nethogs

 

그림에서 볼수 있듯이 PID, 사용자, 프로그램 별로 네트워크 사용량을 확인 있다. 유틸리티는 root 권한으로 실행 해야 한다.

 

[참고자료]

https://www.mssqltips.com/sqlservertip/4846/linux-administration-for-sql-server-dbas-checking-network-io/

 

 

 

2017-07-18 / 강성욱 / http://sqlmvp.kr

 

SQL Linux, Linux disk, 리눅스에서 네트워크 사용량 확인, SQL 2017, check network usage on Linux, netstat, slurm, speedometer, ifstat, network I/O,


SQL Linux에서traceflag 활성화

 

·         Version : ubuntu, SQL Server Linux

 

SQL Server Linux에서traceflag 활성화 하는 방법에 대해서 알아본다. 기존 Windows SQL Server에서 추적 플래그를 사용하려면 아래 가지 방법 하나를 사용할 있다.

·         DBCC Traceon (traceflag, -1) (https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-traceon-transact-sql)

·         SQL Server Configuration manager

 

SQL Linux에서 추적플래그를 전역으로 활성 또는 비활성화 하려면 mssql-conf 라는 SQL Server 구성 관리자 유틸리티를 사용해야 한다.  우선 아래 명령어로 현재 설정되어 있는 모든 추적플래그에 대한 정보를 확인한다.

dbcc tracestatus(-1)

 

Linux에서 추적 플래그를 활성화 하기 위해 mssql-conf 유틸리티를 사용하여 추적 플래그를 활성화 한다. 설정이 완료되면 SQL Server 서비스를 재시작 한다.

sudo /opt/mssql/bin/mssql-conf traceflag 1222 on

 

서비스 재시작이 완료 되었으면 현재 설정되어 있는 traceflag 확인 한다. Traceflag 1222 적용된 것을 확인할 있다.

dbcc tracestatus(-1)

 

 

여러개의 추적 플래그를 사용하려면 아래 스크립트처럼 추적 플래그를 나열한다.

sudo /opt/mssql/bin/mssql-conf traceflag 1204 3205 on


 

 

추적 플래그를 중지하려면 off 명령을 사용한다.  중지하려는 추적플래그 파라메터를 함께 명시 한다. 설정이 완료 되면 SQL Server 서비스를 재시작 한다. 명시된 추적플래그가 중지된 것을 확인할 있다.

sudo /opt/mssql/bin/mssql-conf traceflag 1222 1204 3205 off

 

 

추적 플래그를 설정할 때는 운영중인 서버에 적용하기 전에 반드시 테스트 서버에 적용하여 사이드이펙트를 체크해야 한다.

 

[참고자료]

·         https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-configure-mssql-conf#a-idtraceflagsa-enabledisable-traceflags

·         https://www.mssqltips.com/sqlservertip/4762/how-to-enable-and-disable-sql-server-traceflags-globally-for-linux-instances/

·         https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-traceon-transact-sql

 

2017-07-14 / 강성욱 / http://sqlmvp.kr

 

SQL Linux, Linux SQL, 리눅스에서 추적플래그 설정, SQL Linux traceflag, SQL 2017, dbcc tracestatus, traceflag on, traceflag off, mssql-conf

SQL Linux에서 dump file 위치 변경

 

·         Version : ubuntu, SQL Server Linux

 

SQL Server Linux에서 dump file 위치 변경하는 방법에 대해서 알아본다. Dump file 대한 경로 변경은  /opt/mssql/bin 폴더에 있는 mssql-conf 스크립트 내용을 변경하여 dump file 위치를 변경할 있다. 기본적으로 덤프 디렉토리는 SQL Server 설치할때 설정된 /var/opt/mssql/log 이다.  아래 명령어를 이용하여 해당 디렉토리에 대한 파일을 확인할 있다.

sudo –lrt /var/opt/mssql/log

 

 

이번 실습에서는 /tmp/dump 라는 디렉토리를 생성하고 dump file 경로를 변경한다. 우선 아래 스크립트를 실행하여 /tmp/dump 디렉토리를 생성한다.

sudo mkdir /tmp/dump

 

sudo ls –lrt /tmp

 

 

 SQL Server 생성한 디렉토리에 접근할 있도록 폴더의 소유자와 그룹을 변경한다.

Sudo chown mssql /tmp/dump

Sudo chgrp mssql /tmp/dump

 

아래 명령을 실행하여 dump file 생성 위치를 변경한다. 변경 SQL Server 서비스를 재시작 해야  한다.

sudo /opt/mssql/bin/mssql-conf set filelocation.defaultdumpdir /tmp/dump

 

 

-NOTICE-

현재테스트 환경의 버전이 SQL Evaluation 버전이어서인지 변경된 디렉토리에 dumpfile 생성되지 않았다.

 

 

[참고자료]

·         https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-configure-mssql-conf#a-iddumpdira-change-the-default-dump-directory-location

·         https://www.mssqltips.com/sqlservertip/4768/how-to-change-the-default-dump-file-location-of-sql-server-running-on-linux-server/

 

 

2017-07-11 / 강성욱 / http://sqlmvp.kr

 

SQL Linux, Linux SQL, 리눅스에서 dump file 위치 변경, SQL Linux  dump file, SQL 2017, mssql-conf, Change SQL Server dump file location, filelocation.defaultdumpdir

'SQL Server > SQL on Linux' 카테고리의 다른 글

Linux에서 Network I/O 확인  (0) 2017.09.13
SQL Linux에서traceflag 활성화  (0) 2017.09.13
SQL Linux에서 Port 변경  (0) 2017.09.13
Linux에서 DISK 공간 확인  (0) 2017.09.13
SQL Linux에서collation 변경  (0) 2017.09.13

SQL Linux에서 Port 변경

 

·         Version : ubuntu, SQL Server Linux

 

SQL Server Linux에서Port  변경하는 방법에 대해서 알아본다. SQL Linux 경우도 기본적으로 1433 포트를 사용하고 있다. 보안 또는 다른 이슈로 포트 번호를 변경해야 하는 이슈가 있을때  /opt/mssql/bin 폴더에 있는 mssql-conf 스크립트 내용을 변경하여 Port 변경할 있다.

 

SQL Linux 접속하여 root 권한을 획득 한다. 많은 사람들이 이미 기본포트가 1433인것을 알고 있지만 실제 사용하는 포트를 확인하기 위해 netstat 명령을 사용하여 서버에서 실행중인 모든 연결을 확인한다.

sudo su

 

netstat -tulpn

 

기본적으로SQL Server 포트는 1433이며, 1434 SQL Server Browser 서비스에 사용된다. 이번 실습에서는 SQL Server포트를 1435 변경하도록 한다. 아래 스크립트를 실행하여 포트 번호를 변경한다.

sudo /opt/mssql/bin/mssql-conf set network.tcpport 1435

 

 

포트 변경이 완료되면 SQL Server 재시작을 해야한다. SQL  서비스 재시작이 완료되었으면  다시한번 netstat –tulpn 실행하여 SQL Server 사용중인 포트를 확인한다.

 

SQL Server 1435 포트를 사용하는것을 확인할 있다. 실제 1435 포트를 이용하여 SQL Server 연결할 있는지 확인한다.

 

[참고자료]

·         https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-configure-mssql-conf#a-idtcpporta-change-the-tcp-port

·         https://www.mssqltips.com/sqlservertip/4736/how-to-change-sql-server-port-number-for-a-linux-server/

 

2017-07-10 / 강성욱 / http://sqlmvp.kr

 

SQL Linux, Linux SQL, 리눅스에서 port 변경, SQL Linux  port, SQL 2017, mssql-conf, Change SQL Server port number, network.tcpport

Linux에서 DISK 공간 확인

 

·         Version : ubuntu

 

SQL Server Linux 버전 출시로 MS SQL DBA분들이 Linux 대한 관심이 많이 높아졌다. 이번 팁에서는 Linux에서 SQL Server 사용할때 알아두면 좋은 리눅스 팁을 공유한다. 이번 포스트는 Linux에서 디스크 공간을 확인하는 방법이다.

 

Linux에서 DISK 공간을 확인하기 위한 가장 기본 적인 방법은 ls 명령을 사용하는 것이다.  ls  명령은 Windows dir /w 실행할 때와 같이 파일 크기 정보 없이 아카이브 정보만 반환 한다. 옵션인 -l(소문자 L) 함께 실행하면 파일 전체의 목록을 확인할 있다.

ls -l

 


 

출력된 결과의 항목은 파일에 대한 정보를 표시 한다.


 

정보를 보면 파일 크기가 바이트 단위로 표시되어 파일의 경우 가독성이 불편하다. h 인수 ls 명령과 함계 사용하면 메가바이트 단위로 공간을 표시 한다.

ls -lh

 


 

 

 

 

df명령은 사용된 디스크 공간과 파일 시스템의 마운트 지점을 표시 한다. df 자세한 옵션은 df 메뉴얼(https://www.gnu.org/software/coreutils/manual/html_node/df-invocation.html) 참고 한다.

df

 


 

df -h

 


 

아래 명령은 df 다양한 인수를 추가하여 특정 디렉토리의 파일 크기를 확인한다.

df –h /var/opt/mssql/data/master.mdf

 


 

du명령은 주어진 디렉토리 트리와 하위 폴더 파일 크기를 표시한다. 명령을 사용하기 위해서는 해당 디렉토리 파일에 대해 읽기 권한이 필요하다. 따라서 파일 크기만 알고 싶다면 ls –l 명령을 사용하는것이 좋다.

du /lib/udev

de –h /lib/udev

 


 

Sort 인자를 추가해서 파일크기에 대해서 정렬해서 있다.

de –h /lib/udev | sort -h

 


 

 

 

 

 

2017-06-20 / 강성욱 / http://sqlmvp.kr

 

SQL Linux, Linux disk, 리눅스에서 DISK  공간 확인, SQL 2017, check disk usage on Linux, ls, df, du, disk space


SQL Linux에서collation 변경

 

·         Version : ubuntu, SQL Server Linux

 

SQL Server Linux에서collation  변경하는 방법에 대해서 알아본다. Collation 문자열 정렬 비교 방법에 대한 규칙을 지정하는데 사용된다. Collation 다르면 쿼리의 동작이나 달라지거나 조인을 사용할때 일부 문제가 발생할 있다자세한 내용은 아래 포스트를 참고 한다.

·         Collation 따른 실행계획 변경과 성능 문제 : http://sqlmvp.kr/140199553043

·         Collation 따른 ALTER DATABASE 실패 : http://sqlmvp.kr/140194406833

·         Collation 따른 DMV 실행 오류 : http://sqlmvp.kr/140185365035

·         Collation 변경 (Windows SQL) : http://sqlmvp.kr/140211882558

 

Linux에서 SQL Server 설치 할때 collation 선택하는 옵션이 없으면 기본값을 사용하여 설치 된다. 아래 명령을 사용하여 현재 SQL Server 인스턴스 collation 확인한다.

select convert(varchar, SERVERPROPERTY(‘collation’))

 

 

SQL Server collation SQL_Latin1_General_CP1_CI_AS 임을 있다. 이번 포스트에서는 Korean_Wansung_CI_AS 변경하는 방버에 대해서 알아본다.

 

우선 가장 먼저 SQL Server 중지한다. 아래 명령을 사용하면 SQL Server 중지 있다.

Sudo systemctl stop mssql-server

 

mssql-conf 사용하여 SQL Server collation 변경한다. Set-collation 옵션이 데이터 정렬을 변경하는 명령어이다. 아래 명령을 실행하여 collationKorean_Wansung_CI_AS 변경한다.

sudo /opt/mssql/bin/mssql-conf set-collation

 

명령을 실행하면 Collation 변경 입력 프롬프트가 나타나고 사용자에 따라 필요한 collation 입력한다. 변경이 완료되면 완료되었다는 메시지가 표시 된다.

 

변경이 완료 되었으면 서버를 시작하고 정상적으로 collation 변경되었는지 확인한다.

 

현재 사용자의 시스템에서 지원 가능한 collation 확인하는 방법은 아래 명령을 사용한다.

select name from sys.fn_helpcollations()

 

 

-NOTICE-

현재테스트 환경의 버전이 SQL Evalutation 버전이어서인지 collation 변경되었다는 메시지는 표시되지만 실제 변경이 되지 않았다. 문제는 버전문제인지 아직 확인되지 못하였다.

 

 

[참고자료]

https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-configure-mssql-conf#collation

https://www.mssqltips.com/sqlservertip/4763/how-to-change-sql-server-collation-on-linux/

http://slavasql.blogspot.com/2017/03/SSOL-set-collation.html

 

2017-07-05 / 강성욱 / http://sqlmvp.kr

 

SQL Linux, Linux SQL, 리눅스에서 collation 변경, SQL Linux  collation, SQL 2017, mssql-conf



SQL Linux에서 데이터 로그 파일의 기본 디렉토리 변경

 

·         Version : ubuntu, SQL Server Linux

 

SQL Server Linux에서 데이터 파일 로그 파일의 기본 디렉토리 위치를 변경하는 방법에 대해서 알아본다. Linux SQL Server 경우 msslq-conf  유틸리티의 스크립트에 의해 수행 된다.

 

아래 스크립트를 실행하여 데이터베이스의 현재 기본 위치의 파일을 표시 한다. 모든 데이터베이스 파일이 /var/opt/mssql/data 위치하고 있음을 있다.

sudo su

 

ls –lrt /var/opt/mssql/data

 

 

임시로 새로운 데이터베이스를 생성하여 경로를 확인하여도 기본 폴더인 /var/opt/mssql/data 생성된 것을 확인 있다.

 

이제 데이터베이스 파일의 위치를 /var/opt/mssql/data에서  /opt/mssql/data  폴더로 바꾸어 새로운 데이터베이스를 만들때 마다 새로운 경로에 생성되록 한다. 우선 새로운 경로의 디렉토리를 생성한다.

mkdir /opt/mssql/data

 

/opt//mssql/data 디렉토리 생성이 완료 되었으면  SQL Server 디렉토리에 접근할 있도록 폴더의 소유자와 그룹을 변경한다.

sudo chown mssql /opt/mssql/data

sudo  chgrp /opt/mssql/data

 

이제 mssql-conf 사용하여 기본 데이터베이스 파일의 위치를 설정한다. 스크립트는 /opt/mssql/bin 디렉토리에 위치하고 있다. 아래 명령을 사용하여   해당 경로에  파일이 있는지 확인 있다.

ls –lrt /opt/mssql/bin

 

 

아래 명령을 실행하여 기본 데이터베이스 파일 위치를 /opt/mssql/data 변경한다.

sudo /opt/mssql/bin/mssql-conf set filelocation.defaultdatadir /opt/mssql/data

 

 

기본 디렉토리 변경이 완료 되었으면 반드시 서비스를 재시작해야 변경사항이 적용 된다.

systemctl restart mssql-server

 

변경된 내용을 확인하기 위해  sqlcmd 사용하여  SQL Server 연결한다. 이때 아래와 같은 문제가 발생한다.

문제는 tempdb 데이터와 로그 파일이 수동으로 위치(/opt/mssql/data) 이동하여 생성되면서 발생한 것으로 아래 명령을 실행하여 파일을 모두 기존 위치로 이동한다.

sudo mv /var/opt/mssql/data/tempdb.mdf /opt/mssql/data

sudo mv /var/opt/mssql/data/templog.ldf /opt/mssql/data

 

Tempdb 데이터 로그 파일을 기존 위치로 이동 sqlcmd 사용하면 성공적으로 연결할 있으며 tempdb 에서 파일 위치를 확인해보면 기존 경로에서 온라인 상태임을 확인 있다.


로그파일 기본 디렉토리 변경방법은 데이터파일 디렉토리 변경과 거의 동일하여 기본 로그 경로를 변경하는 명령문만 약간 다르다. 모든 과정은 데이터와 동일하게 진행하고 아래 명령문으로 로그 파일의 기본 디렉토리를 변경한다.

sudo /opt/mssql/bin/mssql-conf set filelocation.defaultlogdir /opt/mssql/log

 

 

 

[참고자료]

https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-configure-mssql-conf#a-iddatadira-change-the-default-data-or-log-directory-location

https://www.mssqltips.com/sqlservertip/4652/how-to-change-default-data-and-log-file-directory-for-sql-server-running-on-linux/

 

 

2017-07-03 / 강성욱 / http://sqlmvp.kr

 

SQL Linux, Linux SQL, 리눅스에서 data 파일 경로 변경, SQL Linux  log 파일 경로  변경, SQL 2017, default data directory, mssql-conf, linux 명령어


SQL Linux 기본Configure 명령

·         Version : SQL Linux, Ubuntu

 

SQL Server Linux에서 SQL Server 설치 기본 포트를 변경하거나 인스턴스 데이터 정렬셋 변경, 추적 플래그 설정 SQL Server 구성 정보를 설정 하는명령어에 대해서 알아본다.

 

Windows에서는 SQL Server 구성 관리자를 PowerShell 스크립팅과 같은도구를 SQL Server 구성 도구로 사용하는데 익숙하다. 하지만 Linux에서는 대부분 GUI 없는 상태로 콘솔에 의존해야하는 경우가 많다. Microsoft SQL Server Linux 버전에서는 mssql-conf라는 구성도구를 포함시켜 사용자가 쉽게 구성 설정을 있게 하였다. mssql-conf 파일은 /opt/mssql/bin 폴더 위치한다.

 

mssql-conf 구성도구는 아래와 같은 인수를 사용하며 모두 대소문자를 구분한다.

Argument

Description

set

SQL Server 설정값을 설정. list 인수를 사용하여 사용가능한 설정 목록을 가져올 있다.

unset

set옵션으로 추가된 설정을 제거

traceflag

추적 플래그 설정 또는 해제

set-sa-password

서비스가 실행되지 않는 동안 sa 암호 변경

set-collation

인스턴스의 데이터 정렬 변경

validate

/var/opt/mssql/folder 있는 SQL Server 구성파일 mssql.conf 내용 확인

list

set/unset 설정을 나열

setup

설치 스크립트 실행

start-service

SQL Server 서비스 시작 (리눅스 명령어인 systemctl start mssql-server 명령어 사용을 추천)

stop-service

SQL Server 서비스 중지 (리눅스 명령어인 systemctl stop mssql-server 명령어 사용을 추천)

enable-service

시스템 시작시 SQL Server 서비스자동 시작 설정

disable-service

시스템 시작시 SQL Server 서비스 자동 시작 해제

 

SQL Server TCP 포트 변경 ( : 14331 포트로 변경)

sudo /opt/mssql/bin/mssql-conf set network.tcpport <new_tcp_port>

sudo /opt/mssql/bin/mssql-conf set network.tcpport 14331

 

SQL Server 기본 포트를 사용하도록 변경

mssql-conf  unset network.tcpport

 

traceflag 설정 ( : 추적 플래그 1234 설정 이상의 추적 플래그 설정)

sudo /opt/mssql/bin/mssql-conf traceflag 1234 on

sudo /opt/mssql/bin/mssql-conf traceflag 1234 2345 4567 on

 

traceflag 해제

sudo /opt/mssql/bin/mssql-conf traceflag 1234 2345 3456 off

 

 

 

 

 

2017-06-22 / 강성욱 / http://sqlmvp.kr

 

SQL Linux, SQL Start, SQL Stop, SQL Disable, SQL Enable, SQL unbuntu, SQL 2017, SQL Server on linxu, linux SQL, mssql-conf, sql linux configure, sql linux trace flag

SQL Linux에서 기본 백업 디렉토리 변경

 

·         Version : ubuntu, SQL Server Linux

 

SQL Server Linux에서 기본 백업 디렉토리 위치를 변경하는 방법에 대해서 알아본다. Windows 시스템에서 실행되는 SQL Server에서는 설치 마법사나 설치 SQL Server속성을 변경하여 기본 백업 디렉토리를 설정 있다. Linux SQL Server 경우 msslq-conf  유틸리티의 스크립트에 의해 수행 된다.

 

mssql-conf  명령문에서는 아래의 매개변수를 설정할 있다.

·         TCP Port : SQL Server 연결 포트를 변경

·         Default data directory : SQL Server 데이터베이스 파일(.mdf) 디렉토리 변경 (새로 생성하는 DB 적용)

·         Default log directory :  데이터베이스 로그파일(.ldf) 디렉토리 변경 (새로 생성하는 DB 적용)

·         Default dump directory : 메모리 덤프 기타 트러블슈팅관련 파일의 디렉토리 변경

·         Default backup directory : 기본 백업 디렉토리 변경

·         Set traceflags : 서비스가 사용할 추적 플래그 설정

·         Set collation : Linux에서  SQL Server 대한 새로운 데이터 정렬 설정

 

Linux SQL Server 백업 파일이 생성되는 기본 위치는 /var/opt/mssql/data 이다. 이제 기본백업 위치를 변경하려면 먼저 백업을 저장할 폴더를 생성하야 한다. 백업 기본 위치를 /var/sqlbackup으로 설정하기 위해mkdir 사용하여 해당 경로에 폴더를 생성한다.

sudo mkdir /var/sqlbackup

 

 

ls -lrt 명령을 사용하여 해당 폴더가 생성되었는지 확인한다. 생성된 폴더는 root 폴더 소유자임을 확인할 있는데, SQL Server에서 기본 백업 폴더로 사용하기 위해서는 소유자를 mssql 변경해야 한다.

ls -lrt

 

 

소유자를 변경하기 위해서는chown 명령을 사용한다. chown 명령은 파일, 디렉토리, 링크의 소유자 그룹을 변경하는데 사용된다. 기본적으로 파일 시스템 객체의 소유자는 객체를 만든 사용자이다. 그룹은 해당 개체에 대해 동일한 액세스권한(읽기, 쓰기 실행) 공유하는 사용자 집합니다.

sudo chown mssql /var/sqlbackup

 

 

 

디렉토리 소유자가 mssql 변경되었다. 디렉토리의 그룹 소유권도 변경해야 하다.  chgrp명령을 사용하여 파일/디렉토리의 그룹 소유권을 변경한다. Linux 모든 파일은 소유자 그룹에 속한다.

sudo chgrp mssql /var/sqlbackup

 

 

디렉토리 생성및 권한 설정이 완료 되었다. msssql-conf 유틸리티를 사용하여 기본 백업 디렉토리를 변경해보자. 아래 스크립트는 기본 디렉토리를 위에서 생성한 /var/sqlbackup 변경한다.

sudo /opt/mssql/bin/mssql-conf set filelocation.defaultbackupdir /var/sqlbackup

 

 

기본 백업 디렉토리를 변경하면 SQL Server 서비스를 재시작해야한다.

systemctl restart mssql-server.service

 

 

기본 백업 경로가 수정되었는지 확인하기 위해 사용자 데이터베이스를 생성하고 백업을 진행한다. 데이터베이스 생성 백업 명령은 Windows SQL Server 명령문과 동일하다.

create database sqlmvp

go

 

backup database sqlvmp to disk = ‘sqlmvp.bak’

go

 

 

백업이 완료되면 기본 경로에 백업이 실행된 것을 확인할 있다.

 

mssql-conf 도구는 Linux SQL Server 여러가지 구성을 변경하는데 사용된다. 도구는 구성 파일을 작성하여 사용자가 지정한 구성 변경 사항을 저장한다. 이러한 구성은 /var/opt/mssql 위치의 mssql.conf 이름으로 구성파일에 저장된다.

 

기본적으로 도구는 Linux SQL Server 설치 매개 변수를 수정할 만들어 진다. 실습을 통해서 Defaultbackupdir 수정했으므로 mssql.conf 파일을 열면 아래와 같이 백업 위치를 확인할 있다.

 

 

생성된 파일을 확인해보면 백업 기본 경로가 변경된 내역을 확인할 있다.

 

 

[참고자료]

·         https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-configure-mssql-conf#a-idbackupdira-change-the-default-backup-directory-location

·         https://www.mssqltips.com/sqlservertip/4781/how-to-change-default-backup-directory-in-sql-server-on-linux/

 

 

2017-06-21 / 강성욱 / http://sqlmvp.kr

 

SQL Linux, Linux SQL, 리눅스에서 백업, SQL Linux 백업 폴더 변경, SQL 2017, default backup directory, mssql-conf, linux 명령어


Linux에서 DISK I/O 사용량 확인

 

·         Version : ubuntu

 

SQL Server Linux 버전 출시로 MS SQL DBA분들이 Linux 대한 관심이 많이 높아졌다. 이번 팁에서는 Linux에서 SQL Server 사용할때 알아두면 좋은 리눅스 팁을 공유한다.

 

DBA 역할 하나는 데이터베이스를 지원하는 스토리지 서브 시스템이 올바르게 작동하는지 확인하는 것이다. 동작을 확인하는 방법에는 DMV(Dynamic Management View) function sys.dm_io_pending_io_requests, sys.dm_io_virtual_file_stats 등이 있다. 하지만 정보로는 충분하지 않을 있다. 실제로 윈도우에서는 성능 이벤트를 사용하여 디스크 성능을 확인할 있으며, 외부 프로그램을 이용하여 성능 정보를 확인할 있다.

 

Linux에서 DISK I/O 사용량을 확인하기 위한 가장 기본 적인 방법은 iostat 명령이며 기본적으로 설치되는 도구이다.

Iostat

 

만약 도구가 설치되어 있지 않다면 sysstat 패키지를 설치하여 사용할 있다.

Sudo apt-get install sysstat

 


 

기본적으로 명령은 장치와 파티션에 대한  CPU I/O 통계에 대한 개의 정보를 표시하지만 -c   –d 옵션을 사용하면 CPU 또는 Disk 정보만 표시하도록 있다.  위의 그림에서 보면 설치된 장치에 대해 초당 전송(tps), 초당 읽기   쓰기(KB), 읽기 쓰기의 (KB) 정보가 나타난다.

iostat 명령을 실행하면 명령이 실행된 순간의 데이터만 나타나지만 반복 시간을 설정하면 지정된 간격(초단위) 계속 정보를 표시할 있다. 아래 명령은 4 간격으로 Disk I/O 정보만 표시되록 한다.

Iostat –d 4

 


 

그림을 보면 4 간격으로 Disk I/O 데이터를 나타내며 읽기/쓰기에 대한 정보는 이전 실행값과 비교한 델타 값이 표시된다. [Ctrl + C] 누를때 까지 지정된 간격으로 데이터를 표시 한다.

 

Iostat 함께 –x 옵션을 사용하면 많은 정보를 보여준다. 가장 유용한 정보는 평균 대기열 길이 avgqu-sz 정보를 보여준다.

Iostat –xd

 


 

·         rrqm/s :  장치에 대기중인 초당  읽기 요청

·         wrqm/s : 장치에 대기중인 초당  쓰기 요청

·         r/s : 초당 읽기 요청

·         w/s : 초당 쓰기 요청

·         rkB/s : 초당 읽기 KB

·         wkB/s : 초당 쓰기 KB

·         avgrq-sz : 요청의 평균 크기(섹터 단위)

·         avgqu-sz : 요청의 평균 대기열 길이

·         await : I/O 요청의 평균 시간(ms). 정보는 대기열 요청 시간과 대기열에 대기하는  시간이 포함

·         r_await : 서비스 요청을 받은 장치에 대한 읽기 요청의 평균 시간(ms). 대기열 요청 시간과 대기열에 대기하는 시간이 포함

·         w_await : 장치에 제공되는 쓰기 요청의 평균 시간(ms). 정보는 대기열 요청 시간과 대기열에 대기하는 시간이 포함

·         svctm : 장치에 발급 I/O 요청의 평균 시간(ms) (향후 제거되므로 사용하지 말것)

·         %util : I/O 요청이 장치에 발급된 동안의 CPU %. 수치가 100% 가까울 수록  오버헤드 발생

 

Iotop 명령은 프로세스 또는 스레드당 I/O 사용량을 나타내며 htop 유틸리티와 비슷한 형식으로 표시 한다.

Iotop

 

만약 해당 명령문이 실행되지 않으면 package 설치 한다.

Sudo apt-get install iotop