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

+ Recent posts