SQL programming 
SMO를 이용한 백업 (Backup)

SMO의 유틸러티 클래스로서 많이 쓰이는 기능중 하나는 Backup과 Restore이다. Backup클래스는 데이타베이스 혹은 데이타파일, 트랜잭션 로그를 백업받는데 사용하고, Restore 클래스는 백업데이타를 다시 DB로 복원하는데 사용한다. (SMO가 전체적으로 그렇듯이 SMO Backup 클래스도 SQL 2008과 SQL 2005사이 사용상의 약간의 차이가 있다. 여기서는 SQL 2008의 예제를 사용한다.)





SMO 간단한 데이타베이스 백업

SMO를 이용하여 데이타베이스 백업 받기 위해서는 Backup 객체를 생성후 Action, Database 속성을 기본적으로 지정하고, 어디에 백업받는지 장소를 지정한후, Backup클래스의 SqlBackup() 메서드를 호출하면 된다. SqlBackup() 메서드는 Server 객체를 요구하는데, 이는 어떤 서버를 대상으로 백업하는지를 알려주게 된다.

예제





SMO 비동기 데이타베이스 백업

Backup 클래스는 백업이 끝날 때까지 기다리는 Sync 모드 백업을 실행하는 SqlBackup() 메서드와 기다리지 않고 즉시 리턴하는 비동기 모드인 SqlBackupAsync() 메서드를 가지고 있다. Backup 클래스는 백업 진행 비율(PercentComplete), 다음 미디어(NextMedia), 참고 정보(Information), 완료 이벤트(Complete) 등을 발생시키는데, 개발자는 이벤트 핸들러를 통해 필요한 추가 조치를 취할 수 있다. SqlBackup() 메서드를 사용할 때도 이러한 이벤트들을 핸들링 할 수는 있지만, 주로 비동기 모드인 SqlBackupAsync() 메서드와 함께 사용된다. 비동기 모드로 사용하면 UI 가 멈추는 현상을 방지할 수 있다.

예제





SMO 트랜잭션 로그 백업

트랜잭션 로그를 백업받기 위해서는 Backup 클래스의 Action 속성을 BackupActionType.Log로 설정하고 SqlBackup() 혹은 SqlBackupAsync()를 실행하면 된다.

예제





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