mssqlserver 5

손상된 부트페이지 복구하기

손상된 부트페이지 복구하기 Version : SQL Server 2005, 2008, 2008R2, 2012, 2014, 2016 데이터베이스 장애 중 큰 이슈는 부트페이지 손상이다. 부트 페이지가 손상된 경우에는 데이터베이스를 온라인 또는 긴급 모드로 전환될 수 없다. 이번 포스트는 손상된 부트페이지를 복구하는 방법에 대해서 알아본다. 부트 페이지를 손상하고 복원하기 위한 테스트 데이터베이스를 생성한다. 생성된 데이터베이스를 분리하여 데이터파일에 사용자가 접근할 수 있도록 한다. -- Drop old database USE [master]; GO IF DATABASEPROPERTYEX (N'Company', N'Version') > 0 BEGIN ALTER DATABASE [Company] SET SI..

SQL Server Page Life Expectancy (PLE)

SQL Server Page Life Expectancy (PLE) Version : SQL Server 2005, 2008, 2008R2, 2012, 2014 SQL Server Page Life Expectancy(PLE)는 페이지 참조 없이 데이터가 버퍼 풀에 남아 있는 시간으로 성능 카운터의 SQL Server:Buffer Manager, SQL Server:Buffer Node에서 현재 값을 확인 할 수 있다. SQL Server:Buffer Manager / Page life expectancy : 페이지가 참조 없이 버퍼풀에 남아 있는 시간(초) SQL Server:Buffer Node / Page life expectancy : 페이지가 참조 없이 노드에서 버퍼풀에 남아 있는 시간(초). ..

트랜잭션로그 파일이 손상된 데이터베이스 복원 하기

트랜잭션로그 파일이 손상된 데이터베이스 복원 하기 Version : SQL Server 2005, 2008, 2008R2, 2012, 2014 SQL Server에서 데이터베이스를 연결할 때 sp_attach_db명령을 사용한다. 하나 이상의 로그파일이있는 경우 여러 로그파일을 다시 작성하려면 CREATE DATABASE … FOR ATTACH_REBUILD_LOG를 사용한다. 아래 스크립트는 AdventureWorks2012의 파일을 현재 데이터베이스 연결한다. EXEC sp_attach_db @dbname = N'AdventureWorks2012', @filename1 = N'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Data\A..

재해복구를 위한 SQL Server 역할 가져오기

재해복구를 위한 SQL Server 역할 가져오기 Version : SQL Server 2005, 2008, 2008R2, 2012, 2014 SQL Server를 다른 서버로 이전하거나 DR에 의해서 다른 사이트로 이동 될 때 반드시 챙겨야 하는 부분이 로그인 계정과 서버 역할이다. 서버 역할을 복구할 수 있는 스크립트를 만들어서 언제든지 서버 역할을 복원 할 수 있는 방법에 대해서 알아 본다. 서버 역할에 대한 정보를 확인 하기 위해서는 다음 두 개의 보안카탈로그 뷰를 사용할 수 있다. sys.server_principals : 로그인의 이름, 시스템 로그인 및 고정 서버 역할을 확인 sys.server_role_members : 서버 역할 멤버 자격 및 고정 서버 역할 멤버의 principal_id..

블록킹 세션을 찾아 우선순위 낮은 세션 종료하기

블록킹 세션을 찾아 우선순위 낮은 세션 종료하기 Version : SQL Server 2005, 2008, 2008R2, 2012, 2014 데이터베이스 서버를 운영하다보면 다양한 쿼리 요청으로 인해 블록킹이 발생 할 수 있다. 차단 및 교착이 발생하였을 때 이를 감지하고 블록킹이 발생한 세션 중 우선순위가 가장 낮은 프로세스를 종료 할 수 있다면 원치 않는 비즈니스 중단을 예방 할 수 있다. 시나리오는 다음과 같다. 매일 밤 실행되는 일괄 처리 작업이 다른 프로세스를 차단하는 현상이 발생 하였을 때 일괄 처리 되는 세션을 종료시키고 싶다. 일괄 처리되는 스크립트에 라벨링을 하여 해당 세션을 강제 종료하는 방법에 대해서 알아 본다. 세션 식별 목적을 위해 스크립트의 시작 부분에 CONTEXT_INFO 함..