Лучший способ автоматического восстановления базы данных каждый час - PullRequest
6 голосов
/ 24 мая 2010

У меня есть демонстрационный сайт, где любой может войти в систему и протестировать интерфейс управления.

Каждый час я хотел бы сбрасывать все данные в базе данных SQL 2008 и восстанавливать их из оригинала.

Red Gate Software имеет несколько отличных инструментов для этого, однако сейчас они выходят за рамки моего бюджета.

Могу ли я просто сделать резервную копию файла данных базы данных, а затем иметь консольное приложение c #, которое удаляет его и копирует поверх оригинала. Тогда у меня может быть задача расписания Windows для запуска .exe каждый час.

Это просто и бесплатно ... это сработает?

Я использую веб-версию SQL Server 2008 R2

Я понимаю, что программное обеспечение Red Gate технически лучше, потому что я могу настроить его на анализ БД и обновлять только записи, которые были изменены, и подход, который я использовал выше, похож на "кувалду".

Ответы [ 3 ]

10 голосов
/ 24 мая 2010

Это просто и бесплатно ... это будет работать?

Да, вы могли бы сделать это так, просто не забудьте поместить БД в однопользовательский режимрежим перед восстановлением, иначе восстановление не удастся

пример сценария

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
1 голос
/ 24 мая 2010

Это может быть написано в сценарии с использованием SQL и запланировано как задание на сервере для выполнения один раз в час.Поскольку у вас есть резервная копия, я полагаю, что она чистая, то все, что вам нужно сделать, это перевести базу данных в автономный режим, восстановить из резервной копии, вернуть базу данных в оперативный режим.Все это можно записать в сценарии.Вам нужны сценарии?

0 голосов
/ 24 мая 2010

Вы также можете отсоединить базу данных, перезаписать данные и файлы журналов из вашего шаблона (ранее отсоединенного), а затем снова присоединить.

...