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

 


 

그림을 보면 DISK 대한 스왑 프로세스의 I/O 정보를 표시한다. Iotop 다양한 매개 변수를 사용하여 많은 정보를 있다.

·         -o : 모든 프로세스 또는 스레드를 표시하는 대신 실제로 I/O 수행하는 프로세스 또는 스레드만 표시

·         -b : 배치 모드로 작동. 시간 경과에 따른 I/O 사용량 로깅에 유용

·         -P : 프로세스만 표시 (일반적으로 iotop 모든 스레드를 표시)

·         -a : 누적된 I/O 대역폭 표시. 모드는 iotop 시작된 이후에 수생한 I/O 프로세스의 양을 보여준다

 

Iotop 실행 상태에서 키보드 단축키를 사용하여 표시 방법를 변경할 수도 있다.

·         Left and right arrow(방향키) :  정렬 열을 변경

·         r : 정렬 순서를 반대로 표시

·         : 실제로 I/O 수행하는 프로세스 또는 스레드만 표시

·         p : 스레드 대신 프로세스 표시

·         a : 누적 I/O 대역푝 표시

·         I : 스레드 또는 프로세스의 우선순위  변경

 

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

 

SQL Linux, Linux disk i/o, 리눅스에서 DISK 사용량 체크, SQL 2017, check disk usage on Linux, iostat, iotop, disk performance






Linux에서 CPU 사용량 확인

 

·         Version : ubuntu

 

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

 

CPU 사용량을 확인하기 위한 가장 기본 적인 방법은 콘솔에서 top 명령을 실행하는 것이다.


 

부분에서 어떤 정보를 표시하는지 살펴 본다. 우선 상단의 정보를 살펴보면 아래와 같다.


[Top]

·         09:59:47 up : 현재 시스템 시간

·         8:42 : 시스템의 전원이 켜진 시간

·         1 user : 로그온 사용자

·         Load average : 0.00, 0.03, 0.05 : 부하 평균 측정 (평균값은 5, 10, 15 간격으로 측정된다)

 리눅스 시스템에서 로드 평균은 특정 시간대에 대기중인 작업 (CPU 또는 IO) 비율을 측정한다. 값은  CPU 코어 수에 따라 다르다. 예를 들어 로드 평균이 1 코어가 하나 있는 시스템에서 최대로드가 100 경우, 2 코어 CPU 경우 로드가 절반으로 줄어든다. 일반적으로 로드가 시스템 코어 수보다 경우 시스템에 부하가 가중됨을 의미한다. 부하 평균은 대기중인 작업으로 인해 시스템 코어 수보다 월씬 많은 수를 나타낸다.

[Tasks]

·         187 total : 작업

·         2 running : 실제 실행 중인 작업

·         185 sleeping :  이벤트가 계속 실행되기를 기다리는 프로세스

·         0 stopped : 중지된 작업

·         0 zombie : 좀비 상태의 프로세스

좀비 프로세스란 Linux 시스템에서 하위 프로세스가 완료되면 프로세스 ID 프로세스 테이블에 기록되어 상위 프로세스가 하위 프로세 종료 상태를 확인할 있다. 이때의  자식 프로세스를 좀비라 한다. 부모 프로세스가 자식 종료 상태를 확인하면 좀비가 제거된다. 좀비 문제는 리눅스가 /proc/sys/kernel/pid_max 파일을 읽음으로써 찾을 있는 제한된 개수의 프로세스 ID 가지며 아주 드물게 자원 부족을 초래할 있다.

[%Cpu(s)]

·         2.6 us  : 사용자 모드의 CPU 시간 백분율

·         0.2 sy : 시스템 모드의 CPU 시간 백분율

·         ni : 우선 순위가 낮은 사용자 모드에서의 CPU 시간 백분율 (Linux 호출은 우선순위가 좋음)

·         97.2 id : CPU 유휴시간 백분율

·         wa : I/O 대기  CPU 시간 백분율

