2010-05-24 2 views
6

누구나 로그인하여 관리 인터페이스를 테스트 할 수있는 데모 사이트가 있습니다.매 시간마다 자동으로 데이터베이스를 복원하는 가장 좋은 방법

매시간 SQL 2008 데이터베이스의 모든 데이터를 플러시하고 원본에서 복원하고 싶습니다.

레드 게이트 소프트웨어에는 몇 가지 멋진 도구가 있지만 지금은 내 예산을 초과합니다.

간단히 데이터베이스 데이터 파일의 백업 복사본을 만든 다음 삭제하고 원본을 복사하는 C# 콘솔 앱을 만들 수 있습니까? 그런 다음 매시간 .exe를 실행하는 Windows 일정 작업을 가질 수 있습니다.

간단하고 무료입니다.이 기능을 사용할 수 있습니까?

나는 내가 DB를 분석 만 변경 한 레코드를 업데이트하도록 설정할 수 있기 때문에 레드 게이트 소프트웨어는 기술적으로 더 나은 이해

SQL Server 2008 R2의 웹 버전을 사용하고있어 내가 가지고있는 접근법은 "썰매 망치 (sledge hammer)"와 같습니다.

+0

버전에서 지원하는지 확실하지 않지만 스냅 샷을 볼 수도 있습니다. 데이터베이스의 스냅 샷을 생성하고 정기적으로 복원 할 수 있습니다. 데이터베이스를 복원 할 때 단일 사용자 모드에 있어야합니다. – flup

답변

9

간단하고 무료입니다 ...이 기능을 사용할 수 있습니까?

예, 당신은 단지

예제 스크립트

USE master 
GO 

ALTER DATABASE YourDB SET SINGLE_USER WITH ROLLBACK IMMEDIATE 
GO 



RESTORE DATABASE YourDB FROM DISK=N'D:\Backup\Pristine.BAK' WITH FILE = 1, 
NOUNLOAD, REPLACE, STATS = 10 
GO 

ALTER DATABASE YourDB SET MULTI_USER 
GO 
+0

굉장 해요, 매 시간마다이 작업을 실행하기 위해 SQL로 작업을 예약 할 것입니다. 감사! – aron

1

SQL을 사용하여 스크립팅하고 서버에서 작업을 예약하여 한 시간에 한 번 실행할 수 있습니다. 백업본을 가지고 있기 때문에 원래는 깨끗하다고 ​​가정합니다. 그러면 데이터베이스를 오프라인으로 전환하고 백업에서 복원하고 데이터베이스를 다시 온라인 상태로 만들면됩니다. 이 모든 것을 스크립팅 할 수 있습니다. 스크립트가 필요하십니까?

+0

안녕하세요. 예, 저에게 이메일을 보내주세요. 감사합니다 aron {at} uswebpro (기간) com – aron

0

당신은 수를 실패 복원하여, 그렇지 않으면를 복원하기 전에 단일 사용자 모드에서 DB를 넣어 기억처럼 그것을 할 수 또한 데이터베이스를 분리하고 템플릿에서 데이터와 로그 파일을 덮어 쓴 다음 이전에 분리 한 다음 다시 첨부하십시오.

+0

맞지만 자동화되지 않았습니다. – aron

+0

@aron 복원과 동일한 방식으로 자동화 할 수 있습니다. 예약 된 SSIS 패키지, xp_cmdshell을 사용하는 스크립트 또는 SQL 작업에 대해 sqlcmd가있는 외부 Windows 명령 스크립트를 사용할 수 있습니다. –