Я пытаюсь настроить «песочницу» для наших разработчиков отчетов, чтобы они могли работать. Мой текущий план состоит в том, чтобы «сбрасывать» базу данных каждый вечер, но я не знаю, как это сделать. Под сбросом я подразумеваю, что я хочу по существу удалить любые пользовательские таблицы, представления, хранимые процедуры и т. Д. Из всех, кроме одной базы данных на сервере. Я полагаю, что другой вариант - удалить и заново создать базу данных, но я уверен, что это будет означать предоставление доступа ко всем соответствующим группам / людям AD тоже.
Я действительно не знаю, что было бы лучшим способом сделать это, поэтому я надеюсь, что некоторые из вас смогут предоставить некоторые хорошие идеи / предложения. Спасибо.
Для ясности мы по существу хотим сделать это с нашей базой данных: http://try.discourse.org/t/this-site-is-a-sandbox-it-is-reset-every-day/57 . Единственное отличие состоит в том, что мы не хотим воссоздавать наших пользователей каждый день.
Версия: SQL Server 2008
Edition: разработчик и предприятие
источник
Поскольку у вас есть экземпляр с движком Enterprise Edition, я бы использовал снимки базы данных .
Это позволит вам быстро и легко откатить любые изменения, сделанные в течение дня, без необходимости восстановления всей базы данных.
Обратите внимание, что если разработчики планируют загружать большие объемы данных (похоже, что нет?), То это может не подходить.
источник
Позвольте мне добавить мои несколько центов, чтобы посмотреть, поможет ли это вам:
В моей компании такая же ситуация, что каждую ночь разработчики хотят обновлять базы данных, которые они использовали в течение дня. Это означает , что у нас есть множество баз данных, Дэв не трогать - позволяет скажем А и другой набор баз данных , которые являются точной копией А , но они делают свои вещи , но хотят получить обновляется каждую ночь - позволяет сказать , что B . Это происходит на одном экземпляре сервера.
То, что я реализовал, - это НОЧНОЙ ПРОЦЕСС ВОССТАНОВЛЕНИЯ для достижения этой цели Вот как это работает:
Создайте таблицу драйверов со списком баз данных, которые необходимо восстанавливать каждый вечер (как вы уже упоминали).
Таблица: nightly_restore (OriginalDB, RestoreDB, резервное расположение, enabled_YN, результаты, PASS_FAIL)
Затем вы можете написать некоторый TSQL, который будет циклически проходить по списку баз данных из приведенной выше таблицы, а затем выполнять восстановление и регистрировать любые успехи или неудачи в Результатах и бит 1 = Проход или 0 = Неудача. Enabled_YN определит, нужно ли восстанавливать эту базу данных.
Если в будущем будет добавлено больше баз данных, вам нужно просто вставить их в таблицу и установить для бита enabled_YN значение Y (включено).
Таким образом, процесс будет более гибким и управляемым.
Если вам нужен написанный мною SQL (уверен, вы сможете его написать :-)), просто пингуйте меня или добавьте комментарий, и я поделюсь им.
НТН
источник