Maystyle :
Admin : New post
Guestbook
Local
media
Catergories
Recent Articles
Recent Comments
Recent Trackbacks
Calendar
Tag
Archive
Link
Search
 
해당되는 게시물 2건
  Microsoft SQL Server 로그 관련 장애 해결 방법 
작성일시 : 2008.05.13 15:01 | 분류 : SQL Server/Administration | 태그 : log, Microsoft sql server 2005, opentran, problem, shrink, sqlperf, Transaction log

오랫만에 원론적인 애기를 한번 할까 합니다.
뭐 단편화된 나만의  스킬일 수 도 있고... 모두가 다들 겪는 일이지만, 종종 로그를 삭제 하기 위해 로그 백업을 받았음에도 로그가 삭제 되지 않는 경우가 있습니다.

자 왜? 그렇게 된 것일까요?
그리고 어떻게 해야 할 까요?
로그에 대한 내용은 http://maystyle.tistory.com/257 를 참조 하시기 바랍니다.

먼저 로그가 왜 안 잘리는지 확인 합니다.

dbcc opentran(DB 명)
이 명령어를 통해 활성 트랜젝션의 여부 및 크기를 확인 할 수 있습니다.
즉 활성 트랜젝션이 크면 당연히 해당 로그는 활성이기 때문에 잘리지 않는 것입니다.

그리고 해당 로그의 사용현황을 보기 의해서 dbcc sqlperf(logspace) 를 사용하시면 로그 사용 여부 및 상태를 확인 할 수 있습니다.

그리고 다른 이유가 존재 한다... 즉 이미 Dirty Page 가 된 로그가 잘리지 않고 있다면 다음 쿼리를 사용합니다.
select name, recovery_model_desc, log_reuse_wait_desc from sys.databases
여기서 log_reuse_wait_desc 를 확인 하면 어떤 이유 때문에 사용 되지 않고 있는지 알 수 있습니다.

만약 게시 및 배포와 관련된 문제 (게시는 및 배포는 되어 있으나 구독자가 적용하지 안아 로그가 활성으로 표시되는 문제)는 게시 및 배포 삭제 후 EXEC sp_repldone @xactid = NULL, @xact_segno = NULL, @numtrans = 0, @time = 0, @reset = 1 go 를 수행하여 활성으로 표시해 주시면 됩니다.

[참고]
sp_repldone
http://msdn2.microsoft.com/ko-kr/library/ms173775.aspx
데이터베이스 미러링 모니터(상태 페이지)
http://msdn2.microsoft.com/ko-kr/library/ms365413.aspx
데이터베이스 미러링 모니터(경고 페이지)
http://msdn2.microsoft.com/ko-kr/library/ms365355.aspx

Name   Password   Home   Secret   Submit
  게시자의 트렌젝션 로그가 삭제 되지 않을때 
작성일시 : 2008.03.26 17:17 | 분류 : SQL Server/Administration | 태그 : log, opentran, Remove, shrink, sp_repldone, Transaction, 게시자, 삭제, 트렌젝션 로그

이 경우 게시자의 트렌젝션을 구독자가 받지 않았기 때문에 모든 트렌젝션은 활성이 됩니다.
물론 앞의 아티클과 같이 게시를 제거하는 방법도 있겠지만, 모든 트렌젝션을 게시한것처럼 업데이트 할 수 있습니다.
이때 사용되는 구문이 sp_repldone 입니다.
자 모든 트랜젝션이 모두 배포자에게 배포 되었다라고 하기 위해서는 아래의 구문을 사용합니다.

EXEC sp_repldone @xactid = NULL, @xact_segno = NULL, @numtrans = 0, @time = 0, @reset = 1
자 모든 트렌젝션을 배포됐다고 선언 했습니다.
이후에 트렌젝션을 백업 받고 잘라내면 됩니다...^^

[기타]

활성화된 트렌젝션은 dbcc opentran( ) 를 통해 확인 할 수 있습니다.

[sp_repldone 옵션 설명]

[ @xactid=] xactid
서버에서 마지막으로 배포된 트랜잭션에 대한 첫 번째 레코드의 LSN(로그 시퀀스 번호)입니다. xactidbinary(10)이며 기본값은 없습니다.
[ @xact_seqno=] xact_seqno
서버에서 마지막으로 배포된 트랜잭션에 대한 마지막 레코드의 LSN입니다. xact_seqnobinary(10)이며 기본값은 없습니다.
[ @numtrans=] numtrans
배포된 트랜잭션 수입니다. numtransint이며 기본값은 없습니다.
[ @time=] time
트랜잭션의 마지막 일괄 처리를 배포하는 데 필요한 시간(밀리초)입니다. timeint이며 기본값은 없습니다.
[ @reset=] reset
다시 설정 상태입니다. resetint이며 기본값은 없습니다. 1인 경우 로그 내의 복제된 모든 트랜잭션이 배포됨으로 표시됩니다. 0인 경우 트랜잭션 로그가 첫 번째 복제된 트랜잭션으로 다시 설정되고 복제된 트랜잭션이 배포됨으로 표시되지 않습니다. resetxactidxact_seqno가 모두 NULL인 경우에만 유효합니다.

[참고]
http://technet.microsoft.com/ko-kr/library/ms173775.aspx

Name   Password   Home   Secret   Submit