다음과 같이 트랜잭션 에러가 나타날 때 에러를 해소할 수 있는 방법입니다.


에러 메시지 : 

미러 데이터베이스 "test"의 트랜잭션 로그 데이터가 부족하여 주 데이터베이스의 로그 백업 체인을 유지...


에러 해소 방법은 주 서버에서 로그를 백업하여 미러서버에서 NORECOVERY로 복원시켜주면 해결됩니다.

로그 백업은 T-SQL로 작업하겠습니다.


먼저 주 서버에서 작업을 진행합니다.


주 서버의 새 쿼리에서 다음과 같이 쿼리를 작성하고 실행합니다.


backup log test to disk = 'c:\test.log' with init

go


test는 데이터베이스 이름입니다.

'c:\test.log'는 로그를 생성할 경로입니다.


저 명령어는 test 데이터베이스를 'c:\test.log' 의 경로에 백업파일을 만들어라 라는 명령어라고 보시면 됩니다.



이렇게 메시지에 위와같은 문구가 뜨고, 쿼리 실행이 정상적으로 수행되었으면 백업파일이 만들어 진 것입니다.

해당 경로에 들어가서 확인해보세요! (어짜피 그 파일 옮겨야해요!)


다음으로 로그 백업 파일을 주 서버에서 미러 서버로 이동시킵니다.

주 서버에서 생성한 백업 파일을 미러서버로 반드시 옮겨줘야 미러서버에서 복원을 진행할 수 있습니다.


그다음은 미러서버에서 작업을 진행합니다.


미러서버의 새 쿼리에서 다음과 같이 쿼리를 작성합니다.


restore log test from disk = 'c:\test.log'

with norecovery, stats

go


test는 데이터베이스 이름입니다.

'c:\test.log'는 주 서버에서 가져온 백업 파일이 있는 미러서버안의 경로입니다.


반드시 'c:\test.log' 경로에 test.log 파일이 미러서버 안에 존재해야 미러서버가 복원할 수 있습니다.

만약 주 서버의 test.log 파일을 D드라이브에 옮겼다면 'c:\test.log'가 아니라 'd:\test.log'로 수정해야겠죠?



위와 같이 쿼리 메시지가 뜨고, 쿼리가 정상적으로 수행되었으면 성공입니다.


복원이 성공되었으면, 다시 미러링을 T-SQL로 연결해봅니다.


>>T-SQL 연결 방법




+ Recent posts