반응형

정기적으로 로그 백업을 하고 있다면 로그 파일 크기 내에서 재활용은 하겠지만, 대량의 트랜잭션이 발생하여 로그파일의 크기가 늘어나더라도 로그 백업을 통해 이미 늘어난 파일 크기가 줄어들지는 않습니다. 이로 인해서 불필요하게 디스크 공간을 차지하게 되므로 가끔씩 로그파일 크기를 줄여줄 필요가 있습니다.

현재 로그파일 크기 확인

sp_helpfile

sp_helpfile로 확인해 보면 현재 로그파일 크기가 9,024,448 KB로 나타납니다 (운영 중인 DB라 가렸습니다).

이는 탐색기에서 확인되는 사이즈와 동일합니다.

VLF 구성 확인

DBCC loginfo

DBCC loginfo로 로그파일의 VLF(가상 로그 파일)를 확인해 보면 81개로 구성되어 있음을 알 수 있습니다.

로그파일 크기 줄이기

sp_helpfile 조회 결과의 'name' 컬럼에 해당하는 이름이 로그파일명 입니다.

DBCC SHRINKFILE (로그파일명)

DBCC SHRINKFILE 명령이 정상적으로 수행되면 다음과 같이 결과를 보여 줍니다.

위에서 CurrentSize는 줄어든 후 로그파일의 페이지 수를 나타냅니다. SQL 서버에서 한 페이지는 8KB 이므로 KB로 변경하면 1,025,504 * 8 = 8,204,032 가 됩니다.

sp_helpfile로 다시 확인해보면 다음과 같습니다.

작업 직전에 로그 백업을 받고 진행하지 않아서 많이 줄어들지는 않았지만 그래도 크기가 줄어들었습니다.

DBCC loginfo로 재확인 해보면 VLF 개수가 80개로 줄었습니다.

참고로 쿼리로 로그 테이블의 초기 사이즈를 확인하기 위해서는 다음과 같이 하면 됩니다.

SELECT name, size * 8 AS init_size_KB, physical_name
FROM master.sys.master_files where database_id = DB_ID('데이터베이스명')

DBCC SHRINKFILE를 통해 줄어들 수 있는 최대치는 이 초기 사이즈이기 때문에 이하로는 줄어들지 않습니다.

[참조]

DBCC SHRINKFILE(Transact-SQL)

반응형
반응형

윈도우10의 WSL(Windows Subsystem for Linux. 리눅스용 윈도우 하위 시스템)을 버전 2로 올리는 방법 입니다.

저의 경우 WSL으로 Ubuntu가 설치되어 있어서 이를 기준으로 설명 합니다.

WSL 1과 2 차이점은 다음과 같습니다.

기능 WSL1 WSL2
Windows와 Linux 통합
빠른 부팅 시간
작은 리소스 공간
현재 버전의 VMware 및 VirtualBox에서 실행
관리 VM ×
전체 Linux 커널 ×
전체 시스템 호출 호환성 ×
OS 파일 시스템 간 성능 ×

특별히 윈도우와 WSL간에 파일 시스템을 공유할 필요가 없으면 WSL2를 사용하는 것이 성능과 Linux 호환성 측면에서 좋을 것 같습니다.

WSL 버전 확인

기존에 설치된 WSL의 버전을 확인 합니다.

wsl -l -v

WSL 기능 활성화

PowerShell에서 다음 명령을 실행 합니다 (단 PowerShell는 관리자 모드로 실행 되어야 합니다).

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

VM기능 활성화

이어서 다음 명령을 실행 합니다.

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

WSL2로 변환

다음 명령으로 WSL2로 변환작업을 진행 합니다. 시간이 약간 걸립니다.

wsl --set-version ubuntu 2

제대로 변환되었는지 확인하기 위해 버전을 다시 확인 해 봅니다.

사실 제 경우에는 WSL2로 변환 시 다음과 같은 오류가 발생 하였습니다.

