Próbuję skonfigurować piaskownicę dla naszych programistów raportów, aby mogli w nich pracować. Mój obecny plan polega na „resetowaniu” bazy danych każdego wieczoru, ale nie jestem pewien, jak to zrobić. Przez reset rozumiem to, że zasadniczo chcę usunąć tabele użytkowników, widoki, procedury składowane itp. Ze wszystkich baz danych na serwerze oprócz jednej. Przypuszczam, że inną opcją byłoby również usunięcie i ponowne utworzenie bazy danych, ale jestem pewien, że oznaczałoby to także ponowne uzyskanie dostępu do wszystkich odpowiednich grup / osób z AD.
Naprawdę nie wiem, jaki byłby najlepszy sposób na zrobienie tego, więc mam nadzieję, że niektórzy z was będą w stanie przedstawić kilka dobrych pomysłów / sugestii. Dzięki.
Dla jasności zasadniczo chcemy to zrobić z naszą bazą danych: http://try.discourse.org/t/this-site-is-a-sandbox-it-is-reset-every-day/57 . Jedyną różnicą jest to, że nie chcemy codziennie odtwarzać naszych użytkowników.
Wersja: SQL Server 2008
Edition: Developer & Enterprise
źródło
Ponieważ masz instancję z silnikiem Enterprise Edition, użyłbym migawek bazy danych .
Umożliwi to szybkie i łatwe wycofanie zmian wprowadzonych w ciągu dnia, bez konieczności przywracania całej bazy danych.
Pamiętaj, że jeśli programiści planują ładowanie dużych zbiorów danych (brzmi, jakby nie byli?), Może to nie być odpowiednie.
źródło
Pozwól mi dodać kilka centów, aby zobaczyć, czy to ci pomoże:
W mojej firmie mamy tę samą sytuację, że każdej nocy programiści chcą odświeżyć bazy danych, z których korzystali przez cały dzień. Oznacza to, że mamy zestaw baz danych, których Dev nie dotyka - powiedzmy A i inny zestaw baz danych, które są dokładną kopią A, ale robią swoje, ale chcą się odświeżać każdej nocy - powiedzmy B . Dzieje się tak na 1 instancji pojedynczego serwera.
To, co wdrożyłem, to PROCES NOCNEGO PRZYWRACANIA, aby to osiągnąć. Oto jak to działa:
Utwórz tabelę sterowników z listą baz danych, które należy przywracać każdego wieczoru (jak wspomniałeś).
Tabela: nightly_restore (OriginalDB, RestoreDB, kopie zapasowe, enabled_YN, wyniki, PASS_FAIL)
Następnie możesz napisać trochę kodu TSQL, który będzie przeglądał listę baz danych z powyższej tabeli, a następnie przeprowadzać przywracanie i rejestrować wszelkie sukcesy lub niepowodzenia w wynikach i nieco 1 = pozytywny lub 0 = negatywny. Enabled_YN określi, czy baza danych wymaga przywrócenia, czy nie.
Jeśli w przyszłości pojawi się więcej baz danych, musisz po prostu wstawić je do tabeli i ustawić bit enable_YN na Y (włączony).
W ten sposób proces będzie bardziej elastyczny i łatwiej zarządzalny.
Jeśli chcesz SQL, który napisałem (jestem pewien, będziesz mógł go napisać :-)), po prostu ping mnie lub dodaj komentarz i podzielę się nim.
HTH
źródło