ms sql 50

SQL Server Failover Cluster 구성

SQL Server Failover Cluster 구성 l Version : SQL Server 2019 SQL Server의 고가용성 중 하나인 SQL Server Failover Cluster (장애조치 클러스터) 인스턴스를 구성하는 방법에 대해서 알아본다. SQL Server 장애조치 클러스터를 구성하기 위해서는 Windows Failover Cluster이 먼저 구성되어 있어야 한다. 그리고 디스크 또한 공유 디스크를 사용이 필수이다. 이번 포스트에서는 Windows Failover Cluster 구성이 완료 되어 있다는 가정하에 SQL Server Failover Cluster만 구성하는 방법에 대해서 설명한다. 이번 포스트에서 구성하려는 장애조치 클러스터의 구성은 아래 그림과 같다. DB01 ..

SQL Server DELAYED_DURABILITY 옵션으로 트랜잭션 로그 쓰기 성능 개선 하기

SQL Server DELAYED_DURABILITY 옵션으로 트랜잭션 로그 쓰기 성능 개선 하기 l Version : SQL Server SQL Server 데이터베이스에는 모든 트랜잭션과 각 트랜잭션에 의해 적용된 데이터베이스 수정 내용을 기록하는 트랜잭션 로그가 있다. 트랜잭션 로그는 데이터베이스의 매우 중요한 요소로 시스템 오류가 발생한 경우 데이터베이스를 일관된 상태로 다시 전환하려면 이 로그가 필요하다. l 트랜잭션 로그 아키텍처 : https://learn.microsoft.com/en-us/sql/relational-databases/sql-server-transaction-log-architecture-and-management-guide?view=sql-server-ver16 데이터베이..

SQL Server 에서 AWS S3에 직접 백업하기

SQL Server 에서 AWS S3에 직접 백업하기 l Version : SQL Server 2022 SQL Server 2022부터는 데이터 플랫폼에 통합 오브젝트 스토리지를 도입하여 Azure Storage외에도 AWS S3 호환 오브젝트 스토리지도 사용할 수 있다. 즉, SQL Server에서 AWS S3로 직접 백업을 할 수 있게 되었다. 기존 SQL Server 2019의 경우 Microsoft Azure 저장소만 가능 하였다. SQL Server 2022 부터 도입된 S3 REST API는 SQL Server에서 AWS S3 직접 백업, 복원을 할 수 있어, 백업 후 이동에 따른 프로세스 단축 및 대용량 백업을 진행할 경우에도 로컬 공간이 부족하여도 백업을 진행할 수 있게 되었다. 지원되는 ..

VM 환경의 SQL Server에서 할당된 CPU를 모두 사용하지 못하는 현상

VM 환경의 SQL Server에서 할당된 CPU를 모두 사용하지 못하는 현상 · Version : SQL Server Virtual Machine (VM)의 성능이 향상됨에 따라 많은 시스템들이 Physical 서버에서 VM 머신으로 마이그레이션을 진행하고 있다. 이번 포스트는 Physical머신에서 VM으로 마이그레이션 후 SQL Server에서 할당된 CPU를 모두 사용하지 못하는 성능 문제에 대해서 다룬다. Host Server OS Windows Server 2019 Standard CPU 2 socket (64 Core) RAM 128GB VM Server OS Windows Server 2019 Standard SQL Server SQL Server 2016 Standard CPU 8 Cor..

SQL Server 복원 성능 최적화

SQL Server 복원 성능 최적화 · Version : SQL Server SQL Server에서 백업 파일을 복원할때 빠르게 복원하기 위한 최적화 방법을 소개한다. 이 방법을 사용한다고 해서 무조건 빠르게 복원되지는 않으며, 사용할 수 있는 시스템 리소스에 따라 최적화된 옵션을 제공함으로써 좀 더 빠르게 복원할 수 있게 유도 하는 것이다. 데이터베이스 백업 및 복원에 대한 통계를 확인하기 위해 추적 플래그 3213, 3605를 설정한다. DBCC TRACEON (3213, -1) DBCC TRACEON (3605, -1) 데이터베이스를 복원하면, SQL 이벤트 로그에서 아래와 같은 내용을 확인할 수 있다. 기본 설정을 사용하면 최대 전송크기는 1024K 이고 버퍼수는 6인것을 확인할 수 있다. 이때..

SQL Server 트랜잭션 로그 복원시 복원 시간이 오래 걸리는 현상

SQL Server 트랜잭션 로그 복원시 복원 시간이 오래 걸리는 현상 · Version : SQL Server 2016 Enterprise Edition SQL Server에서 트랜잭션 로그를 사용하여 데이터를 복원시, 평소와 다르게 매우 오래 걸리는 현상이 발생하였다. 처음에는 I/O 서브 시스템을 의심하고 물리장비 까지 교체하였으나, 증상을 동일하였다. 여러가지 가설을 세웠고, 원인 분석 결과, Slow query가 트랜잭션 로그의 복원시간과 관련이 있다는 것을 발견할 수 있었다. 필자의 운영 환경은 10분 마다 트랜잭션 로그 백업을 진행하고, 백업된 로그는 다른 서버에서 Read Only(STAND BY)로 복원하여 각 부서에서 사용할 수 있도록 로그 쉬핑을 구성하였다. 10분 마다 발생하는 로그..

SQL Server Edition 다운그레이드 후 확인사항

SQL Server Edition 다운그레이드 후 확인사항 · Version : SQL Server SQL Server Enterprise Edition 에서 SQL Server Standard Edition으로 다운 그레이드 후 확인해야 할 몇 가지 사항에 대해서 알아본다. SQL Server Enterprise Edition을 SQL Server Standard Edition으로 다운그레이드 후 일부 구성이 기본값으로 다시 설정된다. [SQL Server 오류 로그 수] SQL Server 오류 로그 파일의 수가 기본 6개로 재설정된다. 이 설정을 확인하고 필요한 수로 설정한다. SSMS의 GUI를 사용할 수도 있으며 T-SQL 코드를 사용할 수 있다. USE [master] GO EXEC xp_in..

SQL Server Scheduling and Yielding 트러블슈팅

SQL Server Scheduling and Yielding 트러블슈팅 · Version : SQL Server SQL Server는 다중 스레드및 다중 태스크 시스템으로 SQLOS라고 불리는 자체 스레드 스케줄링 메커니즘을 가지고 있다. SQLOS에 대한 내용은 아래 링크를 참조 한다. · A new platform layer in SQL Server 2005 to exploit new hardware capabilities and their trends : https://blogs.msdn.microsoft.com/slavao/2005/07/20/platform-layer-for-sql-server · Inside the SQL Server 2000 User Mode Scheduler : https..

XEvent를 사용하여 Auto tuning 작업 모니터링

XEvent를 사용하여 Auto tuning 작업 모니터링 · Version : SQL Server 2017 SQL Server 2017 부터 Auto tuning 기능이 도입되어 사용자 쿼리에 대해 SQL plan change regression방식으로 쿼리의 플랜이 변경되었을때 변경 사항을 감지하고 더 나은 플랜을 사용하도록 자동 조정한다. SQL Server는 각 쿼리에 대해 마지막으로 성공한 플랜을 추적하고 기존의 플랜과 비교하여 마지막 실행 플랜이 더 좋다고 판단되는 경우 강제로 마지막 플랜으로 변경 한다. 이번 포스트에서는 XEvent를 활용하여 Auto tuning이 적용되어 강제로 플랜이 변경 되었을때 추적하는 방법에 대해서 알아본다. Automatic tuning process는 변경된 ..

SQL Server In-Memory OLTP에 ASP.NET 세션 상태 저장하기

SQL Server In-Memory OLTP에 ASP.NET 세션 상태 저장하기 · Version : SQL Server, ASP.NET SQL Server In-Memory OLTP에 ASP.NET의 세션 상태를 저장하는 방법에 대해서 알아본다. ASP.NET 에서 세션 상태를 사용하면 사용자가 웹 응용 프로그램을 구성하는 다른 ASP.NET 페이지를 탐색할때, 사용자 값을 저장하고 검색할 수 있다. 현재 ASP.NET에는 Microsoft ASP.NET 세션 상태 모듈과 세션 상태 데이터 원본 간의 인터페이스를 제공하는 세 가지 세션 공급자가 있다. · InProcSesstionStateStore : ASP.NET 작업자 프로세스의 메모리에서 세션 상태를 저장 · OutOfProcSesstionSa..