'log file rebuild'에 해당되는 글 1건

  1. 2014.02.11 주의 대상 데이터베이스 복구 방법
MS SQL2014.02.11 23:27

 

[내용]

   

서버의 예기치 않은 재부팅 이후, 정상 작동하던 DB가 주의 대상으로 확인 된 경우 조치 방법에 대해 알아 봅시다.

   

   

[환경]

   

OS: Windows Server 2003 R2

Product: SQL Server 2000

   

   

[원인]

   

에러 로그 확인시, 해당 데이터베이스의 LDF(로그파일)이 손상된 것을 확인 할 수 있습니다.

   

   

[ACTION PLAN]

   

'주의 대상' 데이터베이스에서는 어떠한 작업도 불가능하기 떄문에, 응급 모드로 변경해야 합니다.

응급 모드로 변경하기 위해 시스템 구성 옵션을 변경합니다.

USE MASTER

GO

   

SP_CONFIGURE 'allow updates', 1

GO

   

RECONFIGURE WITH OVERRIDE

GO

   

'주의 대상'인 데이터베이스를 응급 모드(32768)로 변경합니다.

UPDATE SYSDATABASES SET STATUS = 32768 WHERE NAME ='etleeDB'

   

SQL Server 서비스를 중지합니다.

   

기존의 ldf파일을 다른 곳으로 백업하고, SQL Server를 재시작 합니다.

DBCC REBUILD_LOG명령어를 사용해서 로그 파일을 재생성 합니다.

DBCC REBUILD_LOG('etleeDB', 'E:\Program Files\Microsoft SQL Server\MSSQL\Data\etleeDB_log.ldf')

   

Log Rebuild시, 데이터베이스는 dbo만 사용이 가능한 '2048'로 활성화가 됩니다.

기본모드(0)으로 변경합니다.

※ 현재까지 해서 엔터프라이즈 관리자에서는 데이터베이스가 정상화 된 것을 확인 할 수 있습니다.

UPDATE sysdatabases SET STATUS = 0 WHERE name='etleeDB'

   

정상화 시킨 데이터베이스의 오류(일관성)을 확인하기 위해 SINGLE USER 모드로 변경합니다.

ALTER DATABASE etleeDB SET SINGLE_USER WITH ROLLBACK IMMEDIATE

   

DBCC Checkdb 명령로 일관성 검토를 합니다.

DBCC CHECKDB('etleeDB')

   

오류가 발생하지 않으면, 이전의 DB상태로 변경합니다.

SINGLE USER -> MULTI USER

ALTER DATABASE etleeDB SET MULTI_USER

   

시스템 카탈로그 수정 가능 -> 불가능

USE MASTER

GO

   

SP_CONFIGURE 'allow updates', 0

GO

   

RECONFIGURE WITH OVERRIDE

GO

   

   

[참고]

   

http://www.microsoft.com/korea/technet/sql/tuning_guide_developer03.mspx#EEAA09

http://database-wiki.com/2011/03/06/rebuilding-transaction-log-in-sql-server-2000-2005-2008/

 

 

 

신고
Posted by TM ~ing