가상 컴퓨터 플랫폼 Windows 기능을 사용하도록 설정하고 BIOS에서 가상화가 사용하도록 설정되어 있는지 확인하세요.

BIOS도 확인 했고 dism.exe 명령도 이상 없이 실행 했는데도 계속 오류가 발생 하였는데, 결국은 윈도우즈 업데이트를 하니까 해결이 되었습니다.

반응형
반응형

윈도우즈 터미널(Windows Terminal)은 윈도우 10에서 새로이 제공되는 CUI (Character User Interface) 환경입니다.

유니코드 및 UTF-8을 사용하기 때문에 다양한 언어의 이모지 및 문자 표시가 가능하고 GPU를 사용하여 텍스트를 렌더링 하므로 기존 환경보다 성능이 향상되었다고 합니다.

명령 프롬프트와 Power shell 그리고 WSL (Ubuntu 등 Windows Subsystem for Linux)을 하나의 프로그램에서 멀티탭으로 관리할 수 있고, 하나의 화면을 횡으로 종으로 분할하는 것도 가능합니다.

윈도우즈 터미널을 설치하기 위해서는 윈도우 10 버전이 2004로 업데이트 되어 있어야 합니다.

설치는 Microsoft store에서 하면 되는데 terminal로 검색하면 쉽게 찾을 수 있습니다.

 

받기를 누르면 별다른 과정 없이 곧바로 설치가 진행됩니다.

Windows 터미널을 실행하면 기본적으로 Power Shell 모드로 실행됩니다.

상단의 역 캐럿 모양을 클릭하면 명령 프롬프트, Ubuntu, Azure Cloud Shell을 새 탭으로 실행할 수 있습니다.

Alt+Shift+D 단축키를 눌러서 한 화면을 가로나 세로로 분할이 가능합니다.

설정 메뉴를 선택하면 settrings.json을 편집하는 창이 열리는데 여기서 단축키, 색상 등을 커스텀화 할 수 있습니다.

과거 IE만을 고집하며 호환성과 표준을 무시하던 마이크로소프트가 점점 오픈소스 생태계의 일원으로 개발자와 사용자를 위한 진정한 개발회사로 거듭나고 있는 것 같아서 다음 행보가 또 기대가 됩니다.

반응형
반응형

2013년에 포스팅한 내용이 너무 간단한 것 같아서 좀 더 자세한 내용으로 다시 올립니다.

hackhyun.tistory.com/231

 

[SQL서버] PK(Primary Key) 변경 하기

SQL서버에서 기존의 PK를 다른 컬럼 구성으로 변경 하려면 다음과 같이 한다. -- 기존 PK명 확인 sp_help 테이블명 --기존 PK 삭제 ALTER TABLE 테이블명 DROP CONSTRAINT 기존_PK명 --새로운 PK 정의 ALTER TABLE..

hackhyun.tistory.com

SQL서버에서 기존의 PK로 사용된 컬럼을 다른 컬럼으로 변경하려면 다음과 같이 합니다.

1. 기존 PK 명(인덱스 명) 확인

sp_helpindex 테이블명
  • primary key로 지정된 인덱스 명을 확인 합니다.

2. 기존 PK 삭제

ALTER TABLE 테이블명
DROP CONSTRAINT 기존_PK명
  • 1에서 확인된 인덱스 명을 이용합니다.

3. 새로운 PK 정의

ALTER TABLE 테이블명
ADD CONSTRAINT 새_PK명 
PRIMARY KEY [NONCLUSTERED](컬럼1, 컬럼2, ...)
  • 새 PK에 포함될 컬럼은 NULL이 허용되지 않는 컬럼이어야 합니다.
  • 별도로 지정하지 않으면 PK 컬럼이 클러스터 인덱스로 생성됩니다.
  • PK가 아닌 다른 컬럼을 클러스터 인덱스로 사용할 계획이라면 NONCLUSTERED 옵션을 지정합니다.

4. 잘 변경되었는지 확인

 

반응형

+ Recent posts