SQL Server/SQL Server Tip 662

EventID 3041 Error

EventID 3041 Error SQL Server 기술지원요청으로 데이터베이스 확인 결과 다음과 같은 에러 확인. 현재 서버에서 운영되는 모든 데이터베이스의 트랜잭션 백업 실패. (참고로 이 서버는 전체백업, 차등백업, 트랜잭션 로그백업을 사용한다.) 마이크로소프트에서 에러의 내용 검색. http://support.microsoft.com/kb/2646329/ko 디스크 상태 및 데이터 파일이 의심되어 무결성 검사 실행. 다행이 무결성검사 이상 없음. 823 & 832 : http://msdn.microsoft.com/ko-kr/library/aa337267.aspx http://www.sqlskills.com/BLOGS/PAUL/post/Dont-confuse-error-823-and-error-8..

데이터베이스 미러 백업

데이터베이스 미러 백업 Version : SQL Server 2005, 2008, 2008R2, 2012 데이터베이스 백업 파일이 손상되어 매우 난처한 상황을 겪어 본 적이 있을 것이다. 이러한 이슈를 방지하기 위하여 대부분의 DBA들은 1차 로컬 백업을 하고 2차, 3차 백업으로 로컬의 백업 파일을 다른 미디어로 복사해서 보관한다. SQL Server에서는 백업할 때 하나의 미디어가 아닌 여러 미디어에 동일한 백업세트를 생성 할 수 있다. SQL Server 2005 이상 Enterprise Edition 에서 가능하다. 미러된 미디어 세트는 복사본(미러)으로 구성 된다. 미디어 세트에는 미디어 패밀리가 하나 이상 포함되어 있으며 각각은 백업 장치에 해당한다. MIRROR TO 절은 최대 3개 까지 포..

SNAPSHOT을 이용한 SQL Server 복원

SNAPSHOT을 이용한 SQL Server 복원 Version : SQL Server 2005, 2008, 2008R2, 2012 데이터베이스를 운영하다 보면 데이터베이스 복원 이슈가 발생한다. 이때 백업파일이나 트랜잭션 로그 파일이 없다면 어떻게 복원할까? 스냅샷이 있다면 스냅샷의 시점으로 복원이 가능하다. 스냅샷의 정의를 간단히 정리하면 현재 데이터베이스 상태를 사진을 찍듯이 새로운 복사본으로 찍는다고 이해하면 될 듯 하다. 데이터베이스 스냅샷은 Enterprise, Developer 에디션에서만 가능하다. 현재 데이터베이스의 테이블을 확인 하자. 실습용 데이터베이스(SW_TEST)의 TBL_A 테이블안에 602개의 데이터가 있음을 확인 할 수 있다. 데이터베이스 스냅샷을 생성하자. CREATE D..

복사 전용 백업(COPY ONLY BACKUP)

복사 전용 백업(COPY ONLY BACKUP) Version : SQL Server 2005, 2008, 2008R2, 2012 데이터베이스를 운영하다 보면 최신의 데이터 스냅샷이 필요하거나 데이터를 다른 곳에 복원할 필요가 있을 때 흔히 백업을 많이 사용한다. 하지만 일반 적인 백업은 백업 시퀀스에 영향을 주게 되므로 전체적인 복원 시나리오에 영향을 미치게 된다. 복사 전용 백업은 기존의 SQL Server 백업 시퀀스와 독립적으로 작용 한다. 따라서 복원 시나리오에 영향을 받지 않게 된다. 백업 전체에 영향을 주지 않고 특별한 용도로 백업을 수행하여 데이터 및 프로시저를 복원하는데 유용하게 사용할 수 있다. SQL Server 2005 이상부터 지원한다. 복사 전용 전체 백업은 차등 백업으로 사용 ..

SQL Server 기본 백업 폴더 변경하기

