안녕하십니까,
궁금한 부분을 몇일 째 풀지 못하고 있어서 답답한 마음에 여쭤봅니다.
현재 매 시간마다 Transaction log backup을 받고 있습니다.
또한 매 일 Full Backup을 받고 있습니다.
이것들을 이용하여 Replication 역활 및 snapshot DB를 구성하고자 합니다.
보통 해당 backup 을 이용하여 복구하기 위해서는
Full backup norecovery + Transaction 1 norecovery + Transaction 2 norecovery, ..이렇게 복구를 진행하게 됩니다.
하지만 저는
Full backup + Transaction1 ..운영(only read)...1시간뒤 ...+ Transaction2 ..운영(Only read)...1시간뒤 이렇게 진행하고자 원합니다.
이렇게 하려면 운영하다가 Transaction log가 백업이 되면 현재 DB를 norecovery 로 만든 후에 restore log를 해야 되는걸로 머릿속으로는 이해하는데...쿼리문을 모르겠네요...실제로 가능한지도 모르겠어서 이렇게 고수 분들에게 문의 드립니다.
제가 생각하는 부분이 가능한지 여부와 가능하다면 참고할 만한 문서 또는 힌트라도 주신다면 열심히 공부 및 테스트 해 보겠습니다.
잘 부탁 드리겠습니다.
감사합니다.
Comment 6
-
DBABong
2017.09.28 15:35
추가로 Transaction Replication도 테스트를 해 봤으며, 단지 저는 해당 방법을 이용하기 이전에 기존 방법을 가지고 활용을 할 수 있을까와 함께 공부의 목적도 있습니다. -
자리비움
2017.09.28 15:55
https://docs.microsoft.com/ko-kr/sql/database-engine/log-shipping/about-log-shipping-sql-server
로그쉬핑 쓰시면 됩니다.
-
DBABong
2017.10.11 14:20
답변 감사합니다.
해당 기능으로 테스트하면서 확인하여 조금씩 해결을 하고 있습니다.
먼저, Transaction Log를 지속적으로 적용을 하기 위해 DB를 Read Only로 하였으며, Log를 적용할 때 Standby 옵션을 사용하였습니다.
아쉬운건 Data file에 대한 LogicalName의 변경 여부와 SHRINK 여부를 체크중에 있습니다.
많은 도움 감사합니다.
추가로 도움 주신 강성욱님도 감사합니다.
-
DBABong
2017.10.11 14:22
아..더불어 DB를 Recovery 했다가 다시 Norecovery 로 바꿀 수 있을까요??이 부분도 계속 검색하며 테스트하고 있습니다.
다시 한번 도움 주셨어 감사합니다. -
자리비움
2017.10.11 14:47
1.
shrink 작업 후 로그 쉬핑 다시 설정하시고요.
2.
LogicalName 변경은 구글링 좀 하니 방법이 있긴 한데, 저는 권해드리고 싶지는 않네요.
이거저거 손대기 시작하면, 나중에 이래저래 챙겨야 해서 번거롭습니다.
3.
제가 아는한 복원중인 db 를 recovery 했다가 다시 norecovery 상태로 바꿀 수는 없습니다.
필요에 따라 인스턴스 추가해서 2셋트로 관리 (스크립트 작업이 필요하겠죠) 하는 등의 우회 방법은 있을듯 하네요.
-
DBABong
2017.10.24 10:48
답변 감사합니다. 말씀하신대로 대부분 제대로 처리를 했습니다. 방식은 조금 다르지만 해결 하였습니다.
추가로 recovery 했다가 norecovery는 진행 안하기로 했습니다.
이 부분에 많은 시간을 할애 하였으나 아닌 답변을 본 이상 더 진행 안하기로 하였습니다.
감사합니다.!