본문 바로가기

IT Professional

SQL Server log shipping 시 error 대응법

SQL 서버는 일반적으로 매우 낮은 가용성을 보이는 초보 개발자나 낮은 비용 대신에 저 가용성을 감수하는 서버로 인식되는 경우가 많다. 물론, 많이 개선되긴 했지만, 개선된 성능에 비해서 고객들의 인식은 여전히 멀다.

 

그도 그럴 것이 SQL 은 2000 버젼이 나오기 전에는 기본적으로 HA Failover 라는 것이 존재하지도 않던 저급 DB 였음은 사실이다. 이를 그나마 S/W 적으로 구현한 가용성 강화 대책이 Log shipping 이다.

 

역설적으로 log shipping 은 10년이 훨씬 지난 기술이며, MS 의 SQL 이중화 기술 중에 가장 오래되고 안정화된 기술중의 하나다.

 

-정의

 

Log shipping 은 단순히 말해 원본 서버의 로그를 시간 간격으로 백업한 후, 복제 서버로 전송하여 시간 간격으로 복원하는 작업을 자동화 한 것을 의미한다.

 

-기능

 

        원본 서버에 장애가 발생사는 경우 log shipping 복제 대상 서버를 온라인 시켜서 서비스를 진행할 수 있다.

        과도한 read 가 발생하는 분석 작업의 경우 복제 서버에서 수행하므로서 원본 서버의 성능 저하를 예방하고 업무 로드는 분산할 수 있다.

 

- 한계

 

       원본 서버의 장애 발생시 복제 서버를 online 상태로 변경하여도 서버를 참조하는 DB Client 들은 자동 이동이 불가능하므로 서버의 IP 또는 이름 등 네트워크로 접근하는 표시를 변경하여야 한다.

       자동으로 복제되기는 하지만, 시간의 차이가 발생한다. 최소 시간 간격은 1분 이하이여 그 이하고 줄이는 방법도 있으나 권고 되지는 않는다. 즉, 경우에 따라 중요 Data 의 손실이 발생하며, 실시간 Data 의 중요도가 높은 경우라면 사용하기 힘들다.

 

-구현

 

딱히 힘든 부분은 없다. 특히나 SQL 2005 부터는 Management studio 의 통합 메뉴로 모든 부분이 따라 하기 형식으로 동작할 수 있다. 몇가지 중요하게 신경 써야 할 부분은 아래와 같다.

1. N/W

원본과 복제 대상 간의 파일 공유 및 SQL 접근이 원활해야 한다. SQL 은 그렇다 쳐도 파일 공유를 왜 해야 하는지 의문을 가질 수 있다. 백업 파일의 전송이 SQL 서버간의 파일 공유로 이루어 진다. 보안이 걱정이 되더라도 방법이 없다.

2. AD
  기본 요구 사항이야 AD 가 없지만, 완전하게 기능을 다 쓰면서 우회하지 않기 위해서는  AD  가 필요하다. 물론 우회할 수도 있지만...

 

  AD  가 없을 때는 초기 복제 대상 머신에 DB  를 원본 백업본을 이용해 복구한 다음에 복제를 설정하여야 한다.



  별것 아닌 것 같지만, AD 가 없으면.. 불가능하다.. 꼭..꼭... AD 가 없으면 복원 부터 수행해 두어야 한다....