·         hi : 하드웨어 중단을 처리하는 CPU 시간 비율 백분율

·         si : CPU 시간 서비스 소프트웨어 인터럽트 백분율

·         st : 실제 CPU에서 하이퍼바이저가 다른 프로세스를 서비스하는 동인 기다리는 가상 CPU 백분율

[KiB Mem]

·         4045800 total :  전체 메모리

·         776368 free : 사용가능한 메모리

·         1645996 used :  사용중인 메모리

·         1623436 buff/cache : 버커 캐시에서 사용중인 메모리

[KiB Swap]

·         4191228 total : 스왑 파티션 공간

·         4191228 free : 사용 가능한 스왑 파티션 공간

·         0 used : 사용 스왑 공간

·         2118016 avail Mem : 사용 가능한 물리 메모리

 


·         PID : 프로세스 ID

·         USER : 사용자

·         PR : 프로세스 우선 순위, 열에서 RT 표시되면 프로세스가 실시간으로 실행중임을 의미

·         NI : 좋은 우선 순위. 음수 값이면 프로세스가 우선 순위가 높은것을 의미. 양수값은 프로세서의 우선순위가 낮은것을 의미.

·         VIRT : 프로세스가 사용하는 가상 메모리의 (KB)

·         RES : 프로세스에 사용되는 실제 메모리양(KB)

·         SHR : 공유 메모리의 (KB)

·         S : 프로세스 상태

ü  D = uninterruptible sleep

ü  R = running

ü  S = sleeping

ü  T = stopped by job control signal

ü  t = stopped by debugger during trace

ü  Z = zombie

·         %CPU :  Task  CPU 사용량. 스레드 모드에서 실행 중이 아니기 때문에 간혹  100% 보다 숫자가 표시 있다.

·         %MEM : 프로세스가 사용하는 실제 메모리의 백분율

·         TIME+ : 프로세스에 사용된 CPU 시간

·         COMMAND : 프로세스를 시작한 명령

 

 

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

 

SQL Linux, Linux CPU, 리눅스에서 CPU 사용량 체크, SQL 2017, check CPU usage on Linux





SQL Linux에서 SQL Server 시작, 중지, 활성, 비활성

·         Version : SQL Linux

 

SQL Server Linux에서SQL Server 시작, 중지, 활성, 비활성 방법에 대해서 알아본다. 아래 예제는 Ubuntu 설치된 SQL Linux이다. 현재 버전은 SQL Server 2017 (CTP2.1) – 14.0.600.250 이다.


 

[SQL Server services상태 확인]

SQL Server 설치 되면 아래 명령을 사용하여 서비스의 상태를 확인할 있다. 현재SQL Server 서비스 상태가 활성(실행 )되어 있는것을 확인 있다. (서비스가 중지되어 있을 수도 있다.)

systemctl status mssql-server

 


 

 

[SQL Server Services 중지]

SQL Server 서비스를 중지하려면 아래 명령을 실행 한다. 그리고 SQL서비스 상태 확인 명령을 사용하여 서비스가 중지된 것을 확인 한다.

sudo systemctl stop mssql-server

 


 

[SQL Server services 시작]

SQL Server 서비스를 시작하려면 아래 명령어를 실행 한다. 그리고 SQL서비스 상태 확인 명령을 사용하여 서비스가 시작된 것을 확인 한다.

sudo systemctl Start mssql-server

 


 

 

[SQL Server services 비활성화]

SQL Server 중지하고 비활성화 하려면 아래 명령어를 실행한다.

sudo systemctl stop mssql-server

 

sudo systemctl disable mssql-server

 


 

[SQL Server services 활성화]

SQL Server 서비스를 활성화 하려면 아래 명령어를 실행 한다.

sudo systemctl enable mssql-server

 

sudo systemctl start mssql-server

 


 

 

 

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

 

SQL Linux, SQL Start, SQL Stop, SQL Disable, SQL Enable, SQL unbuntu, SQL 2017, SQL Server on linxu, linux SQL





+ Recent posts