SQL Server 기본 백업 폴더 변경하기 Version : SQL Server 2005, 2008, 2008R2, 2012 데이터베이스를 백업 할 때 SSMS를 이용하여 데이터베이스를 백업 할 경우 폴더 경로가 기본값으로 SQL Server의 시스템 폴더의 백업 폴더로 지정되어 있다. 백업 할 때 마다 폴더를 변경해 주어야 하는 번거로움을 없애기 위하여(기본값 그대로 사용하는 사용자라면 변경할 필요가 없다.) 사용자 환경의 기본 폴더 경로를 변경해 보자. SSMS에서 [태스크] – [백업]을 선택 한다. [데이터베이스 백업]창에서 [추가]버튼을 클릭하여 [디스크의 대상]을 확인해 보자. 다음과 같이 SQL Server의 기본 시스템 폴더의 백업 폴더를 나타낸다. 레지스트리 편집기에서 확인해 보면 [B..

백업 히스토리 모니터링

백업 히스토리 모니터링 Version : SQL Server 2005, 2008, 2008R2, 2012 DBA의 역할 중에 가장 중요한 것이 무엇이라 생각하는가? 나는 백업이라 생각한다. 유능한 DBA는 튜닝을 잘하는 것도 중요하지만 장애나 재해 발생시 최대한 데이터 손실을 줄이기 위한 전략적 백업 설계도 매우 중요하다. 다른 포스팅에서 백업 전략 및 백업 종류에 대해서 알아 보았다. 그렇다면 백업의 히스토리에 대해서 고민해 본적은 있는가? 백업 히스토리가 어떤 정보를 포함하고 있는지, 왜 히스토리를 모니터링 해야하는지 한 번쯤 의문을 가져 보아야 할 것이다. 우선 백업 히스토리를 조회 할 수 있는 스크립트를 살펴 보자. 다음 스크립트를 실행하면 백업 히스토리 정보를 모니터링 할 수 있다. SELECT..

백업 전략과 Differential Database Backup

백업 전략과 Differential Database Backup Version : SQL Server 2000, 2005, 2008, 2008R2, 2012 데이터베이스를 운영하다 보면 비즈니스 특성, 데이터의 사이즈, 정책 등을 고려하여 여러 가지 백업 전략을 세워야 할 때가 있다. 지난 시간에는 큰 용량의 데이터베이스 백업을 빠르게 하기 위하여 스트라이프 백업에 대해서 알아 보았다. 스트라이프 백업 : http://sqlmvp.kr/140172045344 이번 아티클에는 디스크 공간에 대한 백업 전략을 차등 데이터베이스 백업을 통하여 알아 보자. (차등 백업에는 차등 데이터베이스 백업, 차등 부분 백업, 차등 파일 백업 이 있지만 이번 시간에는 차등 데이터베이스 백업에 대해서 알아 보자.) 차등백업 ..

SQL Server Point in time recovery

SQL Server Point in time recovery Version : SQL Server 2000, 20005, 2008, 2008R2, 2012 DB를 운영하다 보면 손실 또는 장애 또는 지나간 과거의 데이터 조회 필요성에 의해 데이터베이스를 복원하는 이슈가 발생 한다. 이때 중요하건 얼마나 빠른 시간에 복원하는가도 중요하지만 어느 시점까지 복원하는지도 매우 중요하다. [지정 시간 복원]을 통하여 원하는 시점까지 복원을 실습해 보자. 시점으로 복원하기 위해서는 데이터베이스 복구 모델이 [전체] 또는 [대량 로그]이어야 한다. SSMS를 실행하여 마우스 오른쪽을 클릭하여 복원을 선택 한다. [데이터베이스 복원]차에서 다음과 같이 [데이터베이스]를 선택하고 [지정시간]옆의 버튼을 클릭 한다. [지..

Striping SQL Server Database Backup

Striping SQL Server Database Backup Version : SQL Server 2000, 2005, 2008, 2008R2, 2012 데이터베이스를 운영하다 보면 데이터베이스의 용량이 큰 경우가 있다. 이때 백업 시간도 함께 커진다. 데이터베이스 용량이 매우 커서 백업 시간에 어려움이 있다면 스트라이프 백업을 이용하여 백업 시간 단축을 고려해 보자. 백업시 같은 디스크라도 사용자의 RAID 구성, 사용가능한 CPU 수에 따라 스트라이핑의 혜택을 볼 수 있다. (물론 물리적으로 다른 디스크를 사용한다면 IO분산에 더욱 효과적일 것이다.) 또한 네트워크 백업의 경우에도 NIC의 수에 따라 효과를 볼 수 있다. 자세한 내용은 SQLK CAT에 게시된 White Paper를 참고한다. S..

SQL 서버 감사가 있는 데이터베이스 복원 후 설정

SQL 서버 감사가 있는 데이터베이스 복원 후 설정 Version : SQL Server 2005, 2008, 2008R2, 2012 데이터베이스에 서버 감사(Server Audit)가 설정되어 있는 경우 해당 데이터베이스를 복원 하면 감사 메커니즘은 감사 데이터를 캡처 할 수 없는 문제가 발생한다. 다음 방법을 통하여 감사 데이터를 캡처 할 수 있도록 설정 하자. 기존 데이터베이스에 감사를 만든다. USE master GO CREATE SERVER AUDIT [Test_Audit] TO FILE ( FILEPATH = N'C:\SQL_Data\' ,MAXSIZE = 100 MB ,MAX_ROLLOVER_FILES = 90 ,RESERVE_DISK_SPACE = ON ) WITH ( QUEUE_DELAY..