SQL programming 
SMO를 이용한 복원 (Restore)

백업한 데이타를 다시 데이타베이스로 옮기는 것은 복원 (Restore)이라 한다. 복원은 SMO의 Restore 클래스를 사용하여 SqlRestore() 혹은 비동기의 SqlRestoreAsync()를 이용하여 실행된다. Restore 클래스는 Backup 클래스가 가진 많은 속성들을 공유하고 있으므로, 프로그래밍도 비슷한 방식으로 쓸 수 있다.





SMO 데이타베이스 복원

SMO를 이용하여 데이타베이스를 복원하기 위해서는 Restore 객체를 생성후 어디로부터 복원할 지의 그 장소를 지정한후, Restore클래스의 SqlRestore() 메서드를 호출하면 된다. SqlRestore() 메서드는 Server 객체를 요구하는데, 이는 어떤 서버로 복원할 지를 알려주게 된다. 한가지 주의할 것은 만약 기존에 해당 데이타베이스가 이미 존재하면, ReplaceDatabase 속성을 true로 셋팅하지 않는 한 Restore는 일어나지 않는다.

예제





SMO 비동기 데이타베이스 복원

Restore 클래스는 Backup 클래스와 마찬가지로 비동기 모드인 SqlRestoreAsync() 메서드를 가지고 있다. 이 비동기 복원 메서드는 Worker Thread를 생성하여 복원 작업을 별도의 쓰레스에서 진행하게 하여, UI 쓰레드가 계속 다른 일을 처리하는 것을 도와준다. Restore 클래스는 또한 Backup 클래스와 같이 복원 진행 이벤트(PercentComplete), 다음 미디어(NextMedia), 참고 정보(Information), 완료 이벤트(Complete)를 제공하는데, 개발자는 이벤트 핸들러를 통해 필요한 추가 조치를 취할 수 있다. 복원시 주의할 사항은 만약 기존에 동일한 데이타베이스가 있으면, 이를 엎어 쓰던지 (ReplaceDatabase = true 사용), 아니면 새로운 데이타베이스로 복원해야 한다. 새로운 데이타베이스로 복원하기 위해서는 아래의 예처럼 데이타베이스의 각 논리적 파일명에 대해 새로운 물리적 파일경로를 지정해 주어야 한다.

예제





본 웹사이트는 광고를 포함하고 있습니다. 광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.