SQL Server 818

데이터베이스 여유공간 확인

데이터베이스 여유공간 확인 Version : SQL Server 2005, 2008, 2008R2, 2012 데이터베이스를 운영하다 보면 데이터가 증가함에 따라 할당된 용량이 가득 차거나 또는 자동 증가 옵션으로 인하여 꾸준히 증가하는 현상을 경험 할 수 있다. DBA는 데이터 파일 사이즈의 증가에 대하여 꾸준히 모니터링 해야 한다. 다양한 스크립트를 통하여 데이터베이스의 여유 공간과 현재 데이터베이스의 파일 옵션 환경을 확인 하자. 다음 스크립트를 실행하면 드라이브 별로 전체 디스크의 용량을 확인 할 수 있다. xp_fixeddrives 위의 스크립트에서는 드라이브의 전체크기 밖에 알 수 없다. 다음의 스크립트를 통하여 드라이브 별로 전체 공관과 남은 공간을 확인하자. 'xp_cmdshell'을 사용하..

FILE GROUP 간 데이터 이동

FILE GROUP 간 데이터 이동 Version : SQL Server 2005, 2008, 2008R2, 2012 비즈니스 환경에 따라 별도의 파일 그룹에 대형 테이블 또는 일부 테이블을 보관하고 계획에 따라 파일 그룹을 읽기 전용으로 사용하는 경우가 있다. 이 때 별도의 파일그룹에 데이터를 이동하는 방법은 무엇이 있는지 알아 보자. 일반적으로 파일 그룹간에 데이터파일은 이동할 수 없다. 클러스터 인덱스를 통하여 파일그룹간의 데이터를 이동 할 수 있다. 클러스터형 인덱스의 리프 수준과 데이터 페이지는 정의가 동일하므로, 클러스터형 인덱스를 만들고 ON partition_scheme_name 또는 ON filegroup_name 절을 사용하여 효과적으로 테이블을 만든 파일 그룹의 테이블을 새 파티션 구..

문서화 되지 않은 sys.fn_PhysLocFormatter 함수

문서화 되지 않은 sys.fn_PhysLocFormatter 함수 Version : SQL Server 2008, 2008R2, 2012 어떠한 이유로 인하여 데이터가 비정상적으로 저장 되었거나 데이터를 select 하였는데 반환된 값이 정상적이지 않을 경우 우리는 DBCC PAGE 명령어를 이용하여 페이지 레벨에서 저장되어 있는 값을 확인 한다. 이 때 실제 SELECT 된 데이터의 상관관계를 확인할 수 있는 방법이 없을까? 문서화 되어 있지는 않지만 sys.fn_PhysLocFormatter를 이용하여 확인 할 수 있다. sys.fn_PhysLocFormatter 함수가 어떤 기능을 하는지 알아 보자. sp_helptext 'sys.fn_physLocFormatter' Text ------------..

SQL Server 관리자 전용 연결(DAC)

SQL Server 관리자 전용 연결(DAC) Version : SQL Server 2005, 2008, 2008R2, 2012 SQL Server 2005 이상 부터는 관리자 전용연결 (DAC)라는 기능이 도입 되었다. 이 기능은 서버가 잠겨 있거나 비정상적인 상태로 SQL Server 데이터베이스 엔진 연결이 되지 않을 때 관리자가 실행중인 서버에 연결하여 진단 또는 T-SQL문을 실행하여 문제를 해결할 수 있는 기능이다. DAC를 사용하기 위해서는 remote admin connection 옵션을 활성화 시켜야 한다. SSMS를 이용한 remote admin connection 방법에 대해서 알아 보자. 아래 그림과 같이 마우스 오른쪽 버튼을 이용하여 [패싯]을 클릭 한다. [패싯 보기] 창에서 [..

파일 접근 권한으로 인한 DB복원 실패 작업 해결하기

파일 접근 권한으로 인한 DB복원 실패 작업 해결하기 Version : SQL Server 2000, 2005, 2008, 2008R2, 2012 DB를 복원하는 방법에는 여러 가지 방법이 있다. 지금까지 다룬 포스팅에서 보면 백업파일에서 복원하는 방법, 스냅샷 파일에서 복원하는 방법, MDF를 이용한 복원 방법 등 이 외에 매우 다양한 방법이 있다. 그런데 전달 받은 백업 파일 또는 데이터 파일을 복원하려 할 때 파일에 접근 권한 자체가 되지 않아 복원 작업이 실패하는 경우가 있다. 나의 경우에도 퍼블리셔에서 전달 받은 파일이 계정 권한으로 인하여 복원되지 않는 경험이 있다. 이때 어떻게 해결하는지 실습을 통해서 알아 보자. 먼저 계정에 다른 파일 엑세스 권한을 다르게 하기 위하여 SSMS에서 윈도우 ..

DBCC CHECKDB 실행과 히스토리 관리

DBCC CHECKDB 실행과 히스토리 관리 Version : SQL Server 2000, 2005, 2008, 2008R2, 2012 우리는 데이터베이스 무결성 검사시 DBCC CHECKDB를 사용한다. 개인적으로는 주기적으로 CHECKDB를 통하여 데이터베이스의 무결성 검사를 할 것을 권장한다. 참고로 CHECKDB를 실행하는 동안 성능 문제가 발생 할 수 있으므로 DBA가 잘 판단하여 진행 하도록 하자.(나의 경우에는 매주 진행되는 정기점검에 검사한다.) CHECKDB를 실행하는 것 까지는 좋았는데 이 결과를 히스토리로 관리할 방법이 없을까? 원하는정보만 쿼리를 이용하여 확인 할 수는 없을까? 오늘 실습을 통하여 CHECKDB의 결과를 저장하고 검색하는 방법을 알아 보자. SSMS에서 CHECKD..

MDF를 이용한 데이터베이스 복원

MDF를 이용한 데이터베이스 복원 Version : SQL Server 2000, 2005, 2008, 2008R2, 2012 백업, 복원과 관련하여 많이 받는 질문 중의 하나가 "MDF만으로 데이터베이스 복원이 가능한가요?"이다. 정답은 가능하다. 다음의 실습을 통하여 MDF를 이용한 데이터베이스 연결 방법을 알아 보자. 데이터베이스의 로그파일(흔히 LDF 파일이라고 한다.)을 삭제 한다. 이때 데이터베이스가 사용 중이면 삭제가 불가능 하다. 데이터베이스를 분리하고 삭제 하자. SSMS를 실행하여 마우스 오른쪽 버튼을 클릭하여 [연결]을 선택 한다. [데이터베이스 연결] 창에서 추가 버튼을 클릭하여 데이터파일(흔히 MDF 파일이라고 한다.)를 추가 한다. 데이터 파일을 추가하면 다음과 같이 로그파일을 ..

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..