전체 글 1383

SQL Server Backup Error 3023

SQL Server Backup Error 3023 Version : SQL Server 2005, 2008, 2008R2, 2012 SQL Server에서 백업을 실행 하였는데 다음과 같은 오류가 발생 하였다. 에러로그에는 다음과 같은 오류 메시지가 기록되었다. Error 3023 Severity Level 16 Message Text Backup and file manipulation operations (such as ALTER DATABASE ADD FILE) on a database must be serialized. Reissue the statement after the current backup or file manipulation operation is completed. 오류 내용을 보..

Delete 작업과 페이지 offset 변화

Delete 작업과 페이지 offset 변화 Version : SQL Server 2005, 2008, 2008R2, 2012 SQL Server에서 테이블의 레코드를 삭제하는 경우 어떻게 처리되는지 알아본다. 실습을 위해 4개의 레코드가 8K의 페이지에 있는 테이블을 만든다. -- Create a simple table where 4 records fit onto 1 page CREATE TABLE TestTable ( Col1 INT IDENTITY(1, 1), Col2 CHAR(2000) ) GO 데이터가 한 페이지에 들어가도록 입력한다. -- Insert 4 records INSERT INTO TestTable VALUES ( REPLICATE('1', 2000) ), ( REPLICATE('2'..

트랜잭션 로그 및 LSN을 이용한 삭제된 데이터 복구

트랜잭션 로그 및 LSN을 이용한 삭제된 데이터 복구 Version : SQL Server 2005, 2008, 2008R2, 2012 SQL Server에서 일어나는 모든 일은 트랜잭션 로그에 기록 된다. 지난 시간에 트랜잭션 로그를 활용하여 누가 어떤 명령을 실행하였는지 찾는 방법에 대해서 알아 보았다. SQL Server에서 Drop 및 Delete 사용자 찾기 : http://sqlmvp.kr/140202164558 이번 시간에는 트랜잭션 로그 및 LSN을 사용하여 삭제된 데이터를 복구하는 방법에 대해서 알아 본다. SQL Server 트랜잭션의 모든 레코드에는 LSN(로그 시퀀스 번호)으로 고유하게 식별된다. LSN은 numeric(25.0)의 값을 가지며 변경이 발생한 순서에 따라 번호가 매겨..

로그 전달에 새로운 데이터베이스 파일 추가하기 Version : SQL Server 2005, 2008, 2008R2, 2012 SQL Server 로그 전달 구성에서 주 데이터베이스의 파일 구성이 변경되었을 때 (데이터 파일의 추가 또는 삭제) 전체 복원을 하지 않고 로그 전달을 유지하는 방법에 대해서 알아 본다. 로그 전달을 사용하기 위해서는 데이터베이스의 복구 모드가 전체모드이어야 하며 로그 백업이전에 반드시 전체 백업이 이루어 져야 한다. 다음 스크립트는 데이터베이스의 복구 모델을 [전체]로 변경하고 전체 백업하는 스크립트이다. 주 데이터베이스의 복구 모델 변경과 전체 백업을 실행 한다. USE [master] GO ALTER DATABASE [SQLMVP] SET RECOVERY FULL; GO..

PFX 형식의 인증서를 SQL Server에서 사용하기

PFX 형식의 인증서를 SQL Server에서 사용하기 Version : SQL Server 2005, 2008, 2008R2, 2012 SQL Server는 DER(Distinguished Encoding Rules) 파일 포맷의 통합 인증서를 사용 할 수 있다. 이 파일은 이진 인코딩 인증서로 CER 또는 CRT로 확장을 할 수 있다. SQL Server의 암호화에 사용되는 모든 인증서는 DER 서식을 사용해야 한다. SQL Server에서 PFX 형식의 인증서를 사용하려면 Microsoft에서 제공하는 PVKConvert를 사용하여 PFX 인증서 파일을 PVK/DER 형식으로 변환하여 사용해야 한다. PFX 형식의 인증서를 SQL Server 에서 사용하는 방법 : http://support.mic..

SQL Server NUMA 메모리 노드와 Operating System 접근

SQL Server NUMA 메모리 노드와 Operating System 접근 Version : SQL Server 2005, 2008, 2008R2, 2012 NUMA 아키텍처는 각 프로세서 그룹에 자체 메모리가 있으며 자체 I/O 채널이 있는 경우도 있다. 그러나 각 CPU는 일관된 방법으로 다른 그룹과 연결된 메모리에 액세스 한다. 각 그룹을 NUMA노드라 한다. NUMA에 대한 내용은 다음 아티클을 참고하여 이해를 할 수 있도록 한다. NUMA 아키텍처 : http://sqlmvp.kr/140150873571 이번 포스트는 CSS SQL Server Engineers 블로그에 게시된 내용으로 필자가 읽고 이해한 내용을 바탕으로 정리 하였으며 번역의 오류나 기술적 오류가 있음을 미리 알려둔다. 자세..

SQL Server 에러 핸들링 비용 비교 - TRY / CATCH, 제약조건 선행 검사

SQL Server 에러 핸들링 비용 비교 TRY / CATCH, 제약조건 선행 검사 Version : SQL Server 2005, 2008, 2008R2, 2012 SQL Server 2005부터 TRY / CATCH 기능이 제공되어 에러 핸들링에 많이 사용 되고 있다. 이는 확실히 프로그래밍을 더 쉽게 하고 에러를 처리하는데 많은 도움이 되었다. 데이터 입력 시 TRY / CATCH를 사용하여 에러를 핸들링하는 경우와 체크 조건을 미리 확인하여 수동으로 에러를 핸들링 하는 것에 대한 비용 차이를 확인해 보자. 다음 실습을 통하여 TRY / CATCH 예외 처리에 발생하는 비용에 대해서 알아 보자. 실습을 위해 기본 키가 테이블에 고유한 값의 100,000행을 입력 한다. CREATE TABLE db..

압축 백업 시 Checksum 옵션으로 손상 확인하기

압축 백업 시 Checksum 옵션으로 손상 확인하기 Version : SQL Server 2012 데이터베이스를 백업할 때 이미 백업 자체가 손상되어 있다면 백업이 아무런 의미가 없다. 백업 할 때 CHECK 옵션을 사용하여 손상 여부를 확인 할 수 있다. 백업할 때 WITH CHECKSUM 매개변수는 각 페이지의 체크섬을 확인하고 손상이 있을 경우 경고를 발생 한다. SQL Server Backup : http://technet.microsoft.com/ko-kr/library/ms186865.aspx NO_CHECKSUM : 백업 체크섬 생성 및 페이지 체크섬의 유효성 검사를 명시적으로 해제 한다. CHECKSUM : 백업 작업이 각 페이지의 체크섬과 조각난 페이지를 확인하고 사용 가능할 경우 전체..

SQL Server 2012 Memory Manager 구성

SQL Server 2012 Memory Manager 구성 Version : SQL Server 2012 SQL Server 2012에서 변경된 Memory Manager 구성에 대해서 알아보자. SQL Server 2008에서 최대 서버 메모리(Max Server Memory) 구성은 오직 하나의 8K 페이지 할당을 적용하였다. CLR 할당, 다중 페이지 할당, 직접 윈도우 할당(DWA)과 스레드 스택에 필요한 메모리는 포함되지 않았다. 그래서 CLR을 사용할 경우 32비트 시스템에서 서비스 시작 시 –g 옵션(memory_to_reserve)을 사용하여 주소 공간을 예약 하였다. SQL Server 2012에서 새롭게 디자인 된 메모리 관리자는 다른 구성 요소에 대한 페이지 할당을 제공하는 중심 역..

SQL Server Memory Manager 변화

SQL Server Memory Manager 변화 Version : SQL Server 2012 SQL Server 2012에서 메모리 관련 DMV 및 DBCC MEMORYSTATUS, 성능모니터가 일부 재설계 되었다. 새롭게 디자인된 메모리 관리자를 그림으로 요약하면 다음과 같다. [DMV] Sys.dm_os_memory_nodes 단일 및 다중 페이지 할당 통합은 sys.dm_os_memory_nodes의 pages_kb 컬럼에 반영된다. 새로운 foreign_committed_kb 카운터는 SQL Server 2012에서 제공되는 NUMA 관리로 원격 메모리 노드를 식별한다. 원격 메모리 노드에 속한 느린 메모리 액세스 문제를 해결하는 유용하다. SQL Server 2012SQL Server 20..