다음과 같이 트랜잭션 에러가 나타날 때 에러를 해소할 수 있는 방법입니다.
에러 메시지 :
미러 데이터베이스 "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로 연결해봅니다.
'프로그래밍 > DB' 카테고리의 다른 글
PostgreSQL autoIncrement (0) | 2018.12.17 |
---|---|
MYSQL 컬럼 자동증가 (0) | 2018.12.11 |
[MSSQL]SQL Server 2016 미러링 구축하기 3편 (0) | 2018.08.29 |
[MSSQL]SQL Server 2016 미러링 구축하기 2편 (1) | 2018.08.24 |
[MSSQL]SQL Server 2016 미러링 구축하기 1편 (0) | 2018.08.